哪种数据源更适合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做了很多工作并且非常喜欢它。该库是开源的,包含大量开箱即用的格式,包括GeoJSONKMLHere's演示Google Maps集成的示例。 Here's其余的例子。结合OpenLayers和ExtJS,它导致GeoExtexamples在这里)。

另一答案

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

  1. KML是由official standard策划的OGC;
  2. 谷歌本身已经创建了KML,并维护着它的extensive documentation。它甚至还有一个用于KML的library;
  3. 谷歌地图API对KML Layers有很好的支持(虽然它也有很好的support for GeoJSON);
  4. 许多其他谷歌地图应用程序(谷歌地球,谷歌我的地图,谷歌地图路由)本地导出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?的主要内容,如果未能解决你的问题,请参考以下文章

python 构建要在Google地球或Google地图(MyMaps)中使用的KML文件

在同一张地图上使用 KML、地址查找、方向和“共享地图”

Google 地图 - KML 图层未出现在地图上

使用谷歌地图加载本地 .kml 文件?

使用 kml 文件时,Google 地图缩放被覆盖

使用“我的地图”中的.kml文件的Google地图API;