如何获取数组中道路的几何形状(线条/绘图)?
可能吗?
谢谢!
[抱歉我的英语不好]
最佳答案
目前 Google map 无法实现此操作。开源网络服务,如 OpenStreetMap能够返回数据库中给定范围内的所有道路(几乎是所有道路)的几何形状。可以使用名为 Overpass 的 API 在 HTTP 中检索此数据。 .
查找属于特定道路的所有节点的查询可以是:
way(s,w,n,e)["name"="Your Road Name"];out;
s、w、n、e 是数据来源的南、西、北和东边界。
您需要知道近似边界。这可以通过在 Google 中对道路进行地理编码,然后将返回的坐标扩展(例如 0.1 度)来实现。
这将返回一个 XML 文档:
<osm version="0.6" generator="Overpass API">
<note>
The data included in this document is from www.openstreetmap.org. The data is made available under ODbL.
</note>
<meta osm_base="2015-08-17T12:36:02Z"/>
<way id="16578496">
<nd ref="2399812387"/>
<nd ref="2399812388"/>
<nd ref="2399812389"/>
<nd ref="2399812390"/>
<nd ref="171131426"/>
<tag k="highway" v="residential"/>
<tag k="name" v="Halifax Court"/>
<tag k="tiger:cfcc" v="A41"/>
<tag k="tiger:county" v="Guilford, NC"/>
<tag k="tiger:name_base" v="Halifax"/>
<tag k="tiger:name_type" v="Ct"/>
<tag k="tiger:reviewed" v="no"/>
<tag k="tiger:zip_left" v="27265"/>
<tag k="tiger:zip_right" v="27265"/>
</way>
</osm>
之后,您可以使用以下方法查询所有节点引用:
node(2399812389);out;
您一次只能查询一个节点。这将返回类似以下内容:
<osm version="0.6" generator="Overpass API">
<note>
The data included in this document is from www.openstreetmap.org. The data is made available under ODbL.
</note>
<meta osm_base="2015-08-17T12:58:02Z"/>
<node id="2399812389" lat="36.0107609" lon="-79.9805742"/>
</osm>
将所有点的纬度/经度数据组合成折线后,您就得到了道路几何形状。
关于javascript - 获取道路的几何形状(线条/绘图),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32049424/