11import React , { Component } from 'react' ;
22import Layout from 'components/layout2/layout2' ;
3- import { Map , GroundImage , Markers , Marker } from 'react-amap' ;
3+ import { Map , GroundImage , Markers , Marker , Circle } from 'react-amap' ;
44import srcImg from 'images/dongwuyuan.jpg' ;
55import './item4.less' ;
66
7+
78class 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