zoukankan      html  css  js  c++  java
  • reactjs中使用高德地图计算两个经纬度之间的距离

    第一步下载依赖

    npm install --save react-amap

    第二步,在组件中使用

    import React, { Component } from 'react'
    import { Link } from 'react-router-dom'
    import { Map, Marker } from 'react-amap';
    
    export default class Page1 extends Component {
        
        constructor(){
            super();
            this.toolEvents = {
              created: (tool) => {
                this.tool = tool;
              }
            }
            this.mapPlugins = ['ToolBar'];
            this.mapCenter = {longitude: 120, latitude: 35};
            this.markerPosition = {longitude: 121, latitude: 36};
          }
    
        render () {
            return (
                <div style={{height:"100%"}}>
                    <Map
                        version={'1.4.4'}//amap版本
                        amapkey={'注册一个高德地图应用的appkey'}
                        plugins={this.mapPlugins}
                        center={this.mapCenter}
                        zoom={6}
                        expandZoomRange={true}
                        zooms={10}
                        animateEnable={true}
                        useAMapUI>
                        <Marker position={this.markerPosition} />
                    </Map>
                </div>
            )
        }
    }

    第三步,点击地图上的一点计算两点之间的距离,添加events

    import React, { Component } from 'react'
    import { Link } from 'react-router-dom'
    import { Map, Marker } from 'react-amap';
    
    const events = {
        click: (e) => { 
            var p1 = [116.434027, 39.941037];
            var p2 = [e.lnglat.lng,e.lnglat.lat];
            var dis=window.AMap.GeometryUtil.distance(p1, p2);
            console.log(dis)
        },
    }
    
    export default class Page1 extends Component {
        
        constructor(){
            super();
            this.toolEvents = {
              created: (tool) => {
                this.tool = tool;
              }
            }
            this.mapPlugins = ['ToolBar'];
            this.mapCenter = {longitude: 120, latitude: 35};
            this.markerPosition = {longitude: 121, latitude: 36};
          }
    
        render () {
            return (
                <div style={{height:"100%"}}>
                    <Map
                        version={'1.4.4'}//amap版本
                        amapkey={'你注册一个高德地图应用的appkey'}
                        plugins={this.mapPlugins}
                        center={this.mapCenter}
                        zoom={6}
                        expandZoomRange={true}
                        zooms={10}
                        animateEnable={true}
                        events={events}
                        useAMapUI>
                        <Marker position={this.markerPosition} />
                    </Map>
                </div>
            )
        }
    }

    最后效果图如下

  • 相关阅读:
    ES vm报错
    ln -s /usr/local/jdk1.8.0_201/bin/java /bin/java
    docker压缩导入导出
    微软各种资源整理(迅雷下载),感谢站长。
    python打开文件的访问方式
    docker换源
    selinux
    ElasticsearchException: java.io.IOException: failed to read [id:0, file:/data/elasticsearch/nodes/0/_state/global-0.st]
    带了纸和笔,要记哪些东西?
    redis命令行批量删除匹配到的key
  • 原文地址:https://www.cnblogs.com/ldlx-mars/p/10024097.html
Copyright © 2011-2022 走看看