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 <[email protected]>: > 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 <[email protected]>: > >> 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 <[email protected]>: >> >>> 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 <[email protected]>: >>> >>>> 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 >>> [email protected]http://lists.osgeo.org/mailman/listinfo/qgis-user >>> >>> >>> >> >
_______________________________________________ Qgis-developer mailing list [email protected] http://lists.osgeo.org/mailman/listinfo/qgis-developer
