高德地图标记点要注意的问题

高德地图标记点要注意的问题高德地图标记点要注意的问题当打开高德地图的时候,使用API进行获取自身位置坐标,然后再进行setCenter设置中心是这样的。直接看代码:initMap(){//初始化地图map=newAMap.Map(‘map-gaode’,{resizeEnable:true,zoom:13})//初始化中心点//1、无坐标有详细地址时letsure=this.initAddress()

大家好,又见面了,我是你们的朋友全栈君。

高德地图标记点要注意的问题

当打开高德地图的时候,使用API进行获取自身位置坐标,然后再进行setCenter设置中心是这样的。

直接看代码:

initMap () { 
   
    // 初始化地图
    map = new AMap.Map('map-gaode', { 
   
      resizeEnable: true,
      zoom:13
    })

    // 初始化中心点

    // 1、无坐标 有详细地址时
    let sure = this.initAddress()
    if(sure){ 
   
      this.clickSearch()

      // 2、无详细地址
    }else{ 
   
      var nowPoint = map.getCenter()   
      if(this.mapCenter){ 
   
        console.log(this.mapCenter,nowPoint)
        nowPoint = this.mapCenter
      }
      this.setCenter(nowPoint)   //这里这里  打印
      this.setAddress(nowPoint)
    }
    

    // 地图侧边栏
    AMap.plugin('AMap.ToolBar',function(){ 
   
      //加载工具条
      var toolbar = new AMap.ToolBar({ 
   
        position:'LB'
      });
      map.addControl(toolbar)
    })

    // 绑定点击事件
    let that = this
    var clickListener = AMap.event.addListener(map, "click", function(e) { 
   
      var { 
   lng, lat} = e.lnglat
      // 设置中心点
      that.setCenter(e.lnglat)

      //根据经纬度地址
      that.setAddress(e.lnglat)      
    })
  }

打印获取的坐标结构如下:

在这里插入图片描述

对应的setCenter方法如下:

setCenter(location){ 
   
    map.setCenter([location.lng, location.lat])
    map.clearMap()
    new AMap.Marker({ 
   
      position: location,   
      map: map
    })
  }

看似没有任何使用上的问题,但是当我想使用自己手动输入坐标进行设置的时候,那么我能传到这个方法的只有经纬度而已,没有上面截图的像素值。就会出现报错。

在这里插入图片描述

正确写法如下:

 setCenter(location){ 
   
    map.setCenter([location.lng, location.lat])
    map.clearMap()
    new AMap.Marker({ 
   
      position: new AMap.LngLat(location.lng, location.lat),    //标记点用这个方法比较好   不然缺少像素位置值
      map: map
    })
  }

就不会报错了:

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/143607.html原文链接:https://javaforall.net

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • generic host process已停止工作_windows error reporting 1001

    generic host process已停止工作_windows error reporting 1001故障现象:今天在虚拟机里装了win2003系统,每次重启进入系统时都会报错:generichostprocessforwin32services遇到了一个问题需要关闭。解决方法:先从google查了下相关问题,觉得没一个说来符合我的实际情况。于是回头仔细查看日志,怀疑是安装文件太旧引起的。于是更新补丁,当安装完了提示的99个补丁后,再重启进入系统,…

    2022年10月11日
  • 【组网】NAT类型为Udpblocked的解决方法

    【组网】NAT类型为Udpblocked的解决方法气死我了前段时间测了下NAT类型,发现是Udpblocked;从路由器检查到网关,发现电脑直连网关拨号也是Udpblocked;折磨了好几天,百思不得其解,但是用网好像也没什么异常,反倒是反复设置桥接成功把vlan搞乱了;今天临时试了下在公司测了下NAT类型,好家伙公司也是受阻;最后发现原来是测试工具自带的地址已经挂了。换个地址就好了也就是说我家里其实可能一直啥事没有,我一直在跟空气斗智斗勇有一说一默认的地址用了好多年了,怎么突然就歇逼了,百思不得其解…

    2022年11月1日
  • 一文读懂Spring 循环依赖,写得太好了!(建议收藏)

    点击上方“全栈程序员社区”,星标公众号 重磅干货,第一时间送达 转自:Vt 链接:juejin.im/post/5e927e27f265da47c8012ed9 前言 Spring…

    2021年6月23日
  • 2018最潮最火背景图_qq主题背景怎么设置自定义

    2018最潮最火背景图_qq主题背景怎么设置自定义登录CSDN后,点击“我的博客”,如右图所示,

    2022年10月11日
  • (CVE-2014-0160) OpenSSL 心脏滴血漏洞

    (CVE-2014-0160) OpenSSL 心脏滴血漏洞Heartbleed心脏出血(英语:Heartbleed),也简称为心血漏洞,是一个出现在加密程序库OpenSSL的安全漏洞,该程序库广泛用于实现互联网的传输层安全(TLS)协议。它于2012年被引入了软件中,2014年4月首次向公众披露。只要使用的是存在缺陷的OpenSSL实例,无论是服务器还是客户端,都可能因此而受到攻击。此问题的原因是在实现TLS的心跳扩展时没有对输入进行适当验证(缺少边界检查),因此漏洞的名称来源于“心跳”(heartbeat)。该程序错误属于缓冲区过滤,即可以读取的数据比应该允

    2022年7月17日
  • bypasswaf之盲注

    0x00前言前面讲到了联合查询如何过waf,那么今天给大家来讲讲盲注怎么去,bypasswaf。这里还是以xx狗为例。0x01与waf的对抗我们来试试常规的注入思路。'单引号不

    2021年12月11日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号