这就是我正在努力做的事情:在页面上显示地图(谷歌地图或任何竞争对手,免费是可能的......)并在这张地图上突出显示某些国家(这些国家的列表将存储在一个变量中例)。
我试图用(几乎)所有国家的 geo-json 列表在地图上绘制多边形,但它太重了。
有任何想法吗 ?
这就是我正在努力做的事情:在页面上显示地图(谷歌地图或任何竞争对手,免费是可能的......)并在这张地图上突出显示某些国家(这些国家的列表将存储在一个变量中例)。
我试图用(几乎)所有国家的 geo-json 列表在地图上绘制多边形,但它太重了。
有任何想法吗 ?
我相信你需要一个多边形来做到这一点。
http://code.google.com/apis/maps/documentation/overlays.html#Polygons_Overview
http://code.google.com/apis/maps/documentation/reference.html#GPolygon
喜欢这个示例: http: //gmaps-samples-v3.googlecode.com/svn/trunk/poly/pentagon.html
或者查看这个可以为您完成所有艰苦工作的网站:)
http://www.dyngeometry.com/web/WorldRegion.aspx
最后,还有 Google Geochart
在这里查看:https ://developers.google.com/chart/interactive/docs/gallery/geochart
如果将它们存储为 KML 文件格式并将它们加载为KmlLayers ,则可以在地图中创建非常复杂的多边形而不会降低性能。KML 是一种基于 XML 的地理数据矢量文件格式。在 Google 地图中使用 KML 文件的美妙之处在于,它们在 Google 服务器上呈现为简单的 PNG 文件,无论原始多边形数据多么复杂,都可以随时匹配您的地图视图的当前分辨率和边界框。因此,所有复杂性都在 Google 的服务器端处理。
这是一个项目示例,我在其中为德国的一个联邦州使用了 KML 掩码。
为了快速查看 KML 文件,也可以直接加载到 Google 地图公共网站(通过在搜索字段中输入其 URL)。这是我在上述项目中使用的 KML 文件,直接加载到 Google Maps中。(我实际上在这里使用了一个 KMZ 文件,但这只是一个压缩到 ZIP 存档中的 KML 文件。您可以使用普通的 ZIP 工具对其进行打包和解压缩。) [更新:这在新的地图版本中不再起作用(开始2014 年)。]
请注意,Google 暗示了对 KML/KMZ 文件的大小限制(当前为 10 Mb 未压缩,3 Mb 压缩 -详情请参见此处)。如果您的 KML 文件过大,可以使用软件来降低复杂性(请参阅此处和此处的示例)。
请注意,仅当您的多边形是静态的(例如国家或城市的边界)并且不是动态生成的(例如,取决于任何用户输入)时,KML 文件才是一种解决方案。对于动态多边形,您仍然必须使用 Maps API 的 Polygon 类,并具有您提到的复杂性限制。(但您仍然可以自由使用 KML 图层并根据用户输入打开和关闭它们,只要多边形细节不必更改。)
If you need just a boundaries of the countries with different colors you can try jVectorMap.