精华内容
下载资源
问答
  • 怎样制作基础的地图

    2016-12-21 08:56:00
    现在在许多的app都加入了百度地图的功能,现在简单阐述以下怎样生成一个简单的地图,之后会说到地图的定位以及搜索  首先我们如果想生成百度地图第一步就是我们要创建一个应用申请秘钥,我的地址:...

      现在在许多的app都加入了百度地图的功能,现在简单阐述以下怎样生成一个简单的地图,之后会说到地图的定位以及搜索

       首先我们如果想生成百度地图第一步就是我们要创建一个应用申请秘钥,我的地址:http://lbsyun.baidu.com/apiconsole/key

       点击创建应用,输入一个应用名,应用类型为AndroidSDK 其他的就不多说了 主要我们需要的就是个发布版SHA1,以及应该注意包名必须与项目的包名一致。

    下来说怎样得到  发布版SHA1  :

                        进入AndroidStudio工程里面点击上部的Bulide 里面有个Generate  Signed APK   在里面重新Create new 一个新的jks

     简单的说一下:最上方是jks创建的路径点击右边的按钮可以原则路径以及填写名称,接着往下走是密码以及确定密码  Alias直接习惯的写China好像是别名的意思,下边就不详细说明了。

      创建成功后,进入黑窗口,用 cd 找到创建好的jks使用keytool -list -v -keystore+jks的名称点击回车


    出现下面这幅图就成功了之后复制这个SHA1到创建的应用里面就可以生成秘钥了。

    接下来就是清单文件里用到的权限以及设置

         <uses-permission android:name="com.android.launcher.permission.READ_SETTINGS" />
        <!-- 这个权限用于进行网络定位 -->
        <uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION" />
        <!-- 这个权限用于访问GPS定位 -->
        <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" />
        <!-- 用于访问wifi网络信息,wifi信息会用于进行网络定位 -->
        <uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
        <!-- 获取运营商信息,用于支持提供运营商信息相关的接口 -->
        <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
        <!-- 用于读取手机当前的状态 -->
        <uses-permission android:name="android.permission.READ_PHONE_STATE" />
        <!-- 写入扩展存储,向扩展卡写入数据,用于写入离线定位数据 -->
        <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
        <!-- 访问网络,网络定位需要上网 -->
        <uses-permission android:name="android.permission.INTERNET" />
        <uses-permission android:name="android.permission.WRITE_SETTINGS" />



        <!-- SD卡读取权限,用户写入离线定位数据-->
        <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"></uses-permission>

    当然这里面是有可以定位的权限可以留着

      <meta-data
                android:name="com.baidu.lbsapi.API_KEY"
                android:value="密钥的名称" />

      bulid里面必须配置

    //必须添加--
        sourceSets {
            main {
                jniLibs.srcDir 'libs'
            }
        }

     导入工程的jar包

    最后一个包是定位用的也可先不导入

    前面这些工作做好后需要真正的代码了

    首先布局:

    <com.baidu.mapapi.map.MapView
            android:id="@+id/bmapView"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:clickable="true" />

    直接用就可以,这是地图自带的一个MapView

    代码

    package com.example.maptest;

    import android.os.Bundle;
    import android.support.v7.app.AppCompatActivity;

    import com.baidu.mapapi.SDKInitializer;
    import com.baidu.mapapi.map.MapView;

    public class BaseMapActivity extends AppCompatActivity {

        MapView mMapView = null;

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            //在使用SDK各组件之前初始化context信息,传入ApplicationContext

     //进行初始化
        SDKInitializer.initialize(getApplicationContext());

            setContentView(R.layout.activity_base_map);
            //获取地图控件引用
            mMapView = (MapView) findViewById(R.id.bmapView);
        }

        @Override
        protected void onDestroy() {
            super.onDestroy();
            //在activity执行onDestroy时执行mMapView.onDestroy(),实现地图生命周期管理
            mMapView.onDestroy();
        }

        @Override
        protected void onResume() {
            super.onResume();
            //在activity执行onResume时执行mMapView. onResume (),实现地图生命周期管理
            mMapView.onResume();
        }

        @Override
        protected void onPause() {
            super.onPause();
            //在activity执行onPause时执行mMapView. onPause (),实现地图生命周期管理
            mMapView.onPause();
        }

    }

    直接使用就行了。基础地图就形成了。


    展开全文
  • 本实用新型涉及地图测绘技术领域,特别是涉及用于测量地图曲线长度的米尺。背景技术:地图是空间信息的载体,通过测量地图上两点之间的线条的距离,再根据比例尺换算,即可得到两地的实际距离。地图上的线条很多都为...

    本实用新型涉及地图测绘技术领域,特别是涉及用于测量地图曲线长度的米尺。

    背景技术:

    地图是空间信息的载体,通过测量地图上两点之间的线条的距离,再根据比例尺换算,即可得到两地的实际距离。地图上的线条很多都为曲线,传统的米尺在测量曲线长度的时候,往往需要借助其它介质,如柔软的细线等。先将柔软细线与曲线重合,在细线上做好标记,然后再用传统的米尺测量柔软细线两标记间的长度,操作复杂。在绘制标记的时候,需要与曲线端点精确重合,否则很容易造成偏差,可靠性不高。

    技术实现要素:

    基于此,有必要针对传统的米尺需要借助介质才能测量地图曲线的问题,提供一种用于测量地图曲线长度的米尺,简化测量步骤,提高测量精度。

    一种用于测量地图曲线长度的米尺,包括米尺本体,所述米尺本体上设置有刻度,所述米尺本体能够弯曲,所述米尺本体的横截面为圆形或矩形,所述圆形横截面的直径为2至3mm;所述矩形横截面带刻度边的长度为2至4mm,与带刻度边垂直的边的长度为1至3mm。

    在其中一个实施例中,所述圆形横截面的直径为3mm。

    在其中一个实施例中,所述矩形横截面带刻度边的长度为3mm,与带刻度边垂直的边的长度为2mm。

    在其中一个实施例中,所述米尺本体沿长度方向为阶梯状,包括第一阶梯,第二阶梯和第三阶梯。

    在其中一个实施例中,所述米尺本体的横截面为圆形,所述第一阶梯的直径为2mm,所述第二阶梯的直径为2.5mm,所述第三阶梯的直径为3mm。

    在其中一个实施例中,所述米尺本体的横截面为矩形,所述带刻度边的长度分别为:所述第一阶梯为2mm,所述第二阶梯为3mm,所述第三阶梯为4mm;所述第一阶梯至所述第三阶梯的所述与带刻度边垂直的边的长度均为2mm。

    在其中一个实施例中,所述米尺本体的材料为热塑性弹性体。

    在其中一个实施例中,所述米尺本体还包括凸起结构,所述凸起结构设置在所述米尺本体的两端。

    在其中一个实施例中,还包括用于固定所述米尺本体的卷轴,所述米尺本体卷绕在所述卷轴上。

    在其中一个实施例中,所述卷轴包括端部和轴身,所述米尺本体卷绕于所述轴身,所述端部的直径大于所述轴身的直径。

    上述用于测量地图曲线长度的米尺能够弯曲,可以使米尺本体直接与待测曲线重合,从而通过刻度直接读出地图曲线的长度,并且米尺本体横截面尺寸的设置,便于握持的同时也满足了弯曲强度的要求,测量效率高且可靠性强。

    附图说明

    图1为本实用新型实施例的用于测量地图曲线长度的米尺的正视图;

    图2为本实用新型实施例的用于测量地图曲线长度的米尺的侧视图;

    图3为本实用新型实施例的用于测量地图曲线长度的米尺的俯视图;

    图4为本实用新型实施例的米尺本体的正视图;

    图5为本实用新型实施例的米尺本体的侧视图;

    图6为本实用新型实施例的米尺本体的俯视图。

    具体实施方式

    为了使本实用新型的目的、技术方案及技术效果更加清楚明白,以下结合附图对本实用新型的具体实施例进行描述。应当理解,此处所描述的具体实施例仅用以解释本实用新型,并不用于限定本实用新型。

    请参阅图1至图6,本实用新型提供一种用于测量地图曲线长度的米尺100,包括米尺本体110,米尺本体110上设置有刻度120,刻度120沿米尺本体110的长度方向设置,米尺本体110能够弯曲。米尺本体110的横截面为圆形或矩形,圆形横截面的直径为2至3mm;矩形横截面的带刻度120边的长度为2至4mm,与带刻度120边垂直的边的长度为1至3mm。米尺本体110横截面尺寸的设置,可以使米尺本体110具有足够的弯曲度,能够与各种弯曲程度的曲线重合,同时便于握持。

    米尺本体110具有较长的长度,可以为50-200cm,可根据需要设置,优选为100cm。具体的,米尺本体110的横截面为圆形时,圆形横截面的直径优选为3mm,以使米尺本体110的弯曲性能与握持便捷性均达到最佳状态。米尺本体110的横截面优选为矩形,以便于更好的打印刻度120。矩形横截面带刻度120边的长度优选为3mm,与带刻度120边垂直的边的长度优选为2mm。

    米尺本体110沿长度方向还可以为阶梯状。在对多条曲线的长度进行同时测量时,便于区分不同的曲线,提高测量速度,另外还可以满足不同的握持需求。优选的,米尺本体110包括第一阶梯,第二阶梯和第三阶梯。每个阶梯的长度可以根据需要设置。

    具体的,米尺本体110的横截面为圆形时,第一阶梯的直径优选为2mm,第二阶梯的直径优选为2.5mm,第三阶梯的直径优选为3mm。

    当米尺本体110的横截面为矩形时,带刻度120边的长度分别为:第一阶梯优选为2mm,第二阶梯优选为3mm,第三阶梯优选为4mm;第一阶梯至第三阶梯的与带刻度120边垂直的边的长度相同,均为2mm。

    米尺本体110的材料可以为聚氯乙烯,也可以为热塑性弹性体。优选的,米尺本体110由热塑性弹性体制成。热塑性弹性体的柔韧性更好,使得米尺本体110的握持手感更佳;低温情况下不容易变硬,提高了米尺本体110的性能,拓宽了米尺100的使用环境。

    优选的,米尺本体110的两端设有凸起结构111,以利于测量时抽出米尺本体110,便于测量时更好的握持。凸起结构111不设置刻度120。米尺本体110的两端还可以不设凸起结构111,而设置纹理结构,也可以起到防滑的作用,便于握持。

    米尺本体110可以为空心或者实心。空心的米尺携带方便,节省材质,实心的米尺手感厚实,使用方便。

    优选的,米尺100还包括卷轴130,卷轴130用于固定米尺本体110。米尺本体110卷绕在卷轴130上。卷轴130的设置,便于米尺本体110的携带和收纳。

    具体的,卷轴130包括端部131和轴身132。米尺本体110能够卷绕在轴身132上,可以防止米尺本体110自身缠绕成结,提高米尺100的使用寿命。优选的,端部131的直径大于轴身132的直径,可以防止米尺本体110的脱落。

    优选的,卷轴130的轴身132上设有凹槽,米尺本体110能够固定在所述凹槽内,使米尺本体110的固定更加稳固。

    当需要对地图曲线测量时,通过凸起结构111将米尺本体110从轴身132上抽出,并使米尺本体110完全贴合在地图曲线上,即可测出地图曲线的长度,测量更简便,更准确。使用完毕后,将米尺本体110缠绕在轴身132上,便于收纳和携带,延长米尺100的使用寿命。

    以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。

    以上所述实施例仅表达了本实用新型的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对实用新型专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本实用新型构思的前提下,还可以做出若干变形和改进,这些都属于本实用新型的保护范围。因此,本实用新型专利的保护范围应以所附权利要求为准。

    展开全文
  • 摘要: ...本文就具体解说了怎样制作附近实体店的地图,并调起高德地图进行导航,调起打电话功能。 本文还具体解说了怎样设置支付宝服务、微信公众号、微博官方账号的地图功能。 ----...

    摘要:

    附近连锁店地图与全国连锁店地图,最大的差别就是:

    1、附近连锁店地图须要先定位,然后搜索附近的店铺。

    2、全国连锁店地图,是先选择城市,然后检索某城市内的所有门店信息。

    本文就具体解说了怎样制作附近实体店的地图,并调起高德地图进行导航,调起打电话功能。

    本文还具体解说了怎样设置支付宝服务、微信公众号、微博官方账号的地图功能。

    ------------------------------------------------------------------------

     

    一、支付宝设置

    登录支付宝服务窗:https://fuwu.alipay.com/platform/queryMenu.htm

    自己定义菜单 -> 主菜单 -> 有子级菜单

    填写子菜单名称,设置为跳转网页,而且放入网址。比方菜鸟物流:http://zhaoziang.com/amap/cainiao.html

    最后点击公布。

     

    二、微信设置

    登录微信公众平台:https://mp.weixin.qq.com

    功能->高级功能->编辑模式->自己定义菜单-> 菜单管理->加入->设置动作

    设置为跳转网页,而且放入网址。比方菜鸟物流:http://zhaoziang.com/amap/cainiao.html

    最后点保存。

     

    三、微博设置

    登录微博:http://weibo.com/

    管理中心->粉丝服务->高级功能->编辑模式->自己定义菜单-> 菜单管理->加入->设置动作

    设置为跳转网页,而且放入网址。比方菜鸟物流:http://zhaoziang.com/amap/cainiao.html

    最后点保存。

     

    四、云图设置

    登录云图管理台:http://yuntu.amap.com/datamanager/index.html

    新建地图

    导入CSV数据。(支持UTF8和GBK 编码,数据不超过10,000 条)

     

    五、代码与获取网址

    将下面代码复制下来,替换key、tableID、图标,然后生成自己的网址。

    获取key的地址:http://api.amap.com/key

    获取tableID的地址:

    进入你的云图->获取tableID

     

    所有源码:

    复制代码
    <!DOCTYPE HTML>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
    <title>菜鸟物流全国网站</title>
    <style>
    /** reset **/
    body,html,div,p,li,ul,ol,p,select,h3{padding:0;margin:0;}
    body,html{width:100%;height:100%;}
    img{border:none;}
    a{text-decoration:none;}
    a:hover{color:#FF7F27;}
    body{color:#333;font-family:"Microsoft YaHei";text-align:center;font-size:14px;}
    img:hover{filter:alpha(opacity=90);-moz-opacity:0.9;-khtml-opacity: 0.9;opacity: 0.9;}
    ul,li{list-style:none;}
    /** clearfix **/
    .clearfix{display:block;zoom:1;}
    .clearfix:after{content:".";display:block;height:0;clear:both;visibility:hidden;}
    /** weixin **/
    .header{width:100%;height:10%;background:#b3ffd7;float:left;}
    .header a{width:49%;height:100%;float:left;font-size:16px;line-height:3.5em;}
    #map,#list{height:90%;width:100%;}
    #list{text-align:left;}
    .item{border-bottom:1px dashed #ccc;padding:10px;}
    </style>
    <script language="javascript" src="http://webapi.amap.com/maps?v=1.2&key=【您的key】"></script>
    </head>
    <body onLoad="mapInit()">
        <div class="header clearfix">
            <a id="iListBtn" onclick="display('list','iMapBtn');" href="javascript:void(0);">列表模式</a>
            <a id="iMapBtn" onclick="display('map','iListBtn');" href="javascript:void(0);">地图模式</a>
        </div>
        <div id="map" class="clearfix"></div>
        <div id="list" style="display:none;">正在读取数据……</div>
    </body>
    <script language="javascript">
    function display(id1,id2){
        document.getElementById('map').style.display = 'none';
        document.getElementById('list').style.display = 'none';
        document.getElementById(id1).style.display = 'block';
        document.getElementById(id2).style.display = 'block';
        if (id1 === 'map' && mapObj) {
            mapObj.setFitView();
        }
    }
    var mapObj;
    var cloudDataLayer;
    var cloudSearch;
    var cpoint;
    //初始化地图对象,载入地图
    function mapInit(){
        mapObj = new AMap.Map("map");
        mapObj.plugin('AMap.Geolocation', function () {
            geolocation = new AMap.Geolocation({
                enableHighAccuracy: true,//是否使用高精度定位,默认:true
                timeout: 10000,          //超过10秒后停止定位,默认:无穷大
                maximumAge: 0,           //定位结果缓存0毫秒,默认:0
                convert: true,           //自己主动偏移坐标,偏移后的坐标为高德坐标,默认:true
                showButton: true,        //显示定位button,默认:true
                buttonPosition: 'LB',    //定位button停靠位置,默认:'LB',左下角
                buttonOffset: new AMap.Pixel(10, 20),//定位button与设置的停靠位置的偏移量,默认:Pixel(10, 20)
                showMarker: true,        //定位成功后在定位到的位置显示点标记,默认:true
                showCircle: false,        //定位成功后用圆圈表示定位精度范围,默认:true
                panToLocation: true,     //定位成功后将定位到的位置作为地图中心点,默认:true
                zoomToAccuracy:true      //定位成功后调整地图视野范围使定位位置及精度范围视野内可见,默认:false
            });
            mapObj.addControl(geolocation);
            geolocation.getCurrentPosition();
            AMap.event.addListener(geolocation, 'complete', onComplete); //返回定位信息-成功
            AMap.event.addListener(geolocation, 'error', function(){
                alert('哟,定位失败啦!');
            });    //返回定位信息-失败 
        });
    }
    function onComplete(data) {
        var lngX = data.position.getLng();
        var latY = data.position.getLat();
        cpoint = new AMap.LngLat(lngX,latY);
        //cpoint = new AMap.LngLat(116.38298,39.955543);
        myCloudList();  
    }
    //云图载入列表
    function myCloudList(){
        //列表
        var search; 
        var searchOptions = {
                pageSize:20
            };
        mapObj.plugin(["AMap.CloudDataSearch"], function() {
            cloudSearch = new AMap.CloudDataSearch('【您的tableID】', searchOptions); //构造云数据检索类
            AMap.event.addListener(cloudSearch, "complete", cloudSearch_CallBack); //查询成功时的回调函数
            AMap.event.addListener(cloudSearch, "error", errorInfo); //查询失败时的回调函数
            cloudSearch.searchNearBy(cpoint, 10000); //周边检索 
        });
    }
    var markers = new Array(); 
    var windowsArr = new Array();
    //加入marker和infowindow     
    function addmarker(i, d){  
        var lngX = d._location.getLng();  
        var latY = d._location.getLat();  
        var IconOptions = {
            image : "cainiao.png", //您的小图标33*33
            size : new AMap.Size(33,33),
            imageSize : new AMap.Size(33,33),
            imageOffset : new AMap.Pixel(-16,0)
        };
        var myIcon = new AMap.Icon(IconOptions);
        var markerOption = {  
            map:mapObj,  
            icon: myIcon,   
            offset: new AMap.Pixel(-15,-30),   
            position:new AMap.LngLat(lngX, latY)    
        };              
        var mar = new AMap.Marker(markerOption);    
        markers.push(new AMap.LngLat(lngX, latY));  
      
        var infoWindow = new AMap.InfoWindow({  
            content: "<h3>" + d._name + "</h3>" + "<img style=\"width:280px;height:180px;overflow:hidden;\" src='cainiao2.png' /><p>地址:" + d._address + "</p>" + "<p>电话:<a href=\"tel:" + d.telephone + "\">" + d.telephone + "</a></p><p style=\"text-align:right\"><a href='http://mo.amap.com/?q=" + d._location.getLat() + "," + d._location.getLng() + "&name=" + d._name + "'>到这儿去</a></p>",
            size:new AMap.Size(280, 0),  
            autoMove:true,  
            offset:new AMap.Pixel(0,-30),
            closeWhenClickMap: true        
        });    
        windowsArr.push(infoWindow);     
        var aa = function(){infoWindow.open(mapObj, mar.getPosition());};    
        AMap.event.addListener(mar, "click", aa);    
    }
    //回调函数-成功
    function cloudSearch_CallBack(data) {
        clearMap();
        var resultStr="";
        var resultArr = data.datas;
        var resultNum = resultArr.length;
        for (var i = 0; i < resultNum; i++) {
            resultStr += "<div class=\"item\">";
            resultStr += "<h3>" + (i+1) + "" + resultArr[i]._name + "</h3>";
            resultStr += "<p>地址:" + resultArr[i]._address + "</p>";
            resultStr += "<p>电话:<a href=\"tel:" + resultArr[i].telephone + "\">" + resultArr[i].telephone + "</a></p>";
            resultStr += "<p>地图:<a href='http://mo.amap.com/?q=" + resultArr[i]._location.getLat() + "," + resultArr[i]._location.getLng() + "&name=" + resultArr[i]._name + "'>到这里去</a></p>";
            resultStr += "</div>";
            addmarker(i, resultArr[i]); //加入大标注
        }
        if (document.getElementById('map').style.display !== 'none') {
            mapObj.setFitView();
        }
        document.getElementById("list").innerHTML = resultStr;
    }
    //回调函数-失败
    function errorInfo(data) {
        resultStr = data.info;
        document.getElementById("list").innerHTML = resultStr;
    }
    //清空地图
    function clearMap(){
        mapObj.clearMap();
        document.getElementById("list").innerHTML = '正在读取数据……';
    }
    </script>
    </html>
    复制代码

     

    demo网址(请用手机浏览器查看):http://zhaoziang.com/amap/cainiao.html

     

    效果图:

     

    六、其它云图教程

    【支付宝中的全国家乐福地图】http://www.cnblogs.com/milkmap/p/3786144.html

    【微信中的全国AMF海水农场地图】http://www.cnblogs.com/milkmap/p/3780417.html

    【官网中的全国AMF海水农场地图】http://www.cnblogs.com/milkmap/p/3778398.html

    【应用中webview形式的全国KTV地图】http://www.cnblogs.com/milkmap/p/3765925.html

     

    【三甲医院】http://www.cnblogs.com/milkmap/p/3637899.html

    【东莞地图】http://www.cnblogs.com/milkmap/p/3657829.html

    【贪官落马图】http://www.cnblogs.com/milkmap/p/3678377.html

     

    七、从零開始学高德JS API系列教程

    【地图展现】http://www.cnblogs.com/milkmap/p/3687855.html

    【控件】http://www.cnblogs.com/milkmap/p/3707711.html

    【覆盖物】http://www.cnblogs.com/milkmap/p/3727842.html

    【搜索服务】http://www.cnblogs.com/milkmap/p/3745701.html

    【路线规划】http://www.cnblogs.com/milkmap/p/3755257.html

    【坐标转换】http://www.cnblogs.com/milkmap/p/3768379.html


    学到新知识了?快来2014高德LBS应用大赛操练起来吧!

    展开全文
  • ...用百度地图API,能不能帮我实现这个愿望呢? ------------------------------------------------------------------------------------------------------------------------ 一、创建...

    摘要:

      休假结束,酸奶小妹要从重庆驾车去北京。但是途中要去西安奶奶家拿牛奶饼干呢!

    用百度地图API,能不能帮我实现这个愿望呢?

    ------------------------------------------------------------------------------------------------------------------------

    一、创建地图

    首先要告诉大家的是,API1.2版本号取消密钥,取消服务设置,大家能够採用更加简短的方式引用API的JS啦~

    <script type="text/javascript" src="http://api.map.baidu.com/api?v=1.2"></script>

      

    大家跟我一起来创建一张简单的地图:

    var map = new BMap.Map("container");
    map.centerAndZoom(new BMap.Point(116.404, 39.915), 13);

      

    然后为地图加上一些合适的控件:

    map.addControl(new BMap.NavigationControl());               // 加入平移缩放控件
    map.addControl(new BMap.ScaleControl());                    // 加入比例尺控件
    map.addControl(new BMap.OverviewMapControl());              //加入缩略地图控件

      

    我手工找到的重庆、西安、北京三个城市的坐标点,使用坐标拾取工具(请点击)能够轻松找到这三个经纬度。

    当然。你也能够使用localsearch类的search方法。这个能够任意。

    找到坐标点之后,创建三个点对象。

    var myP1 = new BMap.Point(106.521436,29.532288);    //起点-重庆
    var myP2 = new BMap.Point(108.983569,34.285675);    //终点-西安
    var myP3 = new BMap.Point(116.404449,39.920423);    //终点-北京

      

    二、创建一个驾车导航和两个驾车搜索

    好啦。如今来创建一个驾车导航吧~

    这句话是不是非常easy?用这句话就能够创建驾车导航啦。

    var driving = new BMap.DrivingRoute(map);    //创建驾车实例

      

    然后写两个搜索方法:

    第一个是搜索从重庆到西安的,第二个是从西安到北京的。

    driving.search(myP1, myP2);                 //第一个驾车搜索
    driving.search(myP2, myP3);                 //第二个驾车搜索

      

    三、自己绘制折线

    接下来,我们在回调函数setSearchCompleteCallback中,把搜索完成的路线绘制出来。

    注意哦,这里是两个搜索的路线都绘制出来了哦~~

    就这么简单的三句话,非常easy吧。

    第一句、获取数组

    第二句、创建折线

    第三句、加入折线覆盖物

        driving.setSearchCompleteCallback(function(){
            var pts = driving.getResults().getPlan(0).getRoute(0).getPath();    //通过驾车实例,获得一系列点的数组
    
            var polyline = new BMap.Polyline(pts);     
            map.addOverlay(polyline);
    }

      

    这个时候,整个驾车导航就是这个样子滴。简直充满了喜感,像一条蚯蚓呢  O(∩_∩)O~

    四、加入起点、终点、途经点marker

    事实上这个途经点,能够做成像百度地图首页的驾车导航那样,有红绿色的起点终点图标。例如以下图:

    注意:这一点。大家随意,大家想加marker(能够更换随意的icon图片),或者想加label。甚至是别的什么覆盖物。都是OK的。

    API技术咨询
    请先下载百度HI聊天工具
    JS版HI群:1357363
    移动版HI群:1363111

      

    可是呢,我还是喜欢红色的标注啦,我还能够加上文字标注。

    所以。我简单地用红色marker加label来表示了。例如以下图。

    加入marker和label的代码例如以下:

    复制代码
            var m1 = new BMap.Marker(myP1);         //创建3个marker
            var m2 = new BMap.Marker(myP2);
            var m3 = new BMap.Marker(myP3);
            map.addOverlay(m1);
            map.addOverlay(m2);
            map.addOverlay(m3);
            
            var lab1 = new BMap.Label("起点",{position:myP1});        //创建3个label
            var lab2 = new BMap.Label("途径点",{position:myP2});
            var lab3 = new BMap.Label("终点",{position:myP3});   
            map.addOverlay(lab1);
            map.addOverlay(lab2);
            map.addOverlay(lab3);
    复制代码

      

    五、调整到最佳视野

    个人觉得setViewport是个很实用的好东西。由于它能够把你的标注展示到一个最完美的视野内。

    假设不加setViewport,你的地图可能仅仅会出现一半的有效视野。而不是完整的3个标注都有。例如以下图:

    代码非常easy,先来看看类參考

    就是说。仅仅要有点对象数组传进去,系统就会帮你完毕最佳视野的展示。!

    map.setViewport([myP1,myP2,myP3]);          //调整到最佳视野

    小贴士:你能够做一个延时动画,让最佳视野的展示更美丽。 

    另外,marker也是能够有动画的,不要忽略了。详见:http://dev.baidu.com/wiki/static/map/API/examples/?v=1.2&3_1#3&1 

    六、完整代码

    复制代码
    <!DOCTYPE html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>驾车途经点</title>
    <script type="text/javascript" src="http://api.map.baidu.com/api?

    v=1.2"

    ></script> </head> <body> <p><input type='button' value='開始' onclick='run();' /></p> <div style="width:820px;height:500px;border:1px solid gray" id="container"></div> </body> </html> <script type="text/javascript"> var map = new BMap.Map("container"); map.centerAndZoom(new BMap.Point(116.404, 39.915), 13); map.addControl(new BMap.NavigationControl()); // 加入平移缩放控件 map.addControl(new BMap.ScaleControl()); // 加入比例尺控件 map.addControl(new BMap.OverviewMapControl()); //加入缩略地图控件 var myP1 = new BMap.Point(106.521436,29.532288); //起点-重庆 var myP2 = new BMap.Point(108.983569,34.285675); //终点-西安 var myP3 = new BMap.Point(116.404449,39.920423); //终点-北京 window.run = function (){ map.clearOverlays(); //清除地图上全部的覆盖物 var driving = new BMap.DrivingRoute(map); //创建驾车实例 driving.search(myP1, myP2); //第一个驾车搜索 driving.search(myP2, myP3); //第二个驾车搜索 driving.setSearchCompleteCallback(function(){ var pts = driving.getResults().getPlan(0).getRoute(0).getPath(); //通过驾车实例。获得一系列点的数组 var polyline = new BMap.Polyline(pts); map.addOverlay(polyline); var m1 = new BMap.Marker(myP1); //创建3个marker var m2 = new BMap.Marker(myP2); var m3 = new BMap.Marker(myP3); map.addOverlay(m1); map.addOverlay(m2); map.addOverlay(m3); var lab1 = new BMap.Label("起点",{position:myP1}); //创建3个label var lab2 = new BMap.Label("途径点",{position:myP2}); var lab3 = new BMap.Label("终点",{position:myP3}); map.addOverlay(lab1); map.addOverlay(lab2); map.addOverlay(lab3); setTimeout(function(){ map.setViewport([myP1,myP2,myP3]); //调整到最佳视野 },1000); }); } </script>
    复制代码

      

    展开全文
  • "鉴于此,我总结了一下路书的制作方法,希望大家笑纳。目前为止,我们已经有20万公里的自驾经验了。但无论是否自驾出行,在每次旅行之前,做好线路规划、行程安排都是必须要提前准备的功课。在智能手机普及之前,...
  • 号化决定了地图将传递怎样的内容。矢量数据中,无论是点状,线状还是面状要素,都可以 依据要素的属性特征采取不同的符号化方法来实现数据的符号化。 地图注记是一幅完整地图的有机组成部分,用来说明图形符号无法...
  • 如下图所示,怎样制作完美漂亮的点阵世界地图呢?今天我就教大家吧! 其实,制作过程相当简单,主要的思路是通过世界地图范围去创建渔网(标注点),再选择范围内的标注点,符号化即可,怎么样,很简单吧,下面...
  • 摘要:本文以【唱吧】531麦霸音乐节为案例,具体解读了怎样导入自有数据到高德云图,并进行检索和展示。最后,调起高德mobile地图来进行路线规划和周边查询。 本案例能够应用在微信开发平台,支付宝公众服务上。...
  • 一边说再见,一边做张同窗去向的地图期待易地重逢——道别的话好说,但怎样才能方便地在一张地图上展现班级同学在全国各地的分布状况呢?如何制作一幅便于将来到各地老同学那里蹭饭的地图?如何把同学分布情况做成...
  • 6月11日,滴滴地图与公交事业部负责人柴华还在忙于解答消费者对于滴滴司机绕路的质疑,网上就流传出了滴滴司机直播性侵的消息。当晚,滴滴急忙在官方微博中做出回应称已报警并在紧急核实。6月12日,滴滴网约车公司...
  • 最近,我看了一篇文章,叫 【Python终于干掉了Excel】...COVID-19全球形式仍不明朗,今天,我们就来看一下,如何使用Excel的3D Maps功能,3分钟制作COVID-19疫情地图。 Excel的3D Maps功能无需编程,即可快速制作各...
  • 很多刚开始建站的人都对引擎收录这个问题很迷惑,为什么他的站收录这么多,我的站却这么少,其实在收录这方面很讲究技术,其中网站地图的制作可以提高网站的收录,那怎样制作呢? 在SEO工作中,要想快速被google...
  • 怎样把全球卫星地图下载到电脑上

    千次阅读 2016-10-10 11:17:02
    制作离线地图需要下载地图,打印地图需要下载地图,导航也需要下载地图,用到离线地图的有很多。很多朋友现在都已经再用水经注万能地图下载器下载地图了,那今天就给大家讲讲如何下载全球的的谷歌卫星地图。 工具/...
  • 如何用Vue+Echarts制作世界地图下钻

    千次阅读 2020-06-01 00:59:08
    在疫情期间,地图对于我们掌握疫情的走势立了大功,那么怎样能够制作一个相似的地图模块呢?本文利用vue和echarts模拟了对于疫情地图制作。 关于Vue和Echarts vue是一个轻量级的框架,他采用了MVVM的模式,也就是M...
  • 很多站长都为了蜘蛛爬虫更快的抓取网站最新内容,创建网站地图sitemap,在制作WordPress网站地图的时候,我们会不可避免的使用地图插件,今天专门抽出时间推荐几款插件。 什么是网站地图 站点地图是一个网站所有链接...
  • 通过iPhone中文网的“iPhone地图离线版使用教程”学会了使用离线地图,现在教大家怎样制作自己的离线地图,实际上做离线地图很简单,我们只要用程序把网上的地图下载下来,转换成iPhone能识别的就可以了。...
  • 在3D游戏中常常使用小地图来显示自己角色所在的位置,之前项目遇到过用NGUI来制作一个简单的小地图的功能,尝试制作一个简单的小地图功能,怎样丰富小地图的功能这个就要自己去慢慢摸索咯~
  • 程序截图: ... 在第一部分教程中,我们介绍了如何基于tiled创建地图怎样地图增加到游戏中去,以及如何滚动地图来跟随主角移动、还有如何使用对象层。  在这部分教程中,我们将会介绍如何在地
  • 不过,对于普通的理工科、社会科学工作来说,有时候我们并不需要把地图制作得非常精确。普通的分块填色数据地图就可以满足我们的要求。例如,在上一期中我们给出了姓氏、名字的全国分布地图姓氏分布-知乎@纯洁的夏...
  • 自助式手机地图就是自己动手制作地图文件,然后放到手机上,使用手机地图程序打开手机上的地图文件来实现地图的操作,获得地图服务,如查看道路,查找地名位置,GPS定位,指南针方向等。任何人都可以通过使用免费的...
  • 每个夏季似乎都是离别季,班级同学拿着录取通知书纷纷奔向全国各地,怎样在一张地图上展现班级同学在全国各地的分布状况呢?如何制作一副蹭饭地图?如何把同学分布情况做成同学录展示在地图上?谭老师地理工作室综合...
  • 本文转载自公众号“把科学带回家”(ID:steamforkids)我想你肯定好奇过,地图上很少有形状规则的国家,那么这些国家的面积是怎么测量出来的呢?特别是在没有计算机技术的年代?今天就通过一个勺子,来解答你的这个...
  • 游戏非常简单,无非就是英雄抓住怪物就得分,然后游戏重新开始,怪物出现在地图的随机位置,英雄初始化在地图的中间。点击[这里](../simple_canvas_game-master/index.html "simple_canvas_game"),我们可以直接先玩...
  • 上一章中,我们使用TiledMap制作了一张简单的地图,并把它加入到了程序中,紧接着本章将实现地图的双指缩放和单指移动功能。 是不是觉得这一功能很接地气,呵呵,其实在很多类似的大地图背景游戏中这是非常常见和...
  • 本文由公众号 “把科学带回家” 提供给孩子最好的科学教育我想你肯定好奇过,地图上很少有形状规则的国家,那么这些国家的面积是怎么测量出来的呢?特别是在没有计算机技术的年代?今天就通过一个勺子,来解答你的这...
  • 本文由公众号 “把科学带回家” 提供我想你肯定好奇过,地图上很少有形状规则的国家,那么这些国家的面积是怎么测量出来的呢?特别是在没有计算机技术的年代?今天就通过一个勺子,来解答你的这个疑问。关键概念斧状...

空空如也

空空如也

1 2 3 4 5 6
收藏数 119
精华内容 47
关键字:

怎样制作地图