百度地图+Marker纠偏

原创 2015年07月07日 19:05:29

百度地图+Marker纠偏


<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>百度地图+Marker纠偏</title>
<!--引用百度地图API-->
<style type="text/css">
html,body {
	margin: 0;
	padding: 0;
}

.iw_poi_title {
	color: #CC5522;
	font-size: 14px;
	font-weight: bold;
	overflow: hidden;
	padding-right: 13px;
	white-space: nowrap
}

.iw_poi_content {
	font: 12px arial, sans-serif;
	overflow: visible;
	padding-top: 4px;
	white-space: -moz-pre-wrap;
	word-wrap: break-word
}
</style>
<script type="text/javascript" src="http://api.map.baidu.com/api?key=&v=1.1&services=true"></script>
<script type="text/javascript" src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
</head>

<body>
	<!--百度地图容器-->
	<div style="width: 697px; height: 550px; border: #ccc solid 1px;" id="dituContent"></div>
</body>
<script type="text/javascript">
	//创建和初始化地图函数:
	function initMap() {
		createMap();//创建地图
		setMapEvent();//设置地图事件
		addMapControl();//向地图添加控件
		addMarker();//向地图中添加marker
	}

	//创建地图函数:
	function createMap() {
		var map = new BMap.Map("dituContent");//在百度地图容器中创建一个地图
		var point = new BMap.Point(120.791737, 41.488709);//定义一个中心点坐标
		map.centerAndZoom(point, 7);//设定地图的中心点和坐标并将地图显示在地图容器中
		window.map = map;//将map变量存储在全局
	}

	//地图事件设置函数:
	function setMapEvent() {
		map.disableDragging();//禁用地图拖拽事件
		map.disableScrollWheelZoom();//禁用地图滚轮放大缩小,默认禁用(可不写)
		map.disableDoubleClickZoom();//禁用鼠标双击放大
		map.disableKeyboard();//禁用键盘上下左右键移动地图,默认禁用(可不写)
	}

	//地图控件添加函数:
	function addMapControl() {
	}

	//标注点数组
	var markerArr = {
		title : "标记",
		content : "备注",
		point : "116.606352|40.513056",
		isOpen : 0,
		icon : {
			w : 21,
			h : 21,
			l : 0,
			t : 0,
			x : 6,
			lb : 5
		}
	};
	//创建marker
	function addMarker() {
		var json = markerArr;
		var p0 = json.point.split("|")[0];
		var p1 = json.point.split("|")[1];

		//GPS数据偏移校正
		var transportApiUrl = "http://api.zdoz.net/transgpsbd.aspx?lat=" + p1
				+ "&lng=" + p0;

		$.ajax({
			url : transportApiUrl,
			type : 'GET',
			dataType : 'JSONP',
			success : function(data) {
				if (data) {

					var point = new BMap.Point(data.Lng, data.Lat);
					var iconImg = createIcon(json.icon);
					var marker = new BMap.Marker(point, {
						icon : iconImg
					});
					var iw = createInfoWindow();
					var label = new BMap.Label(json.title, {
						"offset" : new BMap.Size(json.icon.lb - json.icon.x
								+ 10, -20)
					});
					marker.setLabel(label);
					map.addOverlay(marker);
					label.setStyle({
						borderColor : "#808080",
						color : "#333",
						cursor : "pointer"
					});

					(function() {
						var _iw = createInfoWindow();
						var _marker = marker;
						_marker.addEventListener("click", function() {
							this.openInfoWindow(_iw);
						});
						_iw.addEventListener("open", function() {
							_marker.getLabel().hide();
						})
						_iw.addEventListener("close", function() {
							_marker.getLabel().show();
						})
						label.addEventListener("click", function() {
							_marker.openInfoWindow(_iw);
						})
						if (!!json.isOpen) {
							label.hide();
							_marker.openInfoWindow(_iw);
						}
					})()

				}
			}
		});

	}
	//创建InfoWindow
	function createInfoWindow() {
		var json = markerArr;
		var iw = new BMap.InfoWindow(
				"<b class='iw_poi_title' title='" + json.title + "'>"
						+ json.title + "</b><div class='iw_poi_content'>"
						+ json.content + "</div>");
		return iw;
	}
	//创建一个Icon
	function createIcon(json) {
		var icon = new BMap.Icon(
				"http://app.baidu.com/map/images/us_mk_icon.png",
				new BMap.Size(json.w, json.h), {
					imageOffset : new BMap.Size(-json.l, -json.t),
					infoWindowOffset : new BMap.Size(json.lb + 5, 1),
					offset : new BMap.Size(json.x, json.h)
				})
		return icon;
	}

	initMap();//创建和初始化地图
</script>
</html>




巧妙解决百度地图加偏纠偏问题

转 http://blog.csdn.net/gatr/article/details/9569189 丽水市汽车运输集团股份有限公司信息中心苟安廷   当我们兴匆匆地把GPS设备传来的...
  • huanglei0809
  • huanglei0809
  • 2014年06月16日 16:25
  • 1624

百度地图位置纠偏

这里先分析一下我所要实现的功能,如果只获取当前的周边地理信息,真的需要这么麻烦的纠偏吗,其实这个答案在网络上真没有找到相关资料,不过同事瑞勤大牛却提出另一种获知当前经纬度的方法,经过测试,的确效果大不...
  • cuichengjie
  • cuichengjie
  • 2014年12月11日 10:30
  • 1251

百度地图纠偏接口

国内的各种在线地图都根据国家测绘局标准统一对经纬度作了纠偏处理,而百度地图在这个基础上用自己的算法做了二次纠偏。 百度地图纠偏接口如下: http://api.map.baidu.com/...
  • wu_jing_sheng0
  • wu_jing_sheng0
  • 2012年12月06日 14:46
  • 9803

构建自己的百度地图坐标纠偏数据库

提供创建百度地图纠偏库创建的方法以及中国大陆完整纠偏库
  • gatr
  • gatr
  • 2014年03月19日 11:35
  • 12702

百度地图通过百度接口和自建数据库实现离线纠偏

  • 2015年11月17日 09:45
  • 52KB
  • 下载

百度地图纠偏加偏工具

  • 2013年07月02日 23:45
  • 3.33MB
  • 下载

关于百度地图的坐标纠偏

众所周知,国内的各种在线地图都根据国家测绘局标准统一对经纬度作了纠偏处理,而百度地图在这个基础上用自己的算法做了二次纠偏。 百度地图纠偏接口如下: http://api.map.baidu.com...
  • zhzhi2008
  • zhzhi2008
  • 2012年07月17日 00:08
  • 6897

提供一个谷歌(腾讯)、百度地图纠偏数据库

免费提供百度、谷歌、腾讯地图纠偏本地数据库
  • gatr
  • gatr
  • 2014年05月26日 17:16
  • 11617

百度地图加偏纠偏解决方案源代码

  • 2013年07月28日 20:03
  • 52KB
  • 下载

巧妙解决百度地图加偏纠偏问题

百度地图纠偏是大家都头疼的问题,目前网上的方案都有较大缺陷,本文综合网上的方法,寻求了一个相对完美的方案...
  • gatr
  • gatr
  • 2013年07月28日 19:59
  • 35622
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:百度地图+Marker纠偏
举报原因:
原因补充:

(最多只允许输入30个字)