谷歌地图API V3市政边界

12
如果在Google Maps上搜索一个城市,比如柏林,将会显示该城市的市界(灰色虚线与内部粉色厚线)。
使用Google Maps API能否实现同样的效果?

2
目前地图API不支持此功能,但Twitter API提供了一种解决方法:在Google地图结果上添加“搜索区域”轮廓 - Dr.Molle
2个回答

2
我认为您想在地图上标出一个区域的轮廓线,例如柏林市的市政区。
我知道在美国有人口普查数据,其中包含所有县的经纬度,可免费下载。我不确定德国是否有类似的东西,但是搜索“柏林市市政区经纬度轮廓线”会得到很多结果。
找到经纬度后,您可以使用Google Maps API根据地理坐标在地图上绘制多边形。
我使用Geometry库的Google编码折线部分存储我的多边形,然后在显示特定状态时重新显示它们。 示例
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%不透明度的黑色填充。你可以根据需要更改选项。

0

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

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

现在,要做类似于在地图上获得完美图形轮廓的事情,可能需要降低级别并进行像素比较。

另一种选择是找出如何跟踪区域的轮廓,然后呈现它。


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