如何解决React-Leaflet / OpenStreetMap:检测标记是否在圆圈内
我有一个标记和几个区域(圆形)。现在我想检测标记是否在区域内。知道我该怎么做吗?
data.json
{
"name": "John Doe","longitude": "33.44074300000000","latitude": "-86.78584000000000","exclusionZones": [
{
"latitude": "33.42074300000000","longitude": "-86.76584000000000","radius": "350"
},{
"latitude": "33.52074300000000","longitude": "-86.78984000000000","radius": "500"
}
]
}
Map.js MapContainer内部
{data.map((data,index) => {
return (
<Fragment>
{data.exclusionZones.map((zone,index) => (
<Circle
center={[zone.latitude,zone.longitude]}
radius={zone.radius}
/>
))}
<Marker
position={[data.longitude,data.latitude]}
key={index}
>
</Marker>
</Fragment>
);
})}
解决方法
这是如何按照伊万的建议去做。
function isMarkerInCircle(circle,mark) {
let circleCenter = circle.getLatLng();
let markerPos = mark.getLatLng();
return circleCenter.distanceTo(markerPos) < circle.getRadius()
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。