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>
            )
        }
    }

    最后效果图如下

  • 相关阅读:
    JavaScript Eval 函数使用
    WPFToolkit Calendar & DatePicker 使用介绍
    Windows Mobile 6.5 配置环境,数据库访问,部署简单实例
    ThreadPool.QueueUserWorkItem 方法 (WaitCallback)
    Windws Mobile 6.5 Professional ADO.NET数据访问
    WPF调用Web Services
    c#中Interface的理解
    PagesSection.MaintainScrollPositionOnPostBack 属性
    EclipseRCP中文语言包版本不一致,导致导出错误
    SWT美化开源控件网站
  • 原文地址:https://www.cnblogs.com/ldlx-mars/p/10024097.html
Copyright © 2011-2022 走看看