显示地图并突出显示特定国家

12

我正在努力做的事情是:

在页面上显示地图(使用Google 地图或其竞争对手,如果有免费的更好),并在地图上突出显示某些国家(这些国家的列表可以存储在变量中)。

我尝试使用几乎全部国家的地理JSON列表来在地图上绘制多边形,但这太重了。

有任何想法吗?

3个回答

20

他们的问题在于它们不够具体,我的意思是,我需要在地图上标记一个城市或社区。有没有任何插件/代码可以做到这一点? - Frederico Schardong
http://www.dyngeometry.com/web/WorldRegion.aspx 使用已经被废弃的 Google Maps API 版本 _2_。 - Oliver
http://www.dyngeometry.com/web/WorldRegion.aspx 不相信长岛是纽约州的一部分。 - cwallenpoole

10
你可以使用KML文件格式并将其作为KmlLayers加载,即可在地图中创建非常复杂的多边形而不会影响性能。 KML是一种基于XML的矢量文件格式,用于地理数据。在Google Maps中使用KML文件的优点在于它们在Google服务器上呈现为简单的PNG文件,随时匹配您地图视图的当前分辨率和边界框,无论原始多边形数据有多么复杂,所有复杂性都由Google的服务器处理。
以下是一个sample of a project,我在其中使用了德国联邦州之一的KML掩模。

为了快速查看,KML文件也可以直接加载到Google Maps公共网站中(通过在搜索框中输入其URL)。这是我在上述项目中使用的KML文件,直接加载到Google Maps。(实际上我在这里使用的是KMZ文件,但它只是一个打包成ZIP存档格式的KML文件。你可以使用普通的ZIP工具进行打包和解压缩。) [更新:这在新版地图(从2014年开始)中不再适用。]

请注意,Google对KML/KMZ文件有大小限制(目前为10 Mb未压缩,3 Mb压缩 - 详情请看这里)。如果您的KML文件过大,可使用软件来降低复杂度(参见这里这里的示例)。
请注意,如果您的多边形是静态的(例如国家或城市的边界),而不是动态生成的(例如根据任何用户输入),则KML文件只是一种解决方案。对于动态多边形,您仍然需要使用Maps API的Polygon类,并遵守您提到的复杂度限制。(但您仍然可以自由地使用KML图层,并根据用户输入打开和关闭它们,只要多边形细节不必更改即可。)

3
如果您只需要不同颜色的国家边界,可以尝试使用jVectorMap

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