algorithm - 谷歌地图多边形优化

标签 algorithm google-maps polygon

我从某处提取了国家/地区轮廓数据,并成功地将其转换为经纬度坐标数组,我可以将其提供给 Google map API 以绘制折线或多边形。

问题在于该形状中大约有 1200 多个点。它在谷歌地图中呈现完美,但我需要将点数从 1200 减少到少于 100。我不需要非常平滑的轮廓,我只需要扔掉我可以没有的点。需要任何可以帮助我减少点数的算法或在线工具。

最佳答案

Bill Chadwick 找到了这个简单的 javascript。只需将 LatLng 提供给一个数组,然后在此处传递给函数中的源参数 Douglas Peucker line simplification routine

它将输出一个多边形点数较少的数组。

 var ArrayforPolygontoUse= GDouglasPeucker(theArrayofLatLng,2000) 
 var polygon=new google.maps.Polygon({ 

    path:ArrayforPolygontoUse,
    geodesic:true,
    strokeColor:"#0000FF",
    strokeOpacity:0.8,
    strokeWeight:2,
    fillColor:"#0000FF",
    fillOpacity:0.4,
    editable:true
  });

theArrayofLatLng 是您使用 google maps api 收集的经纬度数组。 2000 值以米为单位扭结。我的假设是,值越高,作为输出删除的点就越多。

对于真正的初学者: 确保在使用前在 html 页面上声明 js 文件。 :)

<script type="text/javascript" src="js/GDouglasPeucker.js"></script>

关于algorithm - 谷歌地图多边形优化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5298944/

相关文章:

algorithm - 以下算法的时间复杂度?

javascript - 解析从 Google Maps API 返回的 JSON

algorithm - 搜索引擎,比如谷歌的页面排名算法如何跨分布式/多台机器工作?

java - 谷歌地图与安卓

google-maps - API 中是否提供 Gmail "Map this"功能?

php - 在多边形 PHP 中查找点

algorithm - 退化的 Greiner-Hormann 剪裁

java - 在 Android 中测试多边形内的点

algorithm - 记录器速率限制器

python - 使用分而治之算法的多数元素