谷歌地图API v3市政边界

时间:2012-03-30 08:14:06

标签: google-maps google-maps-api-3

如果在Google地图上搜索某个城市,例如柏林,则会显示柏林的市区边界(内部带有粉红色粗线的灰色虚线)。

是否可以使用Google Maps API进行相同的操作?

2 个答案:

答案 0 :(得分:1)

我想你想在地图上勾勒出一个区域,在你的情况下是柏林市区。

我知道在美国有人口普查数据,所有县的经度和纬度都可以免费下载。我不确定德国是否有类似的东西,但谷歌搜索“长距离坐标轮廓柏林市政”显示了很多结果。

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

我使用Geometry库的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%不透明度黑色填充的多边形。您可以将选项更改为您想要的任何内容。

答案 1 :(得分:0)

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

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

现在,为了在地图上获得完美的图形轮廓,可能必须达到较低的水平并进行像素比较。

另一种选择是弄清楚如何追踪该区域的轮廓然后再渲染它。