zoukankan      html  css  js  c++  java
  • 在react 中使用百度地图 进行逆地址解析

    1.获取百度地图的key(密钥)

    获取Key的地址:https://lbs.amap.com/api/webservice/guide/create-project/get-key

    2.拿到密钥后,在public下的index.html文件中引入script

    <script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=你的密钥"></script>
    3.去配置文件
     3.1 node_modules文件下找到 react-script - bin - config - webpack.config.dev.js 添加BMap  (本地开发可以,bulid就有问题,报错BMap is not defined )
    externals: {
       'BMap': 'BMap',
    }

    3.2 在public下的index.html 增加一个script标签   (本地开发可以,更新到线上就有问题,报错BMap is not defined,解决办法为 3.3中的 http- https )

    <script>
          window.BMap = BMap;
    </script>

    在组件中使用Bmap 对象时 需要加上window,  否则会报错: BMap is not defined

    3.3 http - https

    <script type="text/javascript" src="https://api.map.baidu.com/api?v=2.0&ak=你的密钥"></script> 注意: https

    4.在组件中使用百度地图API, 下面是实例

    /*
         * 根据经纬度解析地址名称
         * @parameter1 lng 传入的经度
         * @parameter2 lat 传入的纬度
         */
        var BMap = window.BMap;
        var map = new BMap.Map('allmap');
        const map_click = (lng, lat, index) => {
            var point = new BMap.Point(lng, lat);
            map.centerAndZoom(point, 12);
            var geoc = new BMap.Geocoder('allmap');
            geoc.getLocation(point, rs => {
                var addComp = rs.addressComponents;
                let location = addComp.province + addComp.city + addComp.district + addComp.street + addComp.streetNumber;
    
                document.getElementsByClassName('location')[index] &&
                    (document.getElementsByClassName('location')[index].innerHTML = isUndefined(location)
                        ? '无'
                        : location);
            });
        };

    var map = new BMap.Map("address"); // 创建Map实例

    map.Geocoder('allmap')百度地图的逆地址解析,首先必须声明

    map.Point(lng,lat); //坐标点转换为百度坐标点

    map.centerAndZoom(new BMap.Point(116.404, 39.915), 11);  // 初始化地图,设置中心点坐标和地图级别

    map.addControl(new BMap.MapTypeControl()); //添加地图类型控件

    map.setCurrentCity("北京"); // 设置地图显示的城市 此项是必须设置的

    在需要展示地址的地方调用它。

    //参数解析

     //@parameter1 lng 传入的经度
     //@parameter2 lat 传入的纬度
    //@index 索引(这里是循环遍历的)

     6.示例demo

  • 相关阅读:
    Mybatis 是否支持延迟加载?如果支持,它的实现原理是什么?
    MyBatis 实现一对多有几种方式,怎么操作的?
    利用 ps 怎么显示所有的进程? 怎么利用 ps 查看指定进 程的信息?
    哪个命令专门用来查看后台任务?
    什么是 MyBatis 的接口绑定?有哪些实现方式?
    什么是端到端微服务测试?
    我们如何在测试中消除非决定论?
    什么是持续监测?
    怎么使一个命令在后台运行?
    博客园样式美化(兼容为知笔记)
  • 原文地址:https://www.cnblogs.com/shine1234/p/15428896.html
Copyright © 2011-2022 走看看