react中使用amap

React中引入原生高德地图

引入
官网说的很简单,直接在index.html文件里引入一个

配置
webpack.config.js(如果是用dva框架的话,就找一下.webpackrc)

externals: {
‘AMap’: ‘AMap’
},

externals选项作用是–从打包的bundle文件中排除依赖。
让在项目中通过import引入的依赖在打包的时候不会打包到bundle包中去,而是通过script的方式去访问这些依赖。

调用
componentDidMount(){
let map = new window.AMap.Map(‘container’)
}

————————————————
上文为CSDN博主「南乡人」的原创文章,
原文链接:https://blog.csdn.net/qq_37086982/article/details/96882968

以下简单的使用原生amap 写一个react简单的通过搜索获取经纬度

import React, { Component } from 'react'
import styles from './index.less'
import { Input, message } from 'antd'


//props.getLngLat 定位信息

export default class index extends Component {

  constructor(props) {
    super(props);
    this.state = {
      key: '6a3907f5d35694dc2ed65cdf62dc30ab',
    };

  }
  componentDidMount() {

    console.log(this.props, 1);

    const props = this.props

    const map = new window.AMap.Map("container", {
      resizeEnable: true,
      zoom: 13,
    });


    window.AMap.plugin(['AMap.Autocomplete', 'AMap.PlaceSearch'], function () {
      var autoOptions = {
        // 使用联想输入的input的id
        input: "tipinput"
      }
      var autocomplete = new window.AMap.Autocomplete(autoOptions)

      var placeSearch = new window.AMap.PlaceSearch({
        map: map
      })
      window.AMap.event.addListener(autocomplete, 'select', function (e) {
        //TODO 针对选中的poi实现自己的功能
        placeSearch.search(e.poi.name)
        // console.log(e,'搜索');
        if(!e.poi.location){
          message.info('选择地址不详细,请重新选择地址')
          return false
        }

        props.getLngLat(e)
      })
    })

  }

  render() {

    return (
      <div style={{ width: '100%', height: this.props.height }} >
        <Input id='tipinput' placeholder="请输入并选择地址" ></Input>

        <div id="container" className={styles.container}></div>

      </div >

    )
  }
}

如果要获取搜索后多个坐标的经纬度 使用事件


 window.AMap.event.addListener(placeSearch, "markerClick", function (e) {

        console.log(e);
   })

如果要鼠标点击地图任意点返回经纬度

var clickHandler = function (e) {

      alert('您在[ ' + e.lnglat.getLng() + ',' + e.lnglat.getLat() + ' ]的位置点击了地图!');
    };

    // 绑定事件
    map.on('click', clickHandler);

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值