我有一个场景,我必须在地理编码后突出显示边界并为州或城市着色(当我得到 lang 和 lat 时)。
我该怎么做,我需要一个城市的完整信息来用折线包围它吗?或者有没有一种方法可以让地图 API 为我做到这一点。
我有一个场景,我必须在地理编码后突出显示边界并为州或城市着色(当我得到 lang 和 lat 时)。
我该怎么做,我需要一个城市的完整信息来用折线包围它吗?或者有没有一种方法可以让地图 API 为我做到这一点。
真的。Google 不提供此功能。所以我们能做什么......我们可以拥有州边界的纬度/经度。我们必须自己绘制多边形。
我使用了这个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)]}
所以,现在很容易。循环这些纬度/经度。您可以在美国的每个州绘制多边形。
所以这就是我想出的解决方案。如果你们知道一些更好的想法来做到这一点。请分享。
Google Maps API 不允许您检索城市边界。不过,还有其他几个地方可以获取坐标:
Flickr API
有一个基于人们标记的照片的 Flickr API,但它仅与标记照片的人一样准确:因此它足以用于引导,但可能不适用于生产: http: //karya-blog.blogspot.com/2012/ 12/fetching-city-polygons-with-flickr-api.html
自然地球数据
一个准确的替代方案是 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,他们有一个完整且非常准确的数据库:https ://mapzen.com/data/borders/
恐怕谷歌地图 API 没有提供任何访问区域(国家、州、城市……)形状的方法。
如果要突出显示区域,则必须根据在其他地方获取的数据创建自定义叠加层。
现在,基本地图示例包括数据的“混搭”。将识别数据馈送到 Web 服务时,生成的输出可以精确定位地图上的位置。它显示了如何在地图上放置地理地图标记以识别特定位置。地图标记可以使用默认图标(显示)或自定义图像、仪表甚至图表。或者,可以将地图配置为在单击标记时显示地图标记信息窗口,其中包含其他特定于位置的数据。
它包括覆盖在华盛顿特区等地图上的数据驱动的彩色区域(在本例中,代表邮政编码)。Logi Info 可以使用 GIS 边界数据为州、县、市、学区和其他区域生成区域叠加。与地图标记一样,可以单击区域以显示带有详细数据的弹出信息窗口。