javascript - 获取道路的几何形状(线条/绘图)

标签 javascript google-maps google-maps-api-3

如何获取数组中道路的几何形状(线条/绘图)?

可能吗?

谢谢!

[抱歉我的英语不好]

最佳答案

目前 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/

相关文章:

javascript - 更新后缺少 Meteor.js 图标

javascript - 如何使用 javascript 为 fontawesome 图标着色?

javascript - 当Google Maps +其他库完全加载时调用函数?

android - 应用程序启动时如何在谷歌地图中显示特定城市的 map

google-maps - Google Map API V3 - 如何在用户实际双击时防止标记的鼠标单击事件

javascript - X 秒后过期或超时永不结束循环

javascript - 将iron-ajax响应绑定(bind)到嵌套元素的属性中

javascript - 谷歌地图的插值方法

google-maps - Google Map Api - 谷歌地图在第二次加载后无法正确显示

javascript - google maps和mysql数据库radius search中存储的地址类似