zoukankan      html  css  js  c++  java
  • 地图定位 图吧地图定位 附javascript源码每行都有注释

    本文地图使用的是图地图 

    图吧地图在线API地址

    http://union.mapbar.com/apidoc/

    离线CHM格式 下载地址: 

    http://union.mapbar.com/apidoc/chm/mapbarapi.rar


    效果图:

     


    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.3867239.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"2424),//标签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="500px;height:300px"></div>
    </td></tr>
    </table>
    </body>
    </html>

      源码下载地址:

    https://files.cnblogs.com/Qbit/mapbar.rar

     

  • 相关阅读:
    document.getElementById("mytxt").style.left=""style.left在IE的FF中注意
    asp.net 用户控件中 使用相对路径的解决方法 图片路径问题(用户控件、图片路径) ,ResolveUrl
    探索 Block (一) (手把手讲解Block 底层实现原理)
    iOS 多线程开发 (概念与API简介)
    iOS 性能小点
    iOS runtime (二)(runtime学习之AutoCoding源码分析)
    探索 NSRunLoop (二)(NSRunLoop 自己动手实现SimpleRunLoop)
    iOS NSNotificationCenter (自己实现一个通知中心XMCNotificationCenter)
    iOS runtime (三)(runtime学习之YYModel源码分析)
    iOS runtime(一)(runtime 分析理解)
  • 原文地址:https://www.cnblogs.com/Qbit/p/Mapbar.html
Copyright © 2011-2022 走看看