`
happysoul
  • 浏览: 403510 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

Google Map API V3 (二) 点击标记一个点

阅读更多
在上一版本上增加了标记新点的功能,初始化显示一个点,通过修改在地图上增加一个单词点击监听事件,并根据用户的点击标记新的点,隐藏原有显示,并记录下当前点击坐标位置
后面就是对于标记点的保存了
恢复可以显示初始化时候标记的点信息及弹出信息框(我没有改动上面的Y和X,初始值在$G.y和$G.x中保存)

PS:google区别于人们的原有思想,即google的地图对于 x y 的定义是y轴在前,x轴在后(y:南北纬 x:东西经)

<!DOCTYPE html>
<html>
<head>
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
<meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
<title>Google 地图 JavaScript API 示例: 简单的地图</title>	
<style>
html,body{height:100%;margin:0;padding:0;}
#map_canvas{height:87%;}
@media print{
	html,body{height:auto;}
	#map_canvas{height:100%;}
}
</style>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false&language=zh-CN"></script>
<script type="text/javascript">
// map.js  start
var $G,$O,$M,$L,$I;
(function(undefined){
O = function (id) {
	return "string" == typeof id ? document.getElementById(id):id;
};
MP = {
	y:39.9,
	x:116.4,
	point:function(y,x){
		return new google.maps.LatLng(y,x);
	},
	getCanvas:function(id){
		var mapid = id?id:'map_canvas';
		return document.getElementById(mapid);
	},
	options:function(center,z){
		return {
			zoom: z?z:14,
			center: center?center:this.getCenter(),
			navigationControl: true,
			scaleControl: true,
			streetViewControl: true,
			mapTypeId: google.maps.MapTypeId.ROADMAP
		}
	},
}

M = {
	mark:function(map,latLng,title){
		if(title)
		return new google.maps.Marker({
			icon: this.icon,
			position: latLng,
			map: map,
			title:title
		});
		else 
		return new google.maps.Marker({
			//icon: this.icon,
			position: latLng,
			map: map
		});
	}
}

I = {
	infos:[],
	add:function(info,latLng,w,h){
		if(w&&h)
		return new google.maps.InfoWindow({
			content: info,
			size: new google.maps.Size(w,h),
			position: latLng
		});
		else if(latLng)
		return new google.maps.InfoWindow({
			content: info,
			position: latLng
		});
		else
		return new google.maps.InfoWindow({
			content: info
		});
	}
}

//event 事件
L = {
	listen:null,
	add:function(dom,event,fn){
		return google.maps.event.addDomListener(dom, event, fn);
	},
	addOnce:function(dom, event, fn){
		return google.maps.event.addListenerOnce(dom, event, fn)
	}
}

$G = MP;
$O = O;
$M = M;
$L = L;
$I = I;
})();
// map.js  end

</script>
<script type="text/javascript">
$G.y=39.9126328872148;
$G.x=116.44053633792112;
var z = 15;
var mark;
var tempmark;
var inf = "222";
var point = $G.point($G.y,$G.x);							//初始中心点
var info = $I.add(inf,point);
function initialize(){
	map = new google.maps.Map($G.getCanvas("map_canvas"), $G.options(point,z));		//初始化地图
	mark = $M.mark(map,point);
	info.open(map);
	$L.add(mark,"click",function(){info.open(map)});
}
function editmap(){
	$L.addOnce(map,"click",function(event){
		if(tempmark)tempmark.setMap(null);
		mark.setMap(null);
		info.setMap(null);
		$O("y").value=event.latLng.lat();
		$O("x").value=event.latLng.lng();
		tempmark = $M.mark(map,event.latLng);
	});
}
function cancelmap(){
	if(tempmark)tempmark.setMap(null);
	map.panTo(point);
	mark.setMap(map);
	info.setMap(map);
}
</script>   
</head>   
<body onload="initialize()">
<div style="50px;margin-left:300px;padding-top:15px;">
	<button onclick="editmap()">修改</button><button onclick="cancelmap()">恢复</button>Y:<input type="text" id="y">X:<input type="text" id="x">
</div>
<div id="map_canvas"></div>
</body>
<script>
</script>
</html>



另外鼠标右键点击地图并在点击位置显示菜单的功能基本实现,先上图

原理是监听event事件的时候可以获得 map_canvas 中鼠标的 position:relative 所对应的浏览器x,y点信息。然后动态改变地图中弹出框所在的坐标位置
  • 大小: 134.1 KB
0
0
分享到:
评论
2 楼 happysoul 2015-09-14  
白码非马 写道
有离线的写法么?

别想了~ 谷歌国内都打不开了你还关注~ 换百度用吧~
1 楼 白码非马 2015-09-07  
有离线的写法么?

相关推荐

    谷歌地图Google Map API V3中文开发文档

    Marker 是谷歌地图 Google Map API V3 中的一个重要组件,用于在地图上标记一个特定的位置。开发者可以使用 Marker 对象来创建一个新的标记,该对象提供了多种方法和属性,以便开发者可以自定义标记的样式和行为。 ...

    google map api v3源码

    由于这个压缩包名为"WebMap",里面可能包含了一个简单的web应用,展示如何使用谷歌地图API V3来创建一个网页地图。开发者可以通过分析和学习这个源码,了解上述知识点的实际应用,并进一步扩展自己的地图应用开发...

    谷歌MAP_V3中文详解以及一个简单例子

    本教程将对谷歌地图API V3进行深入的中文解析,并提供一个简单的示例来帮助理解其基本用法。 首先,我们要了解如何引入谷歌地图API。在HTML文件中,我们需要在`&lt;head&gt;`标签内添加一个`&lt;script&gt;`标签,指定API的URL...

    Google Map api V3 (3.9.12)的离线开发包

    Google Map API V3(3.9.12)是谷歌提供的一个用于在网页上嵌入交互式地图的服务,它是Google Maps JavaScript API的第三个主要版本。这个离线开发包允许开发者在没有网络连接的情况下进行地图应用的开发和测试,这...

    谷歌地图API-google map api v3

    ### 谷歌地图API V3 - 详细知识点解析 #### 概述 谷歌地图API V3(Google Maps API V3)是谷歌提供的一套强大的工具和服务集合,旨在帮助开发者在网页上集成交互式地图。它支持多种功能,如自定义地图样式、添加...

    经典教程:JavaScript调用Google Map API V3

    API V3是Google Maps API的一个较新版本,提供了更高效的性能和更多的功能。 2. **内容** - **初始化和显示地图**:首先,需要在HTML头部引入API的JavaScript库,然后在页面中设置一个用于展示地图的`&lt;div&gt;`元素。...

    google map api v3 ExtDraggableObject

    在API中,`ExtDraggableObject`是一个自定义扩展类,它允许用户将地图上的对象(如标记、覆盖物等)进行拖放操作,极大地增强了用户与地图交互的体验。在本文中,我们将深入探讨`ExtDraggableObject`类及其在谷歌...

    google Map api v3学习例子

    在本教程中,我们将深入探讨"Google Maps API V3",这是一个强大的工具,允许开发者在网页上集成交互式地图功能。Google Maps API V3是该服务的最新版本,具有更小的体积、更快的加载速度以及更丰富的功能。我们将...

    Google Maps API V3 中文参考文档(JavaScript)

    事件是 Google Maps API V3 中的一种机制,用于监听地图上的事件,如点击、拖拽、缩放等。开发者可以使用 MapsEventListener 对象来监听地图上的事件。 Google Maps API V3 提供了丰富的功能和灵活的配置选项,帮助...

    Google Map Api

    最新版的Google Map API是V3,它是一个基于JavaScript的API,具有高度可定制性和灵活性。 在Google Map API V3中,开发者可以实现以下主要功能: 1. **地图嵌入**:通过简单的HTML和JavaScript代码,可以在网页上...

    Google Map V3 API

    **Google Map V3 API**是谷歌提供的一种用于在网页中集成地图功能的接口,它允许开发者利用JavaScript语言创建交互式的地图应用。这个API是Google Maps API的第三个主要版本,提供了更多的功能、更好的性能以及更...

    Google_Maps_API_V3.rar_Google Maps api v3_谷歌地图

    Google Maps API V3 是谷歌为开发者提供的一个强大工具,用于在网站或应用程序中集成交互式地图功能。这个API允许开发人员自定义地图显示的内容、样式以及交互方式,从而构建出各种基于地理位置的应用。在Google ...

    GoogleMap V3 中文 教程

    Google Map V3是Google Maps API的一个重要版本,主要针对Web开发,提供了一整套用于在网页中集成地图、定位、路线规划等功能的工具。这个中文教程可以帮助开发者理解和运用V3版本的API,即便在无法访问互联网的情况...

    googleMap V3 中文API

    总的来说,谷歌地图JavaScript API V3是一个强大而灵活的工具,它提供了丰富的功能和自定义选项,让开发者能够构建出复杂的地图应用。中文手册将帮助你理解和运用这些功能,解决在开发过程中遇到的问题。

    Goole map api js v3中文版

    总之,Google Maps JavaScript API V3 提供了一个强大且灵活的平台,让开发者能够轻松地在网页上构建各种地图应用。通过理解并掌握这些基础知识,你就可以开始创建自己的交互式地图了。无论是简单的展示还是复杂的...

    Google Maps API V3 (开发必备)

    Google Maps API V3 是一个强大的工具,允许开发者将交互式的谷歌地图嵌入到网页应用中。它提供了丰富的功能,包括自定义地图样式、添加标记、路线规划等。本篇文章主要聚焦于 `google.maps.Map` 类的核心特性和用法...

    谷歌MAP API_V3.pdf

    Google Maps JavaScript API V3 是一个强大的工具包,允许开发者在网页上嵌入交互式地图。此版本相比之前的版本提供了更多的功能和更好的性能。通过API,用户能够自定义地图样式、添加标记、绘制路线以及实现其他...

    google api v3 实例

    这通常通过创建一个新的`google.maps.Map`对象完成,需要指定一个HTML元素作为地图的容器,并设置地图的中心点、缩放级别等参数。 2. **地理编码服务**:Google Maps V3提供了地理编码API,可以将人类可读的地址...

    Google Map v3 官方实例

    在IT行业中,Google Maps API v3 是一个广泛使用的工具,用于在网页上集成地图功能。这个官方实例集合是由用户手工整理的,对于开发者来说是一份宝贵的资源,可以帮助他们理解和掌握如何利用Google Maps API v3来...

    Google Maps JavaScript API V3 详细教程

    《Google Maps JavaScript API V3 详细教程》 Google Maps JavaScript API V3 是一款强大的工具,允许...无论你是想创建一个本地商家查找系统,还是开发一个导航应用,Google Maps API V3都能提供你需要的强大工具。

Global site tag (gtag.js) - Google Analytics