显示地图并突出显示某些国家/地区

时间:2012-10-02 18:59:35

标签: javascript html google-maps maps

这是我正在努力做的事情: 在页面上显示地图(谷歌地图或其中任何一个竞争对手,可以免费...)并在此地图上突出显示某些国家/地区(这些国家/地区的列表将通过例子存储在变量中)。

我试图在地图上绘制多边形(几乎所有国家/地区的geo-json列表,但它太重了。)

有什么想法吗?

3 个答案:

答案 0 :(得分:19)

答案 1 :(得分:10)

如果您将这些多边形存储为KML文件格式并将其加载为KmlLayers,则可以在地图中创建非常复杂的多边形而不会降低性能。 KML是一种基于XML的地理数据矢量文件格式。在Google地图中使用KML文件的好处在于它们在Google服务器上呈现为简单的PNG文件,无论原始多边形数据有多复杂,都可以随时匹配地图视图的当前分辨率和边界框。因此,所有复杂性都在Google的服务器端处理。

这是一个sample of a project,我在德国联邦州之一使用了KML面具。

要快速查看,KML文件也可以直接加载到Google Maps公共网站(通过在搜索字段中输入他们的URL)。这是我在上面的项目loaded directly into Google Maps中使用的KML文件。 (我实际上在这里使用了一个KMZ文件,但这只是一个打包到ZIP存档中的KML文件。你可以使用普通的ZIP工具打包和解压缩。) [更新:这在新版本中不再起作用了地图版(2014年开始)。]

请注意,Google暗示KML / KMZ文件的大小限制(目前10 Mb未压缩,3 Mb压缩 - details see here)。如果您的KML文件应该很大,可以使用软件来降低复杂性(请参阅示例herehere)。

请注意,如果您的多边形是静态的(如国家或城市的边界)而不是动态生成(例如,取决于任何用户输入),KML文件只是一种解决方案。对于动态多边形,您仍然必须使用Maps API的Polygon类以及您提到的复杂性限制。 (但您可以自由使用KML图层并根据用户输入打开和关闭它们,只要多边形细节不必更改。)

答案 2 :(得分:3)

如果您只需要具有不同颜色的国家/地区的边界,则可以尝试jVectorMap