谷歌地图 API 开发之添加标记(解析以及补充)
今天又看了下官网,发现官网上有地图标记的详细说明。当时居然眼瞎看不见,还琢磨了好久...#$%^&,一定是项目太急,没看到(^o^)/~
地址:https://developers.google.com...
添加标记
google.maps.Marker 的构造函数只需传入一个 MarkerOptions 对象字面量,用于指定标记的初始属性。
以下字段特别重要,并且在构建标记时通常会进行设置:
position(必填)指定用于标识标记的初始位置的 LatLng。 map(可选)指定用来放置标记的Map。如果您在构建标记时未指定地图,则标记会被创建,但不会附加到(或显示在)地图上。您以后可以通过调用标记的 setMap() 方法来添加标记。
以下示例将一个简单的标记添加到乌鲁鲁(位于澳大利亚的中心)的地图上:
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 4,
center: myLatLng
});
var marker = new google.maps.Marker({
position: myLatLng,
map: map,
});
}" title="" data-original-title="复制">
function initMap() {
var myLatLng = {lat: -25.363, lng: 131.044};
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 4,
center: myLatLng
});
var marker = new google.maps.Marker({
position: myLatLng,
map: map,
});
}
在以上示例中,在构建标记时使用了 MarkerOptions 中的 map 属性将该标记放置在地图上。或者,您也可以直接使用标记的 setMap() 方法将该标记添加到地图上,如以下示例中所示:
var marker = new google.maps.Marker({
position: myLatlng,
});
// To add the marker to the map, call setMap();
marker.setMap(map);
" title="" data-original-title="复制">
var myLatlng = new google.maps.LatLng(-25.363882,131.044922);
var mapOptions = {
zoom: 4,
center: myLatlng
}
var map = new google.maps.Map(document.getElementById("map"), mapOptions);
var marker = new google.maps.Marker({
position: myLatlng,
});
// To add the marker to the map, call setMap();
marker.setMap(map);
移除标记
要从地图上移除标记,请调用 setMap() 方法并传递 null 作为自变量。
marker.setMap(null);
请注意,上述方法并不会删除该标记。它只是将该标记从地图上移除。如果您是想删除该标记,则应该从地图上移除它,然后将该标记本身设置为 null。
如果您希望管理一组标记,则应该创建一个数组来保存这些标记。使用此数组,您就可以依次对数组中的每个标记调用 setMap() 来移除这些标记。您也可以删除这些标记,只需先将其从地图上移除,然后将数组的 length 设置为 0,这将移除这些标记的所有引用。
也可以参考上一篇文章,谷歌地图API 开发 之 添加标记 其实跟官网的基本原理也是一样的。
以动画方式呈现标记
您可以通过动画的方式呈现标记,以便它们能够在各种不同的情况下展现出动态移动的效果。要指定某个标记的动画呈现方式,请使用该标记的 animation 属性,其类型为 google.maps.Animation。可支持以下 Animation 值:
DROP表示第一次将该标记放置在地图上时,该标记应该从地图顶部下落到其最终位置。一旦标记停止移动,动画即停止,并且animation将还原为null。在创建Marker时,通常会指定这种类型的动画。BOUNCE表示该标记应该在原地弹跳。弹跳标记将持续弹跳,直到其animation属性显式设置为null。
您可以通过对 Marker 对象调用 setAnimation() 来对现有标记启动动画。
function initMap() {
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 13,
center: {lat: 59.325, lng: 18.070}
});
marker = new google.maps.Marker({
map: map,
draggable: true, //marker 设为 可拖动
animation: google.maps.Animation.DROP, //动画属性设为DROP
position: {lat: 59.327, lng: 18.067}
});
marker.addListener('click', toggleBounce); //监听marker点击时执行togglerBounce方法切换动画属性
}
function toggleBounce() {
if (marker.getAnimation() !== null) {
marker.setAnimation(null);
} else {
marker.setAnimation(google.maps.Animation.BOUNCE);
}
}" title="" data-original-title="复制">
var marker;
function initMap() {
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 13,
center: {lat: 59.325, lng: 18.070}
});
marker = new google.maps.Marker({
map: map,
draggable: true, //marker 设为 可拖动
animation: google.maps.Animation.DROP, //动画属性设为DROP
position: {lat: 59.327, lng: 18.067}
});
marker.addListener('click', toggleBounce); //监听marker点击时执行togglerBounce方法切换动画属性
}
function toggleBounce() {
if (marker.getAnimation() !== null) {
marker.setAnimation(null);
} else {
marker.setAnimation(google.maps.Animation.BOUNCE);
}
}
查看示例 (marker-animations.html)。
标记的图标
在最基本的情况下,图标可以简单地表示一个要代替默认的 Google Maps 图钉图标的图像。要指定这样的图标,请将标记的 icon 属性设置为某个图像的 URL。Google Maps API 将自动调整图标大小。
var image = 'images/beachflag.png';
var beachMarker = new google.maps.Marker({
position: {lat: -33.890, lng: 151.274},
map: map,
icon: image //图标
});
}" title="" data-original-title="复制">
function initMap() {
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 4,
center: {lat: -33, lng: 151}
});
var image = 'images/beachflag.png';
var beachMarker = new google.maps.Marker({
position: {lat: -33.890, lng: 151.274},
map: map,
icon: image //图标
});
}
好了,谷歌添加标记的就整理这么多,想深入研究的小伙伴可以第一行的官网查看下。
然后要开始今天的重要内容 如何获取当前点击的坐标以及城市街道地址,写到下一篇。
谷歌地图 API 开发之添加标记(解析以及补充)的更多相关文章
- 谷歌地图 API 开发之获取坐标以及街道详情
自己的项目中有获取当前点击的坐标经纬度或者获取当前街道的信息的需求.估计这个对于新手来说,还是比较麻烦的,因为从官网上找这个也并不是很好找,要找好久的,运气好的可能会一下子找到. 献上自己写的测试案例 ...
- 谷歌地图 API 开发之信息窗口
信息窗口 简介 InfoWindow 在地图上方给定位置的弹出窗口中显示内容(通常为文本或图像).信息窗口具有一个内容区域和一个锥形柄.柄顶部与地图上的某指定位置相连. 通常,您会将信息窗口附加到标记 ...
- 谷歌地图api 开发 (转载)
https://www.cnblogs.com/520lin/p/5800024.html
- 基于MFC与第三方类CWebPage的百度地图API开发范例
在进行百度地图API开发之前你需要到http://developer.baidu.com/map申请密匙 密匙申请之后就可以进行百度地图API的开发了. 下面我们以在visual c++6.0里进行地 ...
- js基于谷歌地图API绘制可编辑圆形与多边形
之前的工作中需要在谷歌地图上绘制可编辑多边形区域,所以基于谷歌地图API封装了个html页面,通过调用js绘制多边形并返回各点的经纬度坐标:当然首先你要保证你的电脑可以打开谷歌地图... 新建一个ht ...
- 深入浅出百度地图API开发系列(1):前言
百度地图API目前在地图API领域越来越受到众多开发者的关注,许多应用都使用到了百度地图API服务,包括博主me,我自己使用做的是Javascript API,根据经验,我想整理出一份系列教程,如果能 ...
- 深入浅出百度地图API开发系列(2):创建地图
上一篇文章里,先介绍了一下百度地图API开发所涉及到的一些基础概念,包括投影,坐标系等基础概念,再有了这些基础后,我们可以开始开发自己的web地图了.先来个代码示例(建议大家都是用百度地图API大众版 ...
- 利用Dnspod api批量更新添加DNS解析【python脚本】 - 推酷
利用Dnspod api批量更新添加DNS解析[python脚本] - 推酷 undefined
- 百度地图API开发指南
简介什么是百度地图API? 百度地图API是一套由JavaScript语言编写的应用程序接口,它能够帮助您在网站中构建功能丰富.交互性强的地图应用.百度地图API包含了构建地图基本功能的各种接口,提供 ...
随机推荐
- 2017年软件工程第八次作业-互评Alpha版本
B.Thunder——爱阅app(测评人:方铭) 一.基于NABCD评论作品,及改进建议 每个小组评论其他小组Alpha发布的作品:1.根据(不限于)NABCD评论作品的选题:2.评论作品对选题的实现 ...
- Nginx 配置站点
1-进入 配置文件夹 cd /etc/nginx/cof.d 2-创建一个一站点名称命名的配置文件 vim kestrel-syslyracom.conf 3-在.conf 文件中输入 ...
- Haproxy + Rabbit 集群 简要介绍
# 两台主机都安装上rabbitMQ yum install -y rabbitmq-server # 两台主机都配置/etc/hosts文件 192.168.23.10 rabbitmq1 19 ...
- Windows下多线程编程(一)
前言 熟练掌握Windows下的多线程编程,能够让我们编写出更规范多线程代码,避免不要的异常.Windows下的多线程编程非常复杂,但是了解一些常用的特性,已经能够满足我们普通多线程对性能及其他要求. ...
- jquery mobiscroll 滑动、滚动
mobiscroll : 滑动选择 2.13.2版本免费,官网(mobiscroll.com)收费 先从官方下载2.13.2体验版下来,查看例子结合官方API学习( http://docs.mobis ...
- spring 整合 struts2 + Hibernate application配置文件(基于注解)
下面是 application.xml 文件. <?xml version="1.0" encoding="UTF-8"?> <beans x ...
- Linux 查看端口占用情况
转自:http://www.cnblogs.com/fabulousyoung/p/4071150.html 例子,查看80端口的占用情况: lsof -i:80 或者: netstat -apn ...
- 利用SSH secure Shell实现windows与linux之间传输文件
在windows下安装SSH secure Shell.默认安装后有两个快捷方式. linux下需要安装openssh-server utuntu默认安装了opens是-client,所以不需要安装, ...
- 第181天:HTML5——视频、音频
一.HTML5新增的video.source标签 <video width="320" height="240" controls="contr ...
- liunx vim常用操作命令
vim常用操作命令 vim abc // 打开该文件,或者新建文件 vim +3 abc // 打开文件并跳转到第三行 vim +/hello //打开文件并跳转到第一次出现hello的位置 vim ...