哪种数据源更适合Google地图,KML或JSON?

问题描述 投票:10回答:5

我完全看到了JSON的好处,将轻量级数据集合到我的Google地图中(并通过模板显示点列表)。我听过很多关于KML的讨论。

哪种方法可以将点数加入谷歌地图,JSON || KML?我主要关注的是性能,还有可能改进地图的广泛功能。

json google-maps kml
5个回答
10
投票

我个人使用json,因为kml生成的功能不如你通过解析json创建的功能灵活。例如,您无法将悬停事件添加到kml的多边形中。


7
投票

如果您只是加载更简单的数据,那么作为XML的KML与JSON相比非常重量级,并且不仅在网络传输方面而且在解析时间方面会受到性能损失。当然,JSON的缺点在于,您不仅可能受到表达能力的限制(取决于Google Maps组件可以通过JSON与KML消费的内容),还取决于哪些客户可以使用您的数据。如果您使用KML提供数据,那么任何读取KML的内容都可以使用您的数据,例如Google地球。这就像地理数据的RSS,即如果你想要或需要它。


7
投票

在过去几个月里,我与OpenLayers做了很多工作并且非常喜欢它。该库是开源的,包含大量开箱即用的格式,包括GeoJSONKMLHere's演示Google Maps集成的示例。 Here's其余的例子。结合OpenLayers和ExtJS,它导致GeoExtexamples在这里)。


3
投票

我想为KML提供一个案例,特别是在谷歌地图的背景下:

  1. KML是由official standard策划的OGC;
  2. 谷歌本身已经创建了KML,并维护着它的extensive documentation。它甚至还有一个用于KML的library;
  3. 谷歌地图API对KML Layers有很好的支持(虽然它也有很好的support for GeoJSON);
  4. 许多其他谷歌地图应用程序(谷歌地球,谷歌我的地图,谷歌地图路由)本地导出KML,或提供下载/保存数据为KML。据我所知,导入/导出功能至少尚未开发GeoJSON(截至2016年)。

0
投票

您可以在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会更小。但我很高兴看到一些基准/数字/例子。

© www.soinside.com 2019 - 2024. All rights reserved.