我的部分网络应用程序将允许用户点击地图的某个区域,并让它突出显示我在页面上的Google地图中的该部分。这在许多网站上都很标准,但是我很难掌握那里的数据量。
我正在尝试从http://global.mapit.mysociety.org/生成数据,这为我想要变成多边形的实际坐标提供了几个输出选项,但是导出WKT,GeoJSON或KML是巨大的 - 700-900对于EACH实例的KB,我不明白该网站如何在不加载此数据的情况下合并这些多边形(Chrome不会显示任何超过50 KB的项目。)
我下载了一些WKT文件,然后使用PHP将其转换为javascript字符串,以便:
var coordinates = [
new google.maps.LatLng(1.1, 1.2),
...
new google.maps.LatLng(1.1, 1.2)
];
我用大约10个地点做了这个,保存了我的文件,它是9 MB - 所有来自这些超长的coordinates
字符串......
如何更有效地完成此操作,因为这显然不是将多边形数据合并到动态地图加载中的方法?
答案 0 :(得分:1)
不要在服务器端翻译它,字符串new google.maps.LatLng
会炸毁你的文件。
当您使用例如geoJSON您可以通过loadGeoJson
加载多边形。
链接页面使用geoJSON绘制多边形(例如http://global.mapit.mysociety.org/area/686972.html加载这些数据:http://global.mapit.mysociety.org/area/686972.geojson?simplify_tolerance=0.0001 ~100KB)
另一种选择是在服务器端对每个单一多边形(折线)进行编码,并通过JS重新组装/解码多边形。 有关详细信息,请参阅https://developers.google.com/maps/documentation/utilities/polylinealgorithm和https://developers.google.com/maps/documentation/javascript/reference#encoding。