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 相关文章推荐
防止页面被iframe(兼容IE,Firefox火狐)
Jul 04 Javascript
谷歌浏览器不支持showModalDialog模态对话框的解决方法
Sep 22 Javascript
原生javascript实现Tab选项卡切换功能
Jan 12 Javascript
基于jquery实现导航菜单高亮显示(两种方法)
Aug 23 Javascript
深入浅析react native es6语法
Dec 09 Javascript
全面解析Bootstrap中tab(选项卡)的使用方法
Jun 06 Javascript
聊一聊Vue.js过渡效果
Sep 07 Javascript
Vue.js学习记录之在元素与template中使用v-if指令实例
Jun 27 Javascript
说说Vuex的getters属性的具体用法
Apr 15 Javascript
JS实现横向跑马灯效果代码
Apr 20 Javascript
微信小程序换肤功能实现代码(思路详解)
Aug 25 Javascript
javascript实现一款好看的秒表计时器
Sep 05 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
ThinkPHP3.1新特性之动态设置自动完成和自动验证示例
2014/06/19 PHP
php实现给一张图片加上水印效果
2016/01/02 PHP
在laravel5.2中实现点击用户头像更改头像的方法
2019/10/14 PHP
js加减乘除丢失精度问题解决方法
2014/05/16 Javascript
jQuery实现自动滚动到页面顶端的方法
2015/05/22 Javascript
javascript实现的闭包简单实例
2015/07/17 Javascript
js基于面向对象实现网页TAB选项卡菜单效果代码
2015/09/09 Javascript
jQuery遍历DOM节点操作之filter()方法详解
2016/04/14 Javascript
Bootstrap 折叠(Collapse)插件用法实例详解
2016/06/01 Javascript
jQuery操作cookie
2016/08/08 Javascript
完美的js div拖拽实例代码
2016/09/24 Javascript
javascript简单写的判断电话号码实例
2017/05/24 Javascript
jQuery简单实现根据日期计算星期几的方法
2019/01/09 jQuery
JavaScript闭包相关知识解析
2019/10/19 Javascript
layUI的验证码功能及校验实例
2019/10/25 Javascript
vue项目中使用eslint+prettier规范与检查代码的方法
2020/01/16 Javascript
小程序分享链接onShareAppMessage的具体用法
2020/05/22 Javascript
vue.js实现双击放大预览功能
2020/06/23 Javascript
python3.6 实现AES加密的示例(pyCryptodome)
2018/01/10 Python
在Python中分别打印列表中的每一个元素方法
2018/11/07 Python
Python脚本按照当前日期创建多级目录
2019/03/01 Python
Django自带日志 settings.py文件配置方法
2019/08/30 Python
Python.append()与Python.expand()用法详解
2019/12/18 Python
服务器端jupyter notebook映射到本地浏览器的操作
2020/04/14 Python
python 如何用urllib与服务端交互(发送和接收数据)
2021/03/04 Python
CSS3 创建网页动画实现弹跳球动效果
2018/10/30 HTML / CSS
iHerb中文官网:维生素、保健品和健康产品
2018/11/01 全球购物
综合办公室个人的自我评价
2013/12/22 职场文书
搞笑获奖感言
2014/01/30 职场文书
《蒲公英》教学反思
2014/02/28 职场文书
运动会演讲稿200字
2014/08/25 职场文书
爱国主题班会教案
2015/08/14 职场文书
详解分布式系统中如何用python实现Paxos
2021/05/18 Python
python 中的@运算符使用
2021/05/26 Python
详细聊聊vue中组件的props属性
2021/11/02 Vue.js
Python实现为PDF去除水印的示例代码
2022/04/03 Python