今天又看了下官网,发现官网上有地图标记的详细说明。当时居然眼瞎看不见,还琢磨了好久...#$%^&,一定是项目太急,没看到(^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,这将移除这些标记的所有引用。

查看示例 (marker-remove.html)

也可以参考上一篇文章,谷歌地图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 //图标

});

}

查看示例 (icon-simple.html)

好了,谷歌添加标记的就整理这么多,想深入研究的小伙伴可以第一行的官网查看下。
然后要开始今天的重要内容 如何获取当前点击的坐标以及城市街道地址,写到下一篇。

谷歌地图 API 开发之添加标记(解析以及补充)的更多相关文章

  1. 谷歌地图 API 开发之获取坐标以及街道详情

    自己的项目中有获取当前点击的坐标经纬度或者获取当前街道的信息的需求.估计这个对于新手来说,还是比较麻烦的,因为从官网上找这个也并不是很好找,要找好久的,运气好的可能会一下子找到. 献上自己写的测试案例 ...

  2. 谷歌地图 API 开发之信息窗口

    信息窗口 简介 InfoWindow 在地图上方给定位置的弹出窗口中显示内容(通常为文本或图像).信息窗口具有一个内容区域和一个锥形柄.柄顶部与地图上的某指定位置相连. 通常,您会将信息窗口附加到标记 ...

  3. 谷歌地图api 开发 (转载)

    https://www.cnblogs.com/520lin/p/5800024.html

  4. 基于MFC与第三方类CWebPage的百度地图API开发范例

    在进行百度地图API开发之前你需要到http://developer.baidu.com/map申请密匙 密匙申请之后就可以进行百度地图API的开发了. 下面我们以在visual c++6.0里进行地 ...

  5. js基于谷歌地图API绘制可编辑圆形与多边形

    之前的工作中需要在谷歌地图上绘制可编辑多边形区域,所以基于谷歌地图API封装了个html页面,通过调用js绘制多边形并返回各点的经纬度坐标:当然首先你要保证你的电脑可以打开谷歌地图... 新建一个ht ...

  6. 深入浅出百度地图API开发系列(1):前言

    百度地图API目前在地图API领域越来越受到众多开发者的关注,许多应用都使用到了百度地图API服务,包括博主me,我自己使用做的是Javascript API,根据经验,我想整理出一份系列教程,如果能 ...

  7. 深入浅出百度地图API开发系列(2):创建地图

    上一篇文章里,先介绍了一下百度地图API开发所涉及到的一些基础概念,包括投影,坐标系等基础概念,再有了这些基础后,我们可以开始开发自己的web地图了.先来个代码示例(建议大家都是用百度地图API大众版 ...

  8. 利用Dnspod api批量更新添加DNS解析【python脚本】 - 推酷

    利用Dnspod api批量更新添加DNS解析[python脚本] - 推酷 undefined

  9. 百度地图API开发指南

    简介什么是百度地图API? 百度地图API是一套由JavaScript语言编写的应用程序接口,它能够帮助您在网站中构建功能丰富.交互性强的地图应用.百度地图API包含了构建地图基本功能的各种接口,提供 ...

随机推荐

  1. Python:字符串中引用外部变量的3种方法

    方法一: username=input('username:') age=input('age:') job=input('job:') salary=input('salary') info1='' ...

  2. Alpha 冲刺9

    队名:日不落战队 安琪(队长) 今天完成的任务 协助开发手写涂鸦demo. okhttp学习第三弹. 明天的计划 协助开发语音存储demo. 还剩下的任务 个人信息数据get. 遇到的困难 困难:整理 ...

  3. spring-test与junit

    1.添加依赖 spring-test junit spring-context(自动添加依赖其他所需的spring依赖包) 2.在class前添加以下注解,用于配置xml文件的位置 @RunWith( ...

  4. 在Eclipse中开发WEB项目

    本文的演示是从本地文件创建dynamic web project,从svn检出的同时创建dynamic web project于此类似.我们推荐使用解压版的tomcat6.x版本,来作为服务器.可以到 ...

  5. dbgrid多选日记

    procedure TForm1.DBGrid1KeyPress(Sender: TObject; var Key: Char); begin then begin DBGrid1.DataSourc ...

  6. C++手动开O2优化

    O2优化能使程序的编译效率大大提升. 从而减少程序的运行时间,达到优化的效果. C++程序中的O2开关如下所示: #pragma GCC optimize(2) 同理O1.O3优化只需修改括号中的数即 ...

  7. Guardian of Decency UVALive - 3415(最大独立集板题)

    老师在选择一些学生做活动时,为避免学生发生暧昧关系,就提出了四个要求.在他眼中,只要任意两个人符合这四个要求之一,就不可能发生暧昧.现在给出n个学生关于这四个要求的信息,求老师可以挑选出的最大学生数量 ...

  8. oracle job定时执行存储过程

     JOB定时跑插入语句1.建插入数据的存储过程create or replace procedure report_web asV_START_DATE DATE;V_END_DATE  DATE;b ...

  9. 【转】Castle.ActiveRecord的嵌套事务处理

    嵌套的情况下,怎么处理Castle.ActiveRecord的事务? 今天试了一下,原来还是很简单的,只需要使用Castle.ActiveRecord.TransactionMode.Inherits ...

  10. BZOJ1069 [SCOI2007]最大土地面积 【凸包 + 旋转卡壳】

    题目链接 BZOJ1069 题解 首先四个点一定在凸包上 我们枚举对角线,剩下两个点分别是两侧最远的点 可以三分,复杂度\(O(n^2logn)\) 可以借鉴旋转卡壳的思想,那两个点随着对角线的一定单 ...