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

Junior Delaz delazj at gmail.com
Thu Jan 15 05:25:03 PST 2015


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/172a99ca/attachment.html>


More information about the Qgis-developer mailing list