5 javascript geojson google-maps-api-3
我需要将google maps Circle转换为GeoJSON.GeoJSON不支持圆,所以我想生成一个N边多边形.我发现了一种生成常规N边多边形的好方法,但是需要在坐标系中定义半径,而Google地图中圆的半径以米为单位.
小智 17
Google Maps 在几何库中有一套方便的球形函数,这对我们来说非常简单.具体来说,我们想要的computeOffset功能:
返回从指定标题中的原点移动距离得到的LatLng(以北向顺时针方向表示).
我们有原点(圆的中心)和距离(圆的半径),所以我们只需要根据我们想要的边数计算一组点的标题.
function generateGeoJSONCircle(center, radius, numSides){
var points = [],
degreeStep = 360 / numSides;
for(var i = 0; i < numSides; i++){
var gpos = google.maps.geometry.spherical.computeOffset(center, radius, degreeStep * i);
points.push([gpos.lng(), gpos.lat()]);
};
// Duplicate the last point to close the geojson ring
points.push(points[0]);
return {
type: 'Polygon',
coordinates: [ points ]
};
}
Run Code Online (Sandbox Code Playgroud)
该几何库默认情况下不包括在内.您必须通过libraries参数专门询问它.
| 归档时间: |
|
| 查看次数: |
3694 次 |
| 最近记录: |