2012-03-30 115 views
12

如果您在Google地图上搜索城市,例如柏林,则会显示柏林市区边界(灰色虚线,内部为粉色粗线)。谷歌地图API v3市政界线

是否可以对Google Maps API进行相同操作?

+2

目前在maps-API中不支持,但twitter-API提供了一种解决方法:[在Google地图结果上添加“搜索区域”大纲](http://stackoverflow.com/questions/9706484/add-search-区域大纲到 - 谷歌 - 地图 - 结果) – 2012-03-30 16:26:26

回答

0

我认为是这样,但逻辑可能是相当疯狂的。您可以将视图添加到MapView中,并通过使用Mapview的layoutparams,可以指定地理经度和纬度。

这是我的“核方法”之一。我认为MapView对象本身可以告诉你mapview对象有多宽和多高。一旦东西在屏幕上绘制,您可以测量地图视图本身。从这里开始,您可以将像素转换为经度和纬度,并返回。从这里开始,您可以将各种数据提供给视图进行绘制。

现在,为了在地图上获得完美的图形轮廓,可能需要进入较低级别并进行像素比较。

另一种方法是找出如何跟踪区域轮廓,然后渲染该区域。

1

我想你想在定义一个区域的地图上画一个轮廓,在你的情况下是柏林的市区。

我知道在美国有人口普查数据,所有县的经度和纬度都可以免费下载。我不确定德国是否有类似的情况,但谷歌搜索“长拉斯维加斯坐标概述柏林市政府”显示了很多结果。

那么你在找到它们后如何处理坐标 - Google Maps API允许你根据地理坐标将多边形放在地图上。

我使用几何库的Google Encoded Polylines部分来存储我的多边形,然后在显示特定状态时重新显示它们。

var map = new google.maps.Map(document.getElementById("googlemap"), myOptions); 
var encodedpoints = "<encoded points string>"; 

var polyOptions = { 
    "strokeColor": '#000000', 
    "strokeOpacity": 1, 
    "strokeWeight": 1, 
    "fillColor": "#000000", 
    "fillOpacity": 0.5 
}; 
polyOptions.path = google.maps.geometry.encoding.decodePath(encodedpoints) 
var mypolygon = new google.maps.Polygon(polyOptions); 
mypolygon.setMap(map); 

这个例子将放的多边形,其具有黑线边框和50%的不透明度黑色填充在地图上。您可以将选项更改为任何您想要的。