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

高德地图标记点要注意的问题高德地图标记点要注意的问题当打开高德地图的时候,使用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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • Codeblocks的断点调试步骤

    Codeblocks的断点调试步骤首先,新建一个C/C++的codeblocks项目。具体步骤如下:1.新建一个工程(project),注意路径中不要包含中文,否则后面断点调试时会出现问题2.直接选择空工程3.选择C或者C++项目即可4.点开工作空间(workspace)中的Source文件夹,即可对文件进行编辑然后,在.c或者.cpp文件中编写程序,设置断点进行调试。下面以一个…

    2022年5月11日
    99
  • android json解析及简单例子

    android json解析及简单例子android2.3提供的json解析类android的json解析部分都在包org.json下,主要有以下几个类:JSONObject:可以看作是一个json对象,这是系统中有关JSON定义的基本

    2022年7月2日
    22
  • mysql中length函数_length中文

    mysql中length函数_length中文1、length:返回字符串所占的字节数selectlength(“10,A,B”);2、char_length:返回字符串的字符数selectchar_length(“10,A,B”);归纳:应用场景1.查询字符串长度length(str)2.查询列最大字符串长度max(length(str))3.查询某个字符出现几次length(str1)-length(replace(‘str1’,’str2’,”))4.length求得是字符长度。【1个中文、英文字母、数字、中文

    2022年5月3日
    417
  • 全局键盘钩子

    全局键盘钩子这是在系统的范围内截获键盘消息,所以需要全局键盘钩子,全局键盘钩子需要DLL文件的支持,这样系统才能把DLL强行的加载到进程中去。建立一个新的DLL文件,在DllMain()函数所在的CPP中添加:定义两个全局变量:钩子句柄和DLL模块句柄。HHOOKg_Hook=NULL;HINSTANCEg_Instance=NULL;在DllMain函数中保存DLL模块句柄,安装…

    2022年6月11日
    59
  • js跨域请求的三种方法_jQuery

    js跨域请求的三种方法_jQueryJavaScriptjQuery:Ajax、跨域。

    2025年6月20日
    3
  • mask scoring rcnn_faster rcnn详解

    mask scoring rcnn_faster rcnn详解1.M,对应着图像中的CNN部分,其对输入进来的图片有尺寸要求,需要可以整除2的6次方。在进行特征提取后,利用长宽压缩了两次、三次、四次、五次的特征层来进行特征金字塔结构的构造。ask-RCNN使用Resnet101作为主干特征提取网络2.ResNet101有两个基本的块,分别名为ConvBlock和IdentityBlock,其中ConvBlock输入和输出的维度是不一样的,所以不能连续串联,它的作用是改变网络的维度;IdentityBlock输入维度和输出维度相同,可以串联,用于加深网络的。

    2022年9月28日
    2

发表回复

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

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