我完全看到了JSON的好处,将轻量级数据集合到我的Google地图中(并通过模板显示点列表)。我听过很多关于KML的讨论。
哪种方法可以将点数加入谷歌地图,JSON || KML?我主要关注的是性能,还有可能改进地图的广泛功能。
我个人使用json,因为kml生成的功能不如你通过解析json创建的功能灵活。例如,您无法将悬停事件添加到kml的多边形中。
如果您只是加载更简单的数据,那么作为XML的KML与JSON相比非常重量级,并且不仅在网络传输方面而且在解析时间方面会受到性能损失。当然,JSON的缺点在于,您不仅可能受到表达能力的限制(取决于Google Maps组件可以通过JSON与KML消费的内容),还取决于哪些客户可以使用您的数据。如果您使用KML提供数据,那么任何读取KML的内容都可以使用您的数据,例如Google地球。这就像地理数据的RSS,即如果你想要或需要它。
我想为KML提供一个案例,特别是在谷歌地图的背景下:
您可以在KMZ,KML和GeoJSON之间进行转换:
KMZ只是KML文件的ZIP存档。所以至少KMZ - > KML很容易。
# GeoJSON -> KML
$ ogr2ogr -f 'KML' -a_srs EPSG:4326 output.kml input.geojson
# KML -> GeoJSON
$ ogr2ogr -preserve_fid -f GeoJSON -a_srs EPSG:4326 output.geojson input.kml
并且
# KML -> GeoJSON
$ pip3 install kml2geojson --user
$ k2g input.kml output_directory
如果上传速度是一个问题,我会使用压缩文件。我的猜测:对于小数据,GeoJSON更小,如果你的功能变得更复杂,KMZ会更小。但我很高兴看到一些基准/数字/例子。