【问题标题】:Google Maps - How do I efficiently create a polygon with many points?谷歌地图 - 如何有效地创建具有许多点的多边形?
【发布时间】:2012-08-28 08:55:00
【问题描述】:

我需要为每个德国州创建一个多边形。我将所有GeoPoints 放在一个JavaScript 文件中,但该文件是因为关于4MB 的点数。我整天都在谷歌上搜索并思考这个问题,但无法找到解决方案......

如何使用Google Maps 多边形而不强制用户下载带有坐标的巨大 js 文件?

谢谢! 罗恩

【问题讨论】:

  • Arrghhh,对不起,我刚刚回答了另一个关于圈子的问题,所以我发布了一个关于创建圈子的答案。现已删除。 :)

标签: google-maps-api-3 kml layer geopoints


【解决方案1】:

您可以对多边形点进行编码以大大减小 javascript 文件的大小。为此,您必须包含几何库。

https://developers.google.com/maps/documentation/javascript/reference#encoding

https://developers.google.com/maps/documentation/javascript/geometry#Encoding

【讨论】:

  • 这东西太棒了!我的 JS 文件从超过 3MB 缩小到大约 200k
【解决方案2】:

一种选择是使用 FusionTablesLayer 来显示多边形。它们在公开的 Natural Earth 数据集中可用。

Example

如果您将数据转换为 KML,您可以对您的点和 KmlLayer 执行相同的操作。

【讨论】:

    【解决方案3】:

    嗯... 积分必须以某种方式传递给用户。您可以考虑以下解决方案来减少数据使用量:

    • 为不同的缩放级别使用不同的多边形。例如缩小你不需要完整的细节。
    • 只将多边形的一部分发回给用户。例如,您可以将视口坐标发送到 AJAX 脚本。这个查询您的数据库和/或 shapefile,只返回在用户视口中可见的多边形部分
    • 预处理图块。如果您可以根据自己的形状生成图像,则可以将这些图像叠加在 Google 地图上。

    【讨论】:

      猜你喜欢
      • 2014-12-22
      • 2012-07-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-03
      • 2012-06-15
      • 1970-01-01
      相关资源
      最近更新 更多