支持标记拖动,拖动记录经纬度,可通过地址信息获取经纬度。
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="content-type" content="text/html; charset=gbk"/>
<title>Google Maps JavaScript API Example</title>
<script src="http://ditu.google.cn/maps?file=api&v=3&key=AIzaSyAeKuo5dKfiRmBnPuky9K-fuUEWyWjiYv8&sensor=true" type="text/javascript"></script>
<script type="text/javascript">
var $ = function(id){
return document.getElementById(id);
}
String.prototype.trim = function(){
return this.replace(/^\s+/g,"").replace(/\s+$/g,"");
}
var decode = function(){
var latLng = $("lat_lng").value.trim();
if (latLng.indexOf(',') == -1)
{
alert("经纬度格式错误");
return {
lat: 0,
lng: 0
}
}else{
var s = latLng.split(',');
return {
lat: s[0],
lng: s[1]
}
}
}
//创建request对象
var createXMLHttpRequest = function(){
var xmlHttp ;
try {
//使用Msxml的一个版本来创建
xmlHttp = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
xmlHttp = false;
}
try {
//使用它的另外一个对象来创建
xmlHttp = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e2) {
xmlHttp = false;
}
if (!xmlHttp && typeof XMLHttpRequest != 'undefined') {
//创建面向其它非微软浏览器的XMLHttpRequest对象
xmlHttp = new XMLHttpRequest();
}
return xmlHttp;
}
var xmlHttp ;
var handleStateChange = function(){
if(xmlHttp.readyState==4 && xmlHttp.status == 200){
var dd = xmlHttp.responseText;
var json = eval(dd);
}
}
var getLatLng = function(){
var address = $('uname').value;
var patrn= /['(' | '('][\w\W]*[')'| ')']/ ;
if(patrn.exec(address)){
address = address.replace(patrn,"");
}
//uri解码地址
address = encodeURI(address);
var url = "http://ditu.google.cn/maps/geo?output=json&oe=utf-8&q="+ address +"&key=AIzaSyAISC7Kveswljca_ezm9AGRbELDKlyYZuI&hl=zh-CN";
xmlHttp = createXMLHttpRequest();
xmlHttp.open("POST",url,true);
xmlHttp.onreadystatechange = function(){
if(xmlHttp.readyState==4 && xmlHttp.status == 200){
var dd = xmlHttp.responseText;
//var obj = eval('(' + dd + ')');
var obj =JSON.parse(dd);
var vlat = obj.Placemark[0].Point.coordinates[1] ;
var vlng = obj.Placemark[0].Point.coordinates[0] ;
var vlatlng = vlat + "," + vlng;
$('lat_lng').value = vlatlng;
mapShow();
}
};
xmlHttp.setRequestHeader("Content-Type","application/x-www-form-urlencoded");
xmlHttp.send();
}
var test = function(){
var map = new GMap2(document.getElementById("map"));
map.addControl(new GSmallMapControl());
map.addControl(new GMapTypeControl());
var latLng = decode();
// var center = new GLatLng(latLng.lat,latLng.lng );
var center = new GLatLng(latLng.lat,latLng.lng );
map.setCenter(center, 13);
var marker = new GMarker(center);
map.addOverlay(marker);
}
var mapShow = function() {
if (GBrowserIsCompatible()) {
var map = new GMap2($("map"));
map.addControl(new GSmallMapControl());
map.addControl(new GMapTypeControl());
var latLng = decode();
var center = new GLatLng(latLng.lat,latLng.lng);
map.setCenter(center, 13);
var marker = new GMarker(center, {draggable: true});
GEvent.addListener(marker, "dragend", function() {
$('lat_lng').value = "";
var custPoint = marker.getPoint();
$('lat_lng').value = custPoint.lat()+ "," + custPoint.lng();
marker.setImage("http://ditu.google.cn/mapfiles/marker.png");
});
map.addOverlay(marker);
}
}
</script>
</head>
<body >
<p>
商户名称:<input type="text" name="uname" id="uname" value="" size="40" /> <input type="button" name="btn_uname" value="查询" onclick="getLatLng()"/>
经纬度:<input type="text" name="lat_lng" id="lat_lng" value="" size="40" /> <input type="button" name="btn_lat_lng" value="查询" onclick="mapShow()" />
</p>
<div id="map" style="width: 800px; height: 500px"></div>
</body>
</html>
分享到:
相关推荐
Google Map API 使用示例
详尽的介绍了google map api 并简单的举了几个例子,能帮助你了解Google map 编程
google map api 实现自定义mark和其移动
谷歌地图Google Map API中文开发文档 V3
google map api 参考文档google map api 参考文档google map api 参考文档google map api 参考文档google map api 参考文档google map api 参考文档
费了半天才找到的源代码,很好用的,如果想学习google map api二次开发,他会提供很好帮助!
GoogleMap api 中文 GoogleMap api 中文 GoogleMap api 中文 GoogleMap api 中文 GoogleMap api 中文
写了一些GOOGLE MAP应用,大家分享
基于googlemap api 的gps终端和用户管理系统基于googlemap api 的gps终端和用户管理系统基于googlemap api 的gps终端和用户管理系统基于googlemap api 的gps终端和用户管理系统基于googlemap api 的gps终端和用户...
这个swc是googlemap对flash的api,他并不适用于flex,关于flex,有自己的swc哦
谷歌地图api v3 学习文档,资料查询, 基础学习。
包含了利用Google Map API进行二次开发的很多实例,为刚开始接触Google Map API进行二次开发的读者提供了一条捷径。
最新的Google Map Api 帮助文档 免费下载地址: http://www.hkmci.com
Android google map API例子
Google Map api V3 (3.9.12)的离线开发包
google map api 调用的实例,
使用google地图的反向地址解析功能,提供一个经纬度得到对应地址,或者给出模糊地址,得到经纬度,放在java后台代码中处理,这个使用的是Google的地理编码服务。一般而言数据量不大的情况使用是不限制的。按照Google...
优秀的Google Map API基本源码,值得学习!
基于Google map 的API,带搜索功能
很全的google map api v2版的开发实例,比较全,初学者的必备器