javascript+mapbar实现地图定位


Posted in Javascript onApril 09, 2010

本文地图使用的是图地图 
图吧地图在线API地址
http://union.mapbar.com/apidoc/
离线CHM格式 下载地址: 
http://union.mapbar.com/apidoc/chm/mapbarapi.rar

效果图:

javascript+mapbar实现地图定位 

Mapbar 地图 API 让您可以使用 JavaScript 将 Mapbar地图嵌入您自己的网页中。API 提供了许多方法与地图交互(正如http://www.mapbar.com/localsearch/index.html 网页上显示的),以及一系列向地图添加内容的服务,从而使您可以在自己的网站上创建稳定的地图应用程序。
公共测试密钥:

http://union.mapbar.com/apis/maps/free?f=mapi&v=31.2&k=aCW9cItqL7sqT7AxaB0zdHZoZSWmbBsuT7JhMHTsMeD6ZIl9NzFsZHT=@JBL979@Iu7lJJZWWq0IDu9xZMzMxq7I9AhH7LAAA6hqzZHZZLTbZZauxlDz7C7DD9ZCFGT=

如果您想试试 Mapbar 地图,省略申请密钥的步骤,可以使用公共测试密钥在本地(http://localhost)进行测试。
Internet Explorer 8.0 版本中存在兼容问题,需要在网页 <head> 标签间增加 <meta http-equiv="X-UA-Compatible" content="IE=EmulateIE7" /> 标签以保证地图折线功能正确执行。
这里只有前台部分源码
你需要在你的项目中ajax来实现定位持久化
代码如下
<!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> 
<title> 地图测试 </title> 
<script type = "text/javascript" src = "http://union.mapbar.com/apis/maps/free?f=mapi&v=31.2&k=aCW9cItqL7..."></script> 
<script type="text/javascript"> 
var maplet=null;//地图对象 
var marker=null;//标记对象 
var le=null;//缩放级别 
var myEventListener=null;//地图click事件句柄 
function initMap()//初始化函数 
{ //转帖请注明出处 http://Qbit.cnblogs.com 
le=10; //默认缩放级别 
maplet = new Maplet("mapbar"); 
//这里可以初始化地图坐标比如从数据库中读取 然后在页面上使用小脚本的形式 
//如: maplet.centerAndZoom(new MPoint(<%=维度%>, <%=经度%>),<%=缩放级别%>); 
maplet.centerAndZoom(new MPoint(116.38672, 39.90805), le);//初始化地图中心点坐标并设定缩放级别 
maplet.addControl(new MStandardControl()); 
} 
function setp() 
{ 
if (marker)//判定是否已经添加标记 
{ 
alert("已经添加过标记了"); 
return; 
} 
maplet.setMode("bookmark");//设定为添加标记模式 
maplet.setCursorIcon("tb1.gif"); //添加鼠标跟随标签 
myEventListener = MEvent.bind(maplet, "click", this, addp); //注册click事件句柄 
} 
//这里的参数要写全即使你不使用event 
function addp(event,point){ 
if(!marker){ 
marker = new MMarker( point, //坐标 
new MIcon("mark.gif", 24, 24),//标签ICO(图片,大小) 
new MInfoWindow("蔡瑞福庄河市", "史上最佳"),//标注对象 
new MLabel("蔡瑞福")//小标签 
); 
marker.bEditable=true; 
marker.dragAnimation=true; 
maplet.addOverlay(marker);//添加标注 
marker.setEditable(true); //设定标注编辑状态 
maplet.setMode("pan"); //设定地图为拖动(正常)状态 
le= maplet.getZoomLevel(); //获取当前缩放级别 
document.getElementById("findp").style.display="block"; 
document.getElementById("delp").style.display="block"; 
document.getElementById("savep").style.display="block"; 
MEvent.removeListener(myEventListener);//注销事件 
} 
} 
//查找标记 
function find(){ 
maplet.centerAndZoom(marker.pt, le);//定位标记 
} 
//移除所有标记 
function del(){ 
//移除已经设定的坐标 
maplet.clearOverlays(true); 
location.reload(); //在重新添加的时候有点bug 我这里是直接刷新页面 来重置 
/*document.getElementById("findp").style.display="none"; 
document.getElementById("delp").style.display="none"; 
document.getElementById("savep").style.display="none"; 
maplet=null; 
marker=null; 
myEventListener=null; 
initMap();*/ 
} 
//提取标记数据 
function savep() 
{ 
alert("当前坐标点\n经度:"+marker.pt.lon+"\n维度:"+marker.pt.lat+"\n缩放级别:"+le); 
} 
</script> 
</head> 
<body onload="initMap()"> 
<table width="501"> 
<tr><td><input type="button" value="添加标注" onclick="setp()"/></td> 
<td><input type="button" id="findp" value="查看标记" style="display:none;" onclick="find()"/></td> 
<td><input type="button" id="delp" value="删除标记" style="display:none;" onclick="del()"/></td> 
<td><input type="button" id="savep" value="保存" style="display:none;" onclick="savep()"/></td> 
</tr> 
<tr><td colspan="4"><div id="mapbar" style="width:500px;height:300px"></div> 
</td></tr> 
</table> 
</body> 
</html>

源码下载地址: http://xiazai.3water.com/201004/yuanma/mapbar.rar
Javascript 相关文章推荐
基于node.js的快速开发透明代理
Dec 25 Javascript
自动最大化窗口的Javascript代码
May 22 Javascript
jquery 删除字符串最后一个字符的方法解析
Feb 11 Javascript
分享纯手写漂亮的表单验证
Nov 19 Javascript
基于javascript html5实现多文件上传
Mar 03 Javascript
JavaScript中获取纯正的undefined的方法
Mar 06 Javascript
Easyui Treegrid改变默认图标的方法
Apr 29 Javascript
jQuery动态加载css文件实现方法
Jun 15 Javascript
JS中对Cookie的操作详解
Aug 05 Javascript
AngularJS的ng-click传参的方法
Jun 19 Javascript
浅谈Angular2 ng-content 指令在组件中嵌入内容
Aug 18 Javascript
vue使用自定义指令实现拖拽
Jan 29 Javascript
innerHTML 和 getElementsByName 在IE下面的bug 的解决
Apr 09 #Javascript
Javascript string 扩展库代码
Apr 09 #Javascript
JavaScript 设计模式之组合模式解析
Apr 09 #Javascript
跟着Jquery API学Jquery之一 选择器
Apr 07 #Javascript
基于JQuery的cookie插件
Apr 07 #Javascript
JQuery为textarea添加maxlength属性的代码
Apr 07 #Javascript
JavaScript和JQuery实用代码片段(一)
Apr 07 #Javascript
You might like
php_xmlhttp 乱码问题解决方法
2009/08/07 PHP
php压缩HTML函数轻松实现压缩html/js/Css及注意事项
2013/01/27 PHP
解析php session_set_save_handler 函数的用法(mysql)
2013/06/29 PHP
浅谈PDO的rowCount函数
2015/06/18 PHP
PHP简单实现合并2个数字键数组值的方法
2017/05/30 PHP
PHP PDOStatement::debugDumpParams讲解
2019/01/30 PHP
javascript Array.prototype.slice使用说明
2010/10/11 Javascript
jQuery动态添加的元素绑定事件处理函数代码
2011/08/02 Javascript
jquery操作select详解(取值,设置选中)
2014/02/07 Javascript
js实现按钮控制图片360度翻转特效的方法
2015/02/17 Javascript
jQuery延迟加载图片插件Lazy Load使用指南
2015/03/25 Javascript
Jquery ui datepicker设置日期范围,如只能隔3天【实现代码】
2016/05/04 Javascript
下一代Bootstrap的5个特点 超酷炫!
2016/06/17 Javascript
jQuery 检查某个元素在页面上是否存在实例代码
2016/10/27 Javascript
jQuery日程管理控件glDatePicker用法详解
2017/03/29 jQuery
详解webpack进阶之loader篇
2017/08/23 Javascript
使用vue + less 实现简单换肤功能的示例
2018/02/21 Javascript
ES6 如何改变JS内置行为的代理与反射
2019/02/11 Javascript
[03:42]2018完美盛典-《加冕》
2018/12/16 DOTA
python实现的jpg格式图片修复代码
2015/04/21 Python
Python反射的用法实例分析
2018/02/11 Python
python MNIST手写识别数据调用API的方法
2018/08/08 Python
python利用Tesseract识别验证码的方法示例
2019/01/21 Python
使用python模拟命令行终端的示例
2019/08/13 Python
python中用ctypes模拟点击的实例讲解
2020/11/26 Python
美国女性卫生用品公司:Thinx
2017/06/30 全球购物
马来西亚在线药房:RoyalePharma
2019/12/01 全球购物
学习党章思想汇报
2014/01/07 职场文书
弘扬民族精神演讲稿
2014/05/07 职场文书
小学少先队活动总结
2015/05/08 职场文书
城南旧事观后感
2015/06/11 职场文书
认识实习感想
2015/08/10 职场文书
学法用法心得体会(2016推荐篇)
2016/01/21 职场文书
创业项目(超低成本创业项目)
2019/08/16 职场文书
用JS写一个发布订阅模式
2021/11/07 Javascript
MongoDB误操作后使用oplog恢复数据
2022/04/11 MongoDB