Mapbar API 简单使用

刚看了一篇帖子 http://www.javaeye.com/topic/566712
介绍关于地图API 正好近期做的也是地图,顺便拿出来分享一下
我调研的结果没有用Google了的地图,原因是因为速度问题,显示的时间比较长,再有功能没有必要用那么多
对于 地产 教育 商城 餐厅 等显示简单的功能足够了

Html代码 复制代码
  1. <html xmlns="http://www.w3.org/1999/xhtml">  
  2. <head>  
  3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>  
  4. <title>地图标记</title>  
  5. <script type="text/javascript" src="http://union.mapbar.com/apis/maps/free?f=mapi&v=31.2&k=aCW9cItqL7sqT7AxaB0zdHZoZSWmbBsuT7JhMHTsMeD6ZIl9NzFsZHT=@JBL979@Iu7lJJZWWq0IDu9xZMzMxq7I9AhH7LAAA6hqzZHZZLTbZZauxlDz7C7DD9ZCFGT="></script>  
  6. <script type="text/javascript">  
  7. function $$(id){return document.getElementById(id);}   
  8.   
  9. //静态变量   
  10. var cx=116.39087;   
  11. var cy=39.91978;   
  12. var cc="北京市";   
  13.   
  14. var marker = null;    
  15. var maplet = null;   
  16. var flag = false;   
  17.   
  18. function initMap(){   
  19.     maplet = new Maplet("mapbar");   
  20.     maplet.centerAndZoom(new MPoint(cx,cy),9);   
  21.     maplet.addControl(new MStandardControl());   
  22.     maplet.clickToCenter = false;   
  23.     document.getElementById("keyword").focus();   
  24. }   
  25.   
  26. window.onload=function(){   
  27.     $$("cccity").innerHTML=cc;   
  28.     $$("city").value=cc;   
  29.     document.title=cc;   
  30.     initMap();   
  31.     resizemap();   
  32.     window.onresize=function(){   
  33.         resizemap();   
  34.     }   
  35. }   
  36.   
  37.   
  38. function resizemap(){   
  39.     if(maplet){   
  40.         var xx=document.body.clientWidth;   
  41.         var yy=document.body.clientHeight-80;   
  42.         if(xx<800)xx=800;   
  43.         if(yy<300)yy=300;   
  44.         maplet.resize(xx,yy);   
  45.     }   
  46. }   
  47.   
  48. var myEventListener;   
  49. function add(){   
  50.     myEventListener = MEvent.addListener(maplet,"click",function(evt,point){   
  51.         if(flag) {maplet.clearOverlays();}   
  52.   
  53.         if(!point) alert("获取经纬度失败,请刷新页面后重新操作。");   
  54.         //alert(point.lon,point.lat);   
  55.         document.getElementById("x").value = point.lon;   
  56.         document.getElementById("y").value = point.lat;   
  57.   
  58.         marker = new MMarker(point,new MIcon("http://union.mapbar.com/apidoc/images/tb1.gif",32,32,18,32));    
  59.         maplet.addOverlay(marker);    
  60.         marker.setEditable(false);    
  61.         flag = true;   
  62.         dells();   
  63.     });   
  64. }   
  65.   
  66. function del(){   
  67.     maplet.clearOverlays();   
  68.     dells();   
  69.     document.getElementById("x").value='';   
  70.     document.getElementById("y").value='';   
  71. }   
  72.   
  73. function dells(){   
  74.     MEvent.removeListener(myEventListener);   
  75. }   
  76.   
  77. //设置中心点   
  78. function setCenter(x,y,z){   
  79.     maplet.centerAndZoom(new MPoint(x,y), z);   
  80. }   
  81.   
  82. //显示中心点   
  83. function getCenter(){   
  84.     var mPoint=maplet.getCenter();   
  85.     if(document.getElementById("center")){document.getElementById("center").value=mPoint.lon+","+mPoint.lat+','+maplet.getZoomLevel();}   
  86.         else alert("中心点坐标:("+mPoint.lon+","+mPoint.lat+")"+maplet.getZoomLevel());   
  87. }   
  88.   
  89. //查询mapbar   
  90. function search(){   
  91.     var city    = document.getElementById("city").value;   
  92.     var keyword = document.getElementById("keyword").value;   
  93.     if(keyword=="")keyword="中裕商务花园";   
  94.     var url = "http://www.mapbar.com/localsearch/index.jsp#ac=lc&keyword="+keyword+"&city="+city;   
  95.     var newWin = window.open(url,'newwindow');   
  96.     newWin.focus();   
  97. }   
  98.   
  99.   
  100. </script>  
  101. </head>  
  102. <body style="padding:0px;margin:0px;">  
  103. <div align=center >  
  104. <div style="float:left; margin-left:10px; margin-top:15px; margin-bottom:10px;">  
  105. <input type="button" value="添加" onclick="add()" style="padding:7px; ">  
  106. <input type="button" value="删除" onclick="del()" style="padding:7px; ">  
  107. </div>  
  108.   
  109. <div style="float:left; height:50px; margin-left:10px; margin-top:10px; margin-bottom:10px;">  
  110. <table>  
  111. <tr><td>经度X:<input id="x" type="text" id='x'/></td></tr>  
  112. <tr><td>纬度Y:<input id="y" type="text" id='y'/></td></tr>  
  113. </table>  
  114. </div>  
  115.   
  116. <div style="float:left; margin-top:20px;margin-left:10px;">  
  117. <span><a href='#' onclick='javascript:setCenter(cx,cy,8)' id="cccity"></a></span>  
  118. </div>  
  119.   
  120. <div style="float:left; margin-top:15px; margin-left:5px;">  
  121. <input id="center"><br/><input type=button value='显示中心点' onclick="getCenter()">  
  122. </div>  
  123.   
  124. <div style="float:left; height:50px; margin-left:5px; margin-top:10px; margin-bottom:10px;">  
  125. <table>  
  126. <form onsubmit="return false;">  
  127.   
  128. <tr><td>城市:<input id="city" value=""></td><td><font color="red" size="3">外部搜索</font></td></tr>  
  129. <tr><td>查询:<input id="keyword" ></td><td><input type=submit onsubmit="return false;" value='查询mapbar' onclick="search()"></td></tr>  
  130. </form>  
  131. </table>  
  132. </div>  
  133.   
  134. <div id="mapbar" style="width:382px;height:340px;float:left;"></div>  
  135. </body>  
  136. </html>  
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>地图标记</title>
<script type="text/javascript" src="http://union.mapbar.com/apis/maps/free?f=mapi&v=31.2&k=aCW9cItqL7sqT7AxaB0zdHZoZSWmbBsuT7JhMHTsMeD6ZIl9NzFsZHT=@JBL979@Iu7lJJZWWq0IDu9xZMzMxq7I9AhH7LAAA6hqzZHZZLTbZZauxlDz7C7DD9ZCFGT="></script>
<script type="text/javascript">
function $$(id){return document.getElementById(id);}

//静态变量
var cx=116.39087;
var cy=39.91978;
var cc="北京市";

var marker = null; 
var maplet = null;
var flag = false;

function initMap(){
	maplet = new Maplet("mapbar");
	maplet.centerAndZoom(new MPoint(cx,cy),9);
	maplet.addControl(new MStandardControl());
	maplet.clickToCenter = false;
	document.getElementById("keyword").focus();
}

window.οnlοad=function(){
	$$("cccity").innerHTML=cc;
	$$("city").value=cc;
	document.title=cc;
	initMap();
	resizemap();
	window.οnresize=function(){
		resizemap();
	}
}


function resizemap(){
	if(maplet){
		var xx=document.body.clientWidth;
		var yy=document.body.clientHeight-80;
		if(xx<800)xx=800;
		if(yy<300)yy=300;
		maplet.resize(xx,yy);
	}
}

var myEventListener;
function add(){
	myEventListener = MEvent.addListener(maplet,"click",function(evt,point){
		if(flag) {maplet.clearOverlays();}

		if(!point) alert("获取经纬度失败,请刷新页面后重新操作。");
		//alert(point.lon,point.lat);
		document.getElementById("x").value = point.lon;
		document.getElementById("y").value = point.lat;

		marker = new MMarker(point,new MIcon("http://union.mapbar.com/apidoc/images/tb1.gif",32,32,18,32)); 
		maplet.addOverlay(marker); 
		marker.setEditable(false); 
		flag = true;
		dells();
	});
}

function del(){
	maplet.clearOverlays();
	dells();
	document.getElementById("x").value='';
	document.getElementById("y").value='';
}

function dells(){
	MEvent.removeListener(myEventListener);
}

//设置中心点
function setCenter(x,y,z){
	maplet.centerAndZoom(new MPoint(x,y), z);
}

//显示中心点
function getCenter(){
	var mPoint=maplet.getCenter();
	if(document.getElementById("center")){document.getElementById("center").value=mPoint.lon+","+mPoint.lat+','+maplet.getZoomLevel();}
		else alert("中心点坐标:("+mPoint.lon+","+mPoint.lat+")"+maplet.getZoomLevel());
}

//查询mapbar
function search(){
	var city    = document.getElementById("city").value;
	var keyword = document.getElementById("keyword").value;
	if(keyword=="")keyword="中裕商务花园";
	var url = "http://www.mapbar.com/localsearch/index.jsp#ac=lc&keyword="+keyword+"&city="+city;
	var newWin = window.open(url,'newwindow');
	newWin.focus();
}


</script>
</head>
<body style="padding:0px;margin:0px;">
<div align=center >
<div style="float:left; margin-left:10px; margin-top:15px; margin-bottom:10px;">
<input type="button" value="添加" οnclick="add()" style="padding:7px; ">
<input type="button" value="删除" οnclick="del()" style="padding:7px; ">
</div>

<div style="float:left; height:50px; margin-left:10px; margin-top:10px; margin-bottom:10px;">
<table>
<tr><td>经度X:<input id="x" type="text" id='x'/></td></tr>
<tr><td>纬度Y:<input id="y" type="text" id='y'/></td></tr>
</table>
</div>

<div style="float:left; margin-top:20px;margin-left:10px;">
<span><a href='#' οnclick='javascript:setCenter(cx,cy,8)' id="cccity"></a></span>
</div>

<div style="float:left; margin-top:15px; margin-left:5px;">
<input id="center"><br/><input type=button value='显示中心点' οnclick="getCenter()">
</div>

<div style="float:left; height:50px; margin-left:5px; margin-top:10px; margin-bottom:10px;">
<table>
<form οnsubmit="return false;">

<tr><td>城市:<input id="city" value=""></td><td><font color="red" size="3">外部搜索</font></td></tr>
<tr><td>查询:<input id="keyword" ></td><td><input type=submit οnsubmit="return false;" value='查询mapbar' οnclick="search()"></td></tr>
</form>
</table>
</div>

<div id="mapbar" style="width:382px;height:340px;float:left;"></div>
</body>
</html>



这个页面主要是用来标记点坐标,点“添加”-->然后点击地图就会返回点击位置的坐标
多余的功能是显示中心点坐标,可以在获取了新坐标后改变最上面的cx cy cc 就可以用于另一个城市了
中间的链接可以快速回到北京
因为使用的是Mapbarapi,地点查询功能属于付费项目,暂时用不到,就直接使用外部链接跳转的方式用来查找详细坐标


  • 大小: 344.2 KB
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值