How to check if geocode is close to or on path defined in a KML LineString with PHP or MySQL

帅比萌擦擦* 提交于 2019-12-25 02:54:15

问题


I have a KML file defining several paths/routes (representing actual roads) enclosed in the <LineString><coordinates></coordinates></LineString> tags. Parsing the file to other formats (arrays/MySQL) is already in place, so that's not a problem.

Given a point (longitude/latitude) I would like to be able to check if the point is on or close to (within a few meters) one of the routes in the KML file. I've been looking for a solution in PHP, but I haven't been able to find one - and I'm not really sure, what I'm looking for. This does however seem to me like a common problem, so I suspect someone already solved the problem. Does anybody know of a solution? ;)

Thanks in advance!


回答1:


You need to break this down into two problems:

  • Generate a set of polygons from each section of your path.
  • Do a simple point in polygon test on the above polygons.

There should be some php out there to accomplish those two tasks.




回答2:


pnpoly is actually quite fast if done correctly. I wrote a check against many hundreds of thousands of polygon vertices in MySQL well under second processing. Pulling the data into PHP and performing the pnpoly loop there can do it in not a whole lot more time.

Post the code you're using?



来源:https://stackoverflow.com/questions/1750040/how-to-check-if-geocode-is-close-to-or-on-path-defined-in-a-kml-linestring-with

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!