[Qgis-developer] [Bulk] Re: [Qgis-user] Retrieve value from another layer related to its localisation

Junior Delaz delazj at gmail.com
Thu Jan 15 07:37:57 PST 2015


Ok, this is somehow what I did. With QChainage plugin, no need to create
new fields and csv table. It directly creates the point geometry layer
corresponding to xat(0)/yat(0) and xat(-1)/yat(-1) with $id field, when
well setting.
I also assume that what I was trying to do directly within the line layer
field calculator is not (yet) possible.

Thanks.



2015-01-15 15:54 GMT+01:00 Enrico Ferreguti <enricofer at gmail.com>:

> Ok. so i would proceed degrading line geometry to point geometry creating
> two X and Y fields in the original table with xat(0) and yat(0) functions.
> I would add a featureid field with $id function for  a following join. Then
> I would export everything in cvs and import back with "Add Delimited Text
> Layer" creatin geometry from X and Y fields.
> From the the degraded new table is now possible to apply geomnearest
> function joining the added fields with featureid field.
> ...a bit tricky but it should work.
>
> Regards
>
>
>
>
> 2015-01-15 14:25 GMT+01:00 Junior Delaz <delazj at gmail.com>:
>
>> Thanks Enrico for your reply and for the plugin.
>>
>> I was aware of RefFunctions and has already used it for relational
>> questions. And I agree with Jean that such functions (and others of your
>> plugins) might be core functions. I've moreover reported a feature request
>> to improve usability of all this #11680
>> <https://hub.qgis.org/issues/11680>.
>> And I tried it again this time. but the main problem is I don't want to
>> retrieve field value of the nearest point to my line geometry. I want to
>> retrieve field value of the nearest point *to the first vertex* of my
>> line geometry. While using just geomnearest, i'll get only the nearest
>> point to the whole line. It may be the point at the beginning or the one at
>> the end of the line, I can't know.
>> What I did is to create a point file containing my vertices and then use
>> refFunctions to get the nearest station ID.
>>
>> But, isn't it possible to do the request without the step of creating new
>> point file? Using in the condition "being nearest to the geomfromWKT('POINT
>> (xat(0) yat(0)) ') of line feature"?
>> How can I write in the field calculator of a line layer such function :
>> dbquery ('mypointlayer', 'pointID', 'the condition is to be the nearest
>> point to the first vertex of the line')? Or dbvalue? Is it possible to
>> combine reference functions with others?
>>
>> And more generally, are Reference functions conditions intended to be
>> only internal to the target layer or can I use values/fields from the
>> source layer? If latter, how can I refer to the source layer in the
>> expression?
>>
>> Thanks
>>
>>
>> 2015-01-15 12:05 GMT+01:00 Tijan49 <tijan49 at yahoo.fr>:
>>
>>>  Hi,
>>> I knew about those functions a few weeks ago, and I was really happy
>>> about that, because it is a lack in the basic function.
>>> For I, those new functions should really be in the core project in the
>>> next release ...
>>> Thanks to all the programmers.
>>> Jean
>>>
>>> Le 15/01/2015 11:59, Enrico Ferreguti a écrit :
>>>
>>>   You can use refFunctions (
>>> http://plugins.qgis.org/plugins/refFunctions/) plugin that extends
>>> Field Calculator with a new Reference group.
>>>  Within this group you will find a geomnearest and a geomdistance
>>> function that can help you.
>>>
>>>  copy and paste from helper screen:
>>>
>>> geomnearest function
>>>
>>>
>>> Retrieve target field value from the nearest target feature in target
>>> layer
>>>
>>> Syntax
>>>
>>> geomnearest(targetLayer,targetField)
>>>
>>> Arguments
>>>
>>> targetLayer → the name of a currently loaded layer, for example
>>> 'myLayer'.
>>> targetField → a field in target layer we want as result when source
>>> feature is within target feature, for example 'myField'.
>>> If targetField is equal to '$geometry' The WKT geometry of targetFeature
>>> willbe retrieved. If otherwise is equal to '$distance' the calculated
>>> distance between source and target features will be returned
>>> Number of feature tested is limited to 100000 to avoid time wasting loops
>>>
>>> Example
>>>
>>> geomnearest('targetLayer','TargetField')
>>> geomnearest('targetLayer','$geometry')
>>> geomnearest('targetLayer','$distance')
>>>
>>>
>>> 2015-01-15 11:19 GMT+01:00 Junior Delaz <delazj at gmail.com>:
>>>
>>>>    Hi all,
>>>>
>>>>  I have two shapefiles : a line one (called "section") and a point one
>>>> (called "station") shapefiles.
>>>>  The line shapefiles has fields like ID_section, ID_first, ID_last
>>>>  The point file has an ID_station.
>>>>  All these define a kind of network where a section begins on a
>>>> station and ends up at another station.
>>>>  What I need to do is to fill :
>>>> - section ID_first field with the ID_station of the station that is the
>>>> closest to the beginning of the section
>>>> - and section ID_last field with the ID_station of the closest station
>>>> to the end of the line.
>>>>
>>>> I can obtain this result while combining many analysis tools and
>>>> plugins (QChainage, Spatial_Join...). I know how I can do it. There might
>>>> be a way with processing tools and if somebody has an idea, I'll be glad to
>>>> know it however.
>>>>
>>>>  But what I'm really wondering is if it isn't directly possible to
>>>> fill these fields in the Field calculator using all the nice functions we
>>>> have. Indeed, QGIS 2.6 and RefFunctions plugin give relational fonctions to
>>>> retrieve values on a specific layer according to its fields, features
>>>> values or localisation.
>>>>  I tried many combinations with db_query, geomnearest, geomRedef,
>>>> xat/yat, buffer, geometry, within , attribute (not all at the same time :)
>>>> ).... I'm pretty sure it's possible but I can't find. And I don't want to
>>>> lose all my hair...
>>>>
>>>>  Does anybody know how I can retrieve in a line shapefile's field the
>>>> value of the point feature that is the closest to the first vertex of this
>>>> line, within the field calculator?
>>>>
>>>>  Thanks ...
>>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> Qgis-user mailing listQgis-user at lists.osgeo.orghttp://lists.osgeo.org/mailman/listinfo/qgis-user
>>>
>>>
>>>
>>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.osgeo.org/pipermail/qgis-developer/attachments/20150115/aa8c2937/attachment-0001.html>


More information about the Qgis-developer mailing list