Skip to content

Commit 5065572

Browse files
committed
react-amap测距功能
1 parent 69682ee commit 5065572

File tree

1 file changed

+46
-8
lines changed

1 file changed

+46
-8
lines changed

src/pages/item4/item4.jsx

Lines changed: 46 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,31 @@
11
import React, { Component } from 'react';
22
import Layout from 'components/layout2/layout2';
3-
import { Map, GroundImage, Markers, Marker } from 'react-amap';
3+
import { Map, GroundImage, Markers, Marker, Circle } from 'react-amap';
44
import srcImg from 'images/dongwuyuan.jpg';
55
import './item4.less';
66

7+
78
class PageComponent extends Component {
89
constructor(props) {
910
super(props);
1011
this.center = {
11-
longitude: 116.33719,
12-
latitude: 39.942384
12+
longitude: 118.642807,
13+
latitude: 32.036538
14+
};
15+
this.currentPosition = {
16+
longitude: 116.397477,
17+
latitude: 39.908692
18+
};
19+
this.state = {
20+
radius: 600,
21+
visible: true,
22+
style: { strokeColor: '#f00' },
23+
draggable: true
24+
};
25+
this.circleEvents = {
26+
created: (ins) => { console.log(window.circle = ins); },
27+
click: () => { console.log('clicked'); },
28+
mouseover: () => { console.log('mouseover'); }
1329
};
1430
this.markers = [
1531
{
@@ -38,11 +54,25 @@ class PageComponent extends Component {
3854
}
3955
};
4056
}
41-
markersEvents = { click(e, marker) {
42-
const extData = marker.getExtData();
43-
const deveui = extData.deveui;
44-
console.log(deveui);
45-
} };
57+
componentDidMount() {
58+
// 调用高德地图原生LngLat类,使用distance方法,但需等高德地图加载完成
59+
setTimeout(() => {
60+
console.log(this.calculate(
61+
new window.AMap.LngLat(118.642807, 32.036538),
62+
new window.AMap.LngLat(116.397477, 39.908692)
63+
));
64+
}, 2000);
65+
}
66+
markersEvents = {
67+
click(e, marker) {
68+
const extData = marker.getExtData();
69+
const deveui = extData.deveui;
70+
console.log(deveui);
71+
}
72+
};
73+
calculate(lnglat1, lnglat2) {
74+
return Math.round(lnglat1.distance(lnglat2));
75+
}
4676

4777
render() {
4878
return (
@@ -65,6 +95,14 @@ class PageComponent extends Component {
6595
bounds={this.bounds}
6696
src={srcImg}
6797
/>
98+
<Circle
99+
center={this.center}
100+
radius={this.state.radius}
101+
events={this.circleEvents}
102+
visible={this.state.visible}
103+
style={this.state.style}
104+
draggable={this.state.draggable}
105+
/>
68106
</Map>
69107
</div>
70108
</div>

0 commit comments

Comments
 (0)