我从某处提取了国家/地区轮廓数据,并成功地将其转换为经纬度坐标数组,我可以将其提供给 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/