Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/369.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 获取react传单中标记的纬度和经度_Javascript_Reactjs_Leaflet_React Leaflet - Fatal编程技术网

Javascript 获取react传单中标记的纬度和经度

Javascript 获取react传单中标记的纬度和经度,javascript,reactjs,leaflet,react-leaflet,Javascript,Reactjs,Leaflet,React Leaflet,我试图在react传单中得到一个标记的经纬度,但似乎不知道怎么做。但我不知道如何在传单上称之为反应 我的目标是在地图上有一个标记(固定位置)和另一个可拖动的标记。当您拖动标记时,它将打印坐标到onDragEnd,然后告诉您两者之间的距离。我一直在阅读文档和代码,但似乎无法在我的React组件中实现这一点 非常感谢您的帮助。请参见react传单组件文档: 可以使用组件中的this.传单元素直接访问组件创建的传单元素。此传单元素通常在componentWillMount()中创建,因此可在compo

我试图在react传单中得到一个标记的经纬度,但似乎不知道怎么做。但我不知道如何在传单上称之为反应

我的目标是在地图上有一个标记(固定位置)和另一个可拖动的标记。当您拖动标记时,它将打印坐标到onDragEnd,然后告诉您两者之间的距离。我一直在阅读文档和代码,但似乎无法在我的React组件中实现这一点


非常感谢您的帮助。

请参见react传单组件文档:

可以使用组件中的this.传单元素直接访问组件创建的传单元素。此传单元素通常在componentWillMount()中创建,因此可在componentDidMount()中访问,但Map组件除外,该组件只能在渲染容器后创建


下面是一个简单的示例,它为标记分配一个
ref
,并监视
dragEnd
事件

。传单容器{
高度:70vh;
宽度:100vw;
}

const{useState,useRef,useffect}=React;
const{Map,tillelayer,Marker}=window.react
函数MapComp(){
常量[markerPos,setMarkerPos]=useState({
拉脱维亚:55.702868,
液化天然气:37.530865,
})
常量[fixedMarkerPos,setFixedMarkerPos]=useState({
纬度:55.7518300742972,
液化天然气:37.71057128906251,
})
useffect(()=>{
log(`lat diff:${markerPos.lat-fixedMarkerPos.lat},lng diff:${markerPos.lng-fixedMarkerPos.lng});
},[markerPos,fixedMarkerPos])
常量markerRef=useRef();
const fixedMarkerRef=useRef();
常量更新位置=()=>{
常量标记=markerRef.current
如果(标记!=null){
const newPos={…marker.floapelement.getLatLng()};
setMarkerPos(newPos);
}
}
返回(
);
}
ReactDOM.render(,document.getElementById('root'));

根据react传单组件文档:

可以使用组件中的this.传单元素直接访问组件创建的传单元素。此传单元素通常在componentWillMount()中创建,因此可在componentDidMount()中访问,但Map组件除外,该组件只能在渲染容器后创建


下面是一个简单的示例,它为标记分配一个
ref
,并监视
dragEnd
事件

。传单容器{
高度:70vh;
宽度:100vw;
}

const{useState,useRef,useffect}=React;
const{Map,tillelayer,Marker}=window.react
函数MapComp(){
常量[markerPos,setMarkerPos]=useState({
拉脱维亚:55.702868,
液化天然气:37.530865,
})
常量[fixedMarkerPos,setFixedMarkerPos]=useState({
纬度:55.7518300742972,
液化天然气:37.71057128906251,
})
useffect(()=>{
log(`lat diff:${markerPos.lat-fixedMarkerPos.lat},lng diff:${markerPos.lng-fixedMarkerPos.lng});
},[markerPos,fixedMarkerPos])
常量markerRef=useRef();
const fixedMarkerRef=useRef();
常量更新位置=()=>{
常量标记=markerRef.current
如果(标记!=null){
const newPos={…marker.floapelement.getLatLng()};
setMarkerPos(newPos);
}
}
返回(
);
}
ReactDOM.render(,document.getElementById('root'));

如果深入研究react传单返回的组件,您会发现您可以访问
.floapelement
,该元素包含大多数本机传单属性<代码>可以使用组件中的this.传单元素直接访问组件创建的传单元素。此传单元素通常在componentWillMount()中创建,因此可在componentDidMount()中访问,除了Map组件,它只能在容器渲染后创建。如果深入查看react传单返回的组件,您会发现您可以访问
。传单元素
,其中包含大多数本机传单属性<代码>可以使用组件中的this.传单元素直接访问组件创建的传单元素。此传单元素通常在componentWillMount()中创建,因此可在componentDidMount()中访问,但Map组件除外,该组件只能在呈现容器后创建。