【问题标题】:Which data source is preferable for Google Maps, KML or JSON?哪种数据源更适合 Google 地图、KML 或 JSON?
【发布时间】:2010-11-24 01:06:20
【问题描述】:

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

将点提取到 Google 地图中的首选方式是 JSON || KML?我主要关心的是性能,还有可能改进地图的功能的广度。

【问题讨论】:

    标签: json google-maps kml


    【解决方案1】:

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

    【讨论】:

    • 我同意...我会坚持使用 JSON。感谢您的回答。
    • 这被标记为不久前的答案。我有一个问题。想知道 json vs kml 中多边形的性能。我可以非常快速地加载一个 kml 层,并且不会对浏览器性能产生太大影响。这和json一样吗?
    • 如果我必须阅读 GeoJSON,是否应该公开?或者可以直接从 DB 中获取并绑定到 Map。 GeoJSON 支持缓存吗?
    【解决方案2】:
    如果您只是加载更简单的数据,

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

    【讨论】:

    • 这很愚蠢,XML 和 JSON 都是在传输过程中压缩的。如果您关心解析性能,无论如何您都必须将 API 响应转换为二进制格式。
    【解决方案3】:

    在过去的几个月里,我与OpenLayers 做了很多工作,并且非常喜欢它。该库是开源的,包括大量开箱即用的格式,包括 GeoJSONKMLHere's 一个演示 Google 地图集成的示例。 Here's 其余示例。将 OpenLayers 和 ExtJS 结合起来,得到 GeoExt(此处为 examples)。

    【讨论】:

      【解决方案4】:

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

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

      【讨论】:

        【解决方案5】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2016-05-22
          • 2010-11-15
          • 2017-04-11
          相关资源
          最近更新 更多