• 最近做项目学习,用到的一些功能知识点,记录下


    HTML页面通过js直接调用百度导航接口的案例方法:

     var map = new BMap.Map("allmap");
            var point = new BMap.Point(addrX,addrY);//这里的addrX,addrY表示你要去的目的地的经纬度
            map.centerAndZoom(point, 16);
            map.enableScrollWheelZoom();
    
            var myIcon = new BMap.Icon("myicon.png",new BMap.Size(30,30),{
                anchor: new BMap.Size(10,10)
            });
            var marker=new BMap.Marker(point,{icon: myIcon});
            map.addOverlay(marker);
    
            var geolocation = new BMap.Geolocation();
            geolocation.getCurrentPosition(function(r){
                if(this.getStatus() == BMAP_STATUS_SUCCESS){
                    var mk = new BMap.Marker(r.point);
                    map.addOverlay(mk);
                    //map.panTo(r.point);//地图中心点移到当前位置
                    var latCurrent = r.point.lat;//获取当前位置纬度
                    var lngCurrent = r.point.lng;//获取当前位置经度
                    //alert('我的位置:'+ latCurrent + ',' + lngCurrent);
                    //console.log("http://api.map.baidu.com/direction?origin="+latCurrent+","+lngCurrent+"&destination="+addrY+","+addrX+"&mode=driving&region="+city+"&output=html&src=webapp.baidu.openAPIdemo");
                    location.href="http://api.map.baidu.com/direction?origin="+latCurrent+","+lngCurrent+"&destination="+addrY+","+addrX+"&mode=driving&region=珠海&output=html&src=webapp.baidu.openAPIdemo ";
    
                }
                else {
                    alert('failed'+this.getStatus());
                }
            },{enableHighAccuracy: true})

    已知出发地,跟目的地的经纬度计算出俩地的距离:

    获取当前位置的经纬度:
    
    var x,y;
        var geolocation = new BMap.Geolocation();
    
        geolocation.getCurrentPosition(
            function (pos) {
                // 赋值xy
                x= pos.point.lng;//当前经度
                y = pos.point.lat;//当前纬度
            })
    

      目的地的经纬度可以通过百度坐标系统通过地名来转换成当前地名的经纬度:

    计算俩地的方法:

     var lng1 = $("#x").val();//当前经度
                        var lat1 = $("#y").val();//当前纬度
                        var lng2 = pd.addrX;//车行经度
                        var lat2 = pd.addrY;//车行纬度
    
                        function rad(d) {
                            return d * Math.PI / 180;
                        }
    
                        function getDistance(lat1, lng1, lat2, lng2) {
                            var earth_radius = 6378.137;       //单位为公里
                            var radlat1 = rad(lat1);
                            var radlng1 = rad(lng1);
                            var radlat2 = rad(lat2);
                            var radlng2 = rad(lng2);
    
                            var a = radlat1 - radlat2;
                            var b = (radlng1 - radlng2) * Math.PI / 180.0;
    
                            //var s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a/2),2) + Math.cos(radlat1)*Math.cos(radlat2)*Math.pow(Math.sin(b/2),2)));
                            var s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2)
                                + Math.cos(radlat1) * Math.cos(radlat2)
                                * Math.pow(Math.sin(b / 2), 2)));
                            s = s * earth_radius;
                            s = Math.round(s * 10000) / 10000;
                            s = s.toFixed(1) ;
    
                            return s;
                        }
    
                        var juli = getDistance(lat1, lng1, lat2, lng2);
    

      认真努力,脚踏实地,加油!!

  • 相关阅读:
    我所经历的大文件数据导出(后台执行,自动生成)
    snowflake ID生成器
    docker搭建php环境
    全局唯一随机邀请码实现方式
    sitemap xml文件生成
    浏览器输入一个地址的过程分析
    DNS解析全过程分析
    nginx编译安装on mac
    nginx image_filter 配置记录
    ImageMagick简单记录
  • 原文地址:https://www.cnblogs.com/aa1314/p/9684029.html
Copyright © 2020-2023  润新知