广告
返回顶部
首页 > 资讯 > 前端开发 > node.js >百度地图API之地图标注怎么用
  • 262
分享到

百度地图API之地图标注怎么用

2024-04-02 19:04:59 262人浏览 安东尼
摘要

这篇文章给大家分享的是有关百度地图api之地图标注怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。标注概述标注(Marker)是用来表示一个点位置的可见元素,每个标注自身都包

这篇文章给大家分享的是有关百度地图api之地图标注怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

标注概述

标注(Marker)是用来表示一个点位置的可见元素,每个标注自身都包含地理信息。比如你在西单商场位置添加了一个标注,不论地图移动、缩放,标注都会跟随一起移动,保证其始终指向正确的地理位置。

百度地图API之地图标注怎么用

从上面的图可以看出,不论地图如何变化标注始终指向“西单商场”的位置。

如何知道某个点的坐标?

上例中我们在西单商场位置添加了一个标注,那么我是如何知道它的坐标点呢?可以通过API的事件机制来获取:

map.addEventListener('click', function(e){  console.log(e.point);  });

我们在map对象上添加了一个click事件的监听函数,当点击地图上某个位置时,监听函数通过控制台把当前点击的位置输出出来(注意需要有控制台的支持,比如firebug,如果没有控制台则可使用alert把point的lng和lat属性输出出来)。此外,你也可以使用API提供的坐标拾取工具来完成(Http://dev.baidu.com/wiki/static/map/API/tool/getPoint/),它支持检索并且点击地图上任意位置时会出现该位置的坐标。

标注元素组成

从DOM元素构成角度看,一个完整的标注是由以下几个部分组成的:

标注点击区域

标注图标

标注阴影

下面是示意图:

百度地图API之地图标注怎么用

在地图API实现中,这三个DOM元素分别位于不同的容器中,这些容器可以通过map.getPanes()方法获得,其中markerMouseTarget就是标注点击区域所在容器、markerPane为标注图标所在容器,markerShadow为标注阴影所在图层。你可能会在自定义覆盖物时需要这些容器对象,这里只需要知道Marker的各个部分是如何放置的即可。

自定义标注图标

标注的图标是可以自定义的,通过Icon类可以自定义标注的图标,比如我希望使用下面这个图片作为标注图标:

百度地图API之地图标注怎么用

已知这个图标大小为20x32。我们初始化地图,接着定义Icon,并赋给一个Marker实例:

varmap =newBMap.Map('container');  map.centerAndZoom(newBMap.Point(116.380797, 39.918497), 18);  var icon = new BMap.Icon('pin.png', new BMap.Size(20, 32), {  anchor: new BMap.Size(10, 30)  });varmkr =newBMap.Marker(newBMap.Point(116.38075,39.918986), {  icon: icon  });  map.addOverlay(mkr);

我们给定icon所需图片的url,接着是图片的尺寸,另外我们还增加了anchor属性,这个是干什么用的呢?在自定义标注图标时有一点需要注意的就是标注的定位点(anchor),通俗的讲就是要指定图片的哪个位置是与标注真正的位置对应在一起。我们通过下面的图示来说明:

百度地图API之地图标注怎么用

我们获取到地图上一个位置(上图中标注下端所在的黑色小方块),那么我也希望我标注中间下端指向这个位置,这个就需要通过anchor来调节。anchor的意义如下图所示:

百度地图API之地图标注怎么用

即定位点距离图片左上角的偏移量。

如果不给anchor的话,API会自动获取图片中心点作为anchor位置:

百度地图API之地图标注怎么用

我们看到标注图片中心的位置覆盖在那个小方块区域。

除了anchor之外,还有一个infoWindowAnchor属性,它是用来控制信息窗口开启的位置的(注意这里调用的是Marker的openInfoWindow方法,而不是Map的openInfoWindow方法),默认情况下它和icon的anchor是一个位置:

百度地图API之地图标注怎么用

标注被InfoWindow的底角挡住了,通过infoWindowAnchor属性就可以改变开启位置:

varicon =newBMap.Icon('pin.png', newBMap.Size(20, 32), {  anchor: newBMap.Size(10, 30),  infoWindowAnchor: newBMap.Size(10, 0)  })

再看看效果:

百度地图API之地图标注怎么用

尖角位置已经发生了改变。

标注拖拽

标注支持拖拽,并且可以配置是否有动画效果,我们修改创建标注的代码:

varmkr =newBMap.Marker(newBMap.Point(116.38075,39.918986), {  icon: icon,  enableDragging: true,  raiseOnDrag: true});

这里开启了拖拽功能以及响应的动画效果。如果此时拖拽地图你会得到如下效果:

百度地图API之地图标注怎么用

通过监听标注的dragend事件,你可以知道拖拽结束后标注的地理位置:

mkr.addEventListener('dragend', function(e){  alert(e.point.lng +', '+e.point.lat);  })

标注阴影

为了增加立体感,可以单独给标注添加阴影,当然你也可以把阴影直接画在icon所用的图片上,但是由于阴影和标注本身在一起,所以就不建议使用任何动画效果,否则会缺乏真实感。阴影可以通过MarkerOptions的shadow属性配置,类型也是一个Icon实例。具体使用方法和icon属性一样,这里就不赘述了。

感谢各位的阅读!关于“百度地图API之地图标注怎么用”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!

--结束END--

本文标题: 百度地图API之地图标注怎么用

本文链接: https://www.lsjlt.com/news/86962.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 百度地图API之地图标注怎么用
    这篇文章给大家分享的是有关百度地图API之地图标注怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。标注概述标注(Marker)是用来表示一个点位置的可见元素,每个标注自身都包...
    99+
    2022-10-19
  • 百度地图API的使用
    文章目录 一、百度地图--作者前言二、百度地图如何使用第一步:进入官网第二步:进入开发文档第三步:申请百度开发者密钥获取账户和密钥 第四步:插入百度地图4.1申请密钥=>已完成4.2...
    99+
    2023-08-31
    百度 php 前端
  • JavaScript中怎么接入百度地图API
    这期内容当中小编将会给大家带来有关JavaScript中怎么接入百度地图API,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。一、百度地图API接入搜索百度地图开发平台注册百度账号登陆并申请成为开发者在百度...
    99+
    2023-06-20
  • Android百度地图应用之创建显示地图
    本文是在完成了Android百度地图应用开发基础知识的基础上继续实现的。 本文实例为大家分享了Android如何显示地图,并为后续内容做准备,供大家参考,具体内容如下 &nbs...
    99+
    2022-06-06
    地图 地图应用 Android
  • Javascript百度地图坐标怎么转换
    在web应用中,经常需要使用Javascript将一个地点的经纬度坐标进行转换,以实现更加完善的地图服务或者其他功能。而百度地图作为目前国内应用最广泛的地图API之一,允许开发者使用Javascript对其API进行调用,进而实现坐标转换等...
    99+
    2023-05-14
  • Android 调用百度地图API示例
    Android 调用百度地图API 一、到 百度地图开发平台下载SDK http://lbsyun.baidu.com/index.php?title=android...
    99+
    2022-06-06
    调用 百度地图api 地图api api Android
  • Android百度地图应用之图层展示
    一、简介  1、地图类型  百度地图Android SDK 3.7.1提供了两种类型的地图资源(普通矢量地图和卫星图),开发者可以利用BaiduMap中的M...
    99+
    2022-06-06
    展示 地图 地图应用 Android
  • Android百度地图应用之基本地图功能实现
    一、简介  1、地图  地图展示:普通地图(2D,3D)、卫星图和实时交通图。  地图操作:可通过接口或手势控制来实现地图的点击、双击、长按、缩放...
    99+
    2022-06-06
    地图 地图应用 Android
  • 怎么在vue项目中使用百度地图API
    小编给大家分享一下怎么在vue项目中使用百度地图API,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!为什么要使用VueVue是一款友好的、多用途且高性能的Java...
    99+
    2023-06-14
  • JavaScript如何嵌入百度地图API
    小编给大家分享一下JavaScript如何嵌入百度地图API,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!先看效果图一、申请成为百度开发者,获得使用地图API接口...
    99+
    2023-06-14
  • 百度地图API怎么制作驾车导航
    这篇文章主要讲解了“百度地图API怎么制作驾车导航”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“百度地图API怎么制作驾车导航”吧!一、创建地图与网页样式创...
    99+
    2022-10-19
  • 高德/腾讯地图与百度地图坐标相互转化
    关于坐标系: 我们常用的地图api坐标系有wgs84坐标系,gcj02坐标系,bd09坐标系。 wgs坐标系是国际上通用的坐标系,也称地球坐标系,gps和北斗系统都使用的是wgs坐标系。谷歌地图使用的是wgs坐标系(中国部分除外),op...
    99+
    2023-09-22
    后端 java Powered by 金山文档
  • Android百度地图应用之MapFragment的使用
    一、简介  TextureMapFragment:用于显示地图片段。  二、示例3--Demo03MapFragment.cs  文件名:Demo...
    99+
    2022-06-06
    地图 地图应用 Android
  • uniapp能调用百度地图么
    uni-app是一款跨平台的应用程序开发框架,它支持使用Vue.js进行开发,同时也支持多种小程序平台以及H5应用的开发。在uni-app中使用百度地图非常方便,只需要通过百度地图API调用相关接口即可实现。具体来说,uni-app通过在项...
    99+
    2023-05-14
  • C#调用百度地图API根据地名获取经纬度geocoding
    目录前言步骤 一、到百度地图开放平台注册认证,并创建应用,获取ak二、查看api文档三、创建GeocodingMap类,根据地名获取经纬度参考前言 公司的一个内部网站维护,需要根据地...
    99+
    2022-11-13
  • 如何在vue项目中使用百度地图API
    目录1、在百度地图开放平台注册账号并登录2、选择自己所需的地图版本:3、在我们的vue项目中的public文件夹下的index.html中引入并记得替换上你的ak(这个ak不是其他的...
    99+
    2022-11-12
  • JavaScript接入百度地图API的方法步骤
    目录一、百度地图API接入二、在HTML中使用百度地图API1、在html中引入百度地图js文件2、在网页中定义一个DIV用于显示地图3、在网页中显示地图4、添加可选控件5、定位功能...
    99+
    2022-11-12
  • 使用百度地图api通过redis实现地标存储及范围坐标点查询功能
    1.首先拿到百度地图开发密钥,进入百度地图开放平台:百度地图开放平台 (1)选择开发文档>>web开发>>JavaScript API (2)需要申请密钥才...
    99+
    2022-11-12
  • android调用百度地图实现地理围栏
    效果: 实现功能: 后台定位 地图长按添加marker得到当前位置经纬度坐标 创建地理围栏(以marker所在位置为中心,半径默认设置为10...
    99+
    2022-06-06
    百度地图 地图 地理 Android
  • uniapp上高德(百度)地图API的使用(APP安卓)
    前言 由于在app中没有document,window等对象,所以使用在pc端传统方法引入的方式,将会发现无法引用成功,会出现白屏现象。 目前有两种解决方式: 使用uniapp的web-view方式(百度地图) 使用renderjs...
    99+
    2023-10-12
    uni-app 百度api 高德api renderjs webview Powered by 金山文档
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作