GoogleMaps API在一个完整的城镇绘制多边形

问题描述:

我想知道是否实际上可以在GoogleMaps API V3V2上绘制多边形而不是整个城镇?
GoogleMaps API在一个完整的城镇绘制多边形

如果可以,请举例说明如何做到这一点(选择你最喜欢的城镇:))。

我对理解这个API有些困难。

谢谢。

如果你想勾勒出城市的边界,你会需要一些额外的数据,告诉你在哪里绘制。形状文件对于这类事情很好,而且通常很容易找到提供城市,州,县,国家等边界的免费或低成本文件。只需执行谷歌搜索“[CityName]形状文件”或类似的东西。

一旦你有一个好的形状文件,你可以查询它的边界中的所有点。然后,您将调用该方法在地图api中绘制具有这些点的多边形。

+0

是否有地图API,可以让查询局部形状文件中的任何功能? – ALOToverflow 2010-04-12 12:23:29

+0

说实话,除了基本绘图之外,我还没有对API做很多工作,但Google的一个快速搜索发现了这篇文章,它讨论了如何将形状文件转换为可以更容易处理的文本格式:http:// www .googlemapsbook.com/2006/08/30 /形状文件/ – Todd 2010-04-12 16:18:47

我不认为有可能自动在城镇边界周围绘制多边形;您需要知道角点的坐标,然后绘制一个连接这些点的多边形(因此有关城镇边界的位置信息不是来自Google地图,而是来自应用程序)。

然后,您可以创建像这样的多边形:(从API docs采取的示例代码)

var polygon = new GPolygon([ 
    new GLatLng(lat, lon - lonOffset), 
    new GLatLng(lat + latOffset, lon), 
    new GLatLng(lat, lon + lonOffset), 
    new GLatLng(lat - latOffset, lon), 
    new GLatLng(lat, lon - lonOffset) 
    ], "#f33f00", 5, 1, "#ff0000", 0.2); 
    map.addOverlay(polygon); 

这里有一个很有趣的(免费)开放管理地理信息数据的项目:http://www.openstreetmap.org