Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google maps 获取多边形内的多段线_Google Maps_Google Maps Api 3_Graph_Openstreetmap_Geojson - Fatal编程技术网

Google maps 获取多边形内的多段线

Google maps 获取多边形内的多段线,google-maps,google-maps-api-3,graph,openstreetmap,geojson,Google Maps,Google Maps Api 3,Graph,Openstreetmap,Geojson,据我所知,谷歌地图中的道路只是由两个坐标定义的多段线。我有一个我认为叫做GeoJSON的对象,它包含一个由坐标表示的多边形。大概是这样的: { "type": "Polygon", "coordinates": [ [ [ -99.18203782777724, 19.41138655848177 ], [ -99.18207821061841, 19.411385235435223 ], [ -99.18211859345887, 19.41138391237971 ], [ -99.1821

据我所知,谷歌地图中的道路只是由两个坐标定义的多段线。我有一个我认为叫做
GeoJSON
的对象,它包含一个由坐标表示的多边形。大概是这样的:

{ "type": "Polygon", "coordinates": [ [ [ -99.18203782777724, 19.41138655848177 ], [ -99.18207821061841, 19.411385235435223 ], [ -99.18211859345887, 19.41138391237971 ], [ -99.18217229954912, 19.41129771640372 ], [ -99.18281836026513, 19.410260378156483 ], [ -99.18334680960682, 19.40941189646689 ], [ -99.18341718268485, 19.40929908872516 ], [ -99.18377407635555, 19.408725974544847 ], [ -99.1842766660324, 19.407918887878647 ], [ -99.18414908809605, 19.407875016070705 ], [ -99.18250913471286, 19.407311054834768 ], [ -99.18120954747532, 19.406864128294814 ], [ -99.18070215205267, 19.406687781845125 ], [ -99.180621459197, 19.40670890218962 ], [ -99.18054076632019, 19.4067300224984 ], [ -99.18028848137924, 19.406796054527465 ], [ -99.17966378043319, 19.406825151645055 ], [ -99.17878740320279, 19.40703143744027 ], [ -99.1785393781354, 19.407139891327162 ], [ -99.17797365982572, 19.40747166796296 ], [ -99.17760898455877, 19.407685537303376 ], [ -99.17743789039321, 19.407562529856033 ], [ -99.17732736375932, 19.407678429335242 ], [ -99.17658848127857, 19.408486655455793 ], [ -99.17641778851832, 19.40867504231124 ], [ -99.17582025539072, 19.40933502954438 ], [ -99.17523169830358, 19.409962438803724 ], [ -99.17515421523987, 19.41005409433415 ], [ -99.17425254437649, 19.411062171115905 ], [ -99.17390065213473, 19.411457392395153 ], [ -99.17408215417474, 19.411468709017452 ], [ -99.17416229240264, 19.41146637588914 ], [ -99.17477464735218, 19.411448546741003 ], [ -99.17497891878078, 19.411414146462644 ], [ -99.17531443486303, 19.41139697628401 ], [ -99.17586186932239, 19.411433226776477 ], [ -99.17688064119534, 19.41143193058924 ], [ -99.17749773097404, 19.411402766318993 ], [ -99.1778173959715, 19.411393938757634 ], [ -99.1779231561884, 19.41139186760553 ], [ -99.17803401741658, 19.411362589376616 ], [ -99.17865599294018, 19.41134248436829 ], [ -99.17888756239012, 19.411340946816228 ], [ -99.17936546074904, 19.41140760398169 ], [ -99.17980066016678, 19.41141478333999 ], [ -99.18033419212767, 19.411419942423137 ], [ -99.1807962910527, 19.411424409505287 ], [ -99.1811402792245, 19.41142773405475 ], [ -99.18088507524732, 19.41076332382733 ], [ -99.18110546532225, 19.410946767251502 ], [ -99.1811374076985, 19.410973354684423 ], [ -99.1819024071804, 19.411322184629903 ], [ -99.18203782777724, 19.41138655848177 ] ] ] }
如何获取表示该多边形内街道的多段线?

类似于您可以从位于通过定义的边界内的OpenStreetMap下载街道

基于多边形的示例:

[out:xml][timeout:30];
way[highway](poly:"19.41138655848177 -99.18203782777724 19.411385235435223 -99.18207821061841 19.41138391237971 -99.18211859345887 19.41129771640372 -99.18217229954912 19.410260378156483 -99.18281836026513 19.40941189646689 -99.18334680960682 19.40929908872516 -99.18341718268485 19.408725974544847 -99.18377407635555 19.407918887878647 -99.1842766660324 19.407875016070705 -99.18414908809605 19.407311054834768 -99.18250913471286 19.406864128294814 -99.18120954747532 19.406687781845125 -99.18070215205267 19.40670890218962 -99.180621459197 19.4067300224984 -99.18054076632019 19.406796054527465 -99.18028848137924 19.406825151645055 -99.17966378043319 19.40703143744027 -99.17878740320279 19.407139891327162 -99.1785393781354 19.40747166796296 -99.17797365982572 19.407685537303376 -99.17760898455877 19.407562529856033 -99.17743789039321 19.407678429335242 -99.17732736375932 19.408486655455793 -99.17658848127857 19.40867504231124 -99.17641778851832 19.40933502954438 -99.17582025539072 19.409962438803724 -99.17523169830358 19.41005409433415 -99.17515421523987 19.411062171115905 -99.17425254437649 19.411457392395153 -99.17390065213473 19.411468709017452 -99.17408215417474 19.41146637588914 -99.17416229240264 19.411448546741003 -99.17477464735218 19.411414146462644 -99.17497891878078 19.41139697628401 -99.17531443486303 19.411433226776477 -99.17586186932239 19.41143193058924 -99.17688064119534 19.411402766318993 -99.17749773097404 19.411393938757634 -99.1778173959715 19.41139186760553 -99.1779231561884 19.411362589376616 -99.17803401741658 19.41134248436829 -99.17865599294018 19.411340946816228 -99.17888756239012 19.41140760398169 -99.17936546074904 19.41141478333999 -99.17980066016678 19.411419942423137 -99.18033419212767 19.411424409505287 -99.1807962910527 19.41142773405475 -99.1811402792245 19.41076332382733 -99.18088507524732 19.410946767251502 -99.18110546532225 19.410973354684423 -99.1811374076985 19.411322184629903 -99.1819024071804 19.41138655848177 -99.18203782777724");
(._;>;);
out;

单击“运行”按钮后,您可以在上查看结果。

这不是有效的GeoJSON。你可以测试它。目前没有办法从谷歌地图Javascript API v3获取多边形内的所有道路。“方向”服务将为您提供沿路线的道路多段线,但存储该数据违反了使用条款。@MrUpsidown我删掉了大部分GeoJSON内容,因为它太长了,现在我看到它有很多额外的信息。。。让我们假设我有一个有效的GeoJSON,我能以某种方式得到多段线吗?@geocodezip我明白了,你建议我怎么做?这只是一个学术项目,但我不想在存储道路上的信息时遇到麻烦。。是否有其他方法获取多段线?也许不是通过谷歌API?你想把多边形的路径提取为多段线吗?请定义“道路”和“多边形中包含的多段线”的含义。你的问题不清楚。谢谢@scai,只是一个问题,你是如何翻转坐标的?因为我在查询中看到的是lat-lon,而在GeoJSON上看到的是lon,lat。有没有一个工具用于此?我使用一些Linux命令行工具(
tr-s“])“”“\n”| sed“s/^,/”| awk“{print$3,$2}”| tr s“,“| tr d”\n“
)。不过,这是一个相当脆弱的解决方案。很好!当我想出别的办法的时候,它应该能做到。非常感谢