这是我正在努力做的事情: 在页面上显示地图(谷歌地图或其中任何一个竞争对手,可以免费...)并在此地图上突出显示某些国家/地区(这些国家/地区的列表将通过例子存储在变量中)。
我试图在地图上绘制多边形(几乎所有国家/地区的geo-json列表,但它太重了。)
有什么想法吗?
答案 0 :(得分:19)
我相信你需要一个多边形来做到这一点。
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
答案 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文件应该很大,可以使用软件来降低复杂性(请参阅示例here和here)。
请注意,如果您的多边形是静态的(如国家或城市的边界)而不是动态生成(例如,取决于任何用户输入),KML文件只是一种解决方案。对于动态多边形,您仍然必须使用Maps API的Polygon类以及您提到的复杂性限制。 (但您可以自由使用KML图层并根据用户输入打开和关闭它们,只要多边形细节不必更改。)
答案 2 :(得分:3)
如果您只需要具有不同颜色的国家/地区的边界,则可以尝试jVectorMap。