[Community] line_locate_point() in Python, and general confusion of a GIS newbie
Sean Gillies
sean.gillies at gmail.com
Tue Aug 18 18:10:41 EEST 2009
On Aug 18, 2009, at 1:30 PM, Michael Elsdörfer wrote:
> I'm pretty much a beginner when it comes to GIS, but I think I
> understand the basics - it doesn't seem to hard. But: All these
> acronyms
> and different libraries, GEOS, GDAL, PROJ, PCL, Shaply, OpenGEO, OGR,
> OGC, OWS and what not, each seemingly depending on any number of
> others,
> is slightly overwhelming me.
>
Hi Michael,
Yes, it is a bit overwhelming.
> Here's what I would like to do: Given a number of points and a
> linestring, I want to determine the location on the line closest to a
> certain point. In other words, what PostGIS's line_locate_point()
> does:
>
> http://postgis.refractions.net/documentation/manual-1.3/ch06.html#line_locate_point
>
> Except I want do use plain Python. Which library or libraries should I
> have a look at generally for doing these kinds of spatial calculations
> in Python, and is there one that specifically supports a
> line_locate_point() equivalent?
>
> Thanks for your time.
>
> Michael
I'm not aware of anything out-of-the-box in Python that does the same
thing as line_locate_point(). I just looked at the PostGIS code -- it
finds the nearest linestring segment by checking the distance to
individual nodes and then does a little algebra
http://trac.osgeo.org/postgis/browser/trunk/lwgeom/ptarray.c?rev=2277#L542
Reusing liblwgeom would be nice, in theory, but I think it's very
dependent on Postgres (and why wouldn't it be?). Too dependent to be
useful outside the context of a database. A nearest point algorithm
wouldn't be all that hard to implement in Python and I'm willing to
help you find a good home for it. Maybe in a Shapely analytic package?
Cheers,
--
Sean
More information about the Community
mailing list