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 相关文章推荐
用cookies实现的可记忆的样式切换效果代码下载
Dec 24 Javascript
背景图跟随鼠标移动的Mootools插件实现代码
Dec 12 Javascript
JS的千分位算法实现思路
Jul 31 Javascript
jquery遍历筛选数组的几种方法和遍历解析json对象
Dec 13 Javascript
JQuery实现表格动态增加行并对新行添加事件
Jul 30 Javascript
jQuery插件实现可输入和自动匹配的下拉框
Oct 24 Javascript
Vue.js之slot深度复制详解
Mar 10 Javascript
jQuery实现键盘回车搜索功能
Jul 25 jQuery
用vue的双向绑定简单实现一个todo-list的示例代码
Aug 03 Javascript
浅谈Vue SSR 的 Cookies 问题
Nov 20 Javascript
Vue iview-admin框架二级菜单改为三级菜单的方法
Jul 03 Javascript
vue 监听窗口变化对页面部分元素重新渲染操作
Jul 28 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中模拟POST传递数据的两种方法分享
2011/09/16 PHP
Yii2创建多界面主题(Theme)的方法
2016/10/08 PHP
thinkphp5 模型实例化获得数据对象的教程
2019/10/18 PHP
JavaScript 中的事件教程
2007/04/05 Javascript
jQuery-Tools-overlay 使用介绍
2012/07/14 Javascript
setInterval计时器不准的问题解决方法
2014/05/08 Javascript
使用js画图之正弦曲线
2015/01/12 Javascript
javascript使用shift+click实现选择和反选checkbox的方法
2015/05/04 Javascript
JavaScript继承学习笔记【新手必看】
2016/05/10 Javascript
手机端图片缩放旋转全屏查看PhotoSwipe.js插件实现
2016/08/25 Javascript
利用BootStrap弹出二级对话框的简单实现方法
2016/09/21 Javascript
如何使用headjs来管理和异步加载js
2016/11/29 Javascript
bootstrap学习使用(导航条、下拉菜单、轮播、栅格布局等)
2016/12/01 Javascript
详解vue中移动端自适应方案
2019/05/05 Javascript
微信小程序实现带放大效果的轮播图
2020/05/26 Javascript
jQuery实现倒计时功能完整示例
2020/06/01 jQuery
Python发送email的3种方法
2015/04/28 Python
Python基本语法经典教程
2016/03/11 Python
Python中getattr函数和hasattr函数作用详解
2016/06/14 Python
简单掌握Python的Collections模块中counter结构的用法
2016/07/07 Python
Python实现的用户登录系统功能示例
2018/02/05 Python
Django使用AJAX调用自己写的API接口的方法
2019/03/06 Python
windows下安装Python虚拟环境virtualenvwrapper-win
2019/06/14 Python
利用python进行文件操作
2020/12/04 Python
python 如何上传包到pypi
2020/12/24 Python
2019史上最全Database工程师题库
2015/12/06 面试题
创立科技Java面试题
2015/11/29 面试题
医学检验专业个人求职信范文
2013/12/04 职场文书
药剂专业学生求职信范文
2013/12/28 职场文书
党员思想汇报材料
2014/12/19 职场文书
运动会开幕词
2015/01/28 职场文书
公司表扬稿范文
2015/05/05 职场文书
红歌会主持词
2015/07/02 职场文书
人民币使用说明书
2019/04/17 职场文书
浅析CSS在DevTools 中架构演变
2021/10/05 HTML / CSS
MySQL批量更新不同表中的数据
2022/05/11 MySQL