哪种数据源更适合Google地图,KML或JSON?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了哪种数据源更适合Google地图,KML或JSON?相关的知识,希望对你有一定的参考价值。
我完全看到了JSON的好处,将轻量级数据集合到我的Google地图中(并通过模板显示点列表)。我听过很多关于KML的讨论。
哪种方法可以将点数加入谷歌地图,JSON || KML?我主要关注的是性能,还有可能改进地图的广泛功能。
我个人使用json,因为kml生成的功能不如你通过解析json创建的功能灵活。例如,您无法将悬停事件添加到kml的多边形中。
如果您只是加载更简单的数据,那么作为XML的KML与JSON相比非常重量级,并且不仅在网络传输方面而且在解析时间方面会受到性能损失。当然,JSON的缺点在于,您不仅可能受到表达能力的限制(取决于Google Maps组件可以通过JSON与KML消费的内容),还取决于哪些客户可以使用您的数据。如果您使用KML提供数据,那么任何读取KML的内容都可以使用您的数据,例如Google地球。这就像地理数据的RSS,即如果你想要或需要它。
在过去几个月里,我与OpenLayers做了很多工作并且非常喜欢它。该库是开源的,包含大量开箱即用的格式,包括GeoJSON和KML。 Here's演示Google Maps集成的示例。 Here's其余的例子。结合OpenLayers和ExtJS,它导致GeoExt(examples在这里)。
我想为KML提供一个案例,特别是在谷歌地图的背景下:
- KML是由official standard策划的OGC;
- 谷歌本身已经创建了KML,并维护着它的extensive documentation。它甚至还有一个用于KML的library;
- 谷歌地图API对KML Layers有很好的支持(虽然它也有很好的support for GeoJSON);
- 许多其他谷歌地图应用程序(谷歌地球,谷歌我的地图,谷歌地图路由)本地导出KML,或提供下载/保存数据为KML。据我所知,导入/导出功能至少尚未开发GeoJSON(截至2016年)。
您可以在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会更小。但我很高兴看到一些基准/数字/例子。
以上是关于哪种数据源更适合Google地图,KML或JSON?的主要内容,如果未能解决你的问题,请参考以下文章