在Google地图API 3中突出显示美国州和城市的边界

19

我有这样一个场景,需要在地理编码后(获取经纬度时)突出边框并着色某个州或城市。

我该如何做到这一点?我是否需要完整的城市信息来绘制多边形轮廓?还是有地图API可以帮我完成这个任务。

5个回答

11

正确。谷歌不提供此功能。因此,我们可以获得州边界的纬度/经度,并自己绘制多边形。

我使用了这个JS对象,并将其更改为Google地图对象(google.maps.LatLng)。

例如:

var statesobj = {"AK": [new google.maps.LatLng(70.0187, -141.0205),
new google.maps.LatLng(70.1292, -141.7291),
new google.maps.LatLng(70.4515, -144.8163)]}

现在很简单了。在这些纬度/经度上进行循环。然后,您可以在美国每个州上绘制多边形。

这是我想出来的解决方案。如果您有更好的想法,请分享。


6
我在哪里可以获取其他国家边界的纬度/经度数值? - Wolkenarchitekt
@IanDunn 这只适用于谷歌地图,但如果您使用的是 API,则在这种情况下不可能。 - JohnnyQ

10

5

谷歌地图API不允许您检索城市边界。但是,还有其他几个地方可以获取坐标:

Flickr API

有一个基于人们标记的照片的Flickr API,但它只有人们标记照片的准确性,因此它足够好用来启动,但可能不适用于生产:http://karya-blog.blogspot.com/2012/12/fetching-city-polygons-with-flickr-api.html

Natural Earth Data

一个精确的替代方法是www.naturalearthdata.com。要从那里获取数据,您只需要进行两个请求:一个带有城市名,另一个带有它们的ID以获取参数:

unlock.edina.ac.uk/ws/search?name=berlin&gazetteer=naturalearth&format=json

然后

unlock.edina.ac.uk/ws/footprintLookup?format=json&identifier=14126951

就完成了 :)

Mapzen

如果您可以预先获取数据,请使用Mapzen,他们拥有完整且相当准确的数据库:https://mapzen.com/data/borders/


0

很抱歉,谷歌地图API没有提供任何访问区域(国家、州、城市等)形状的方法。

如果您想要突出显示某些区域,您需要基于从其他地方获取的数据创建自定义覆盖层。


0
现在,基本的地图示例包括数据的“混搭”。当识别到的数据被提供给Web服务时,生成的输出可以定位地图上的位置。它展示了如何在地图上放置地理标记以标识特定位置。地图标记可以使用默认图标(如所示)或自定义图像、计量表甚至图表。可选地,可以配置地图以显示地图标记信息窗口,在单击标记时包含其他位置特定数据。

它包括数据驱动的着色区域(在这种情况下,表示邮政编码),叠加在华盛顿特区的地图上。Logi Info可以使用GIS边界数据为州、县、城市、学区和其他区域生成区域叠加图层。与地图标记一样,可以单击区域以显示弹出信息窗口,并显示详细数据。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接