Sho*_*jaz 0 geometry leaflet mapbox
我正在使用传单绘制控件获取某些区域的几何图形。这些几何图形是多边形、线串、矩形和圆形,我将它们放入数据库中。我想获得从中心点到这些几何图形边缘的距离。
我正在使用https://github.com/mapbox/leaflet-omnivore以这种方式解析几何:
var layer = omnivore.wkt.parse(geometry);
var center = layer.getBounds().getCenter();
Run Code Online (Sandbox Code Playgroud)
我不知道如何获得从中心到边缘的距离。是否可以?
L.Circle
只有L.Rectangle
当它是完全正方形时才有可能。
得到半径L.Circle
其实很简单。它有一个getRadius
方法可以返回以米为单位的半径。
var radius = circle.getRadius();
Run Code Online (Sandbox Code Playgroud)
L.Circle
参考:http : //leafletjs.com/reference.html#circle
对于L.Rectangle
您可以使用getBounds
它返回一个方法L.Bounds
对象,它具有getNorthWest
与getNorthEast
该方法返回L.LatLng
的对象为那些点。您可以使用对象的distanceTo
方法L.LatLng
来计算它们之间的距离(以米为单位),然后您需要将其除以二:
var bounds = rectangle.getBounds(),
northWest = bounds.getNorthWest(),
northEast = bounds.getNorthEast(),
distance = northWest.distanceTo(northEast),
distanceFromCenter = distance / 2;
Run Code Online (Sandbox Code Playgroud)
L.Rectangle
参考:http : //leafletjs.com/reference.html#rectangle
L.Bounds
参考:http : //leafletjs.com/reference.html#latlngbounds
L.LatLng
参考:http : //leafletjs.com/reference.html#latlng
这里的问题是,如果您没有完美的正方形,则 NorthWest/northEast 之间的距离和 NorthWest/southWest 之间的距离将不同。也就是说,您可以理解,对于示例图片中的五边形形状进行这样的计算是不可能的,因为距离会有所不同,因为它取决于您测量它的点。
归档时间: |
|
查看次数: |
4140 次 |
最近记录: |