Browse Source

添加高德和百度地图选择

李雪梅 2 năm trước cách đây
mục cha
commit
c536d38b96

+ 1 - 1
nngkxxdp/src/main/resources/static/district/css/sy_mobile_new.css

@@ -63,7 +63,7 @@ a {
 }
 .right-map {
     width: 73%;
-    /* height: calc(100vh - 339px); */
+	height: 290px;
     overflow: hidden;
     width: 100%;
 }

+ 335 - 21
nngkxxdp/src/main/resources/static/district/js/sy_mobile.js

@@ -64,7 +64,7 @@ $(function () {
     $.ajax({
         type: 'GET',
         url: PATH + '/mapdata/getMapDataAll',
-		// url: "http://192.168.1.253:7777/mapdata/getMapDataAll",
+		// url: "http://192.168.0.230:7777/mapdata/getMapDataAll",
         async: false,
         success: function (res) {
             $.each(res.data.xxs, function(i){
@@ -2085,24 +2085,107 @@ $(function () {
     localStorage.setItem("lineText",resultObject);
     localStorage.setItem("discern", 0);
     // 点击头部的公交的搜索按钮在左边出现结果
-    $('.inp-icon2').click(function(){
-		map.clearOverlays();
+    $('.inp-icon2').click(async function(){
         var startZD = $('#gj-one').val();
         var endZD = $('#gj-two').val();
+        var startPoint,endPoint;
         if (startZD == '' || endZD == ''){
             $('.top_search').show().siblings('.right-map').show().css('top','0px').siblings('.right-search').css('top',msHeight);
             $('.show-first').show().siblings().hide();
             $('#result').empty();
+            localStorage.setItem('discern','0');
             map.centerAndZoom(new BMap.Point(106.563, 29.523), 14);
             localStorage.setItem('discern','0');
             layer.msg('请输入起点或终点!');
         }else{
-            var url = 'http://api.map.baidu.com/direction?origin='+startZD+'&destination='+endZD+'&mode=transit&region=重庆&output=html&src=webapp.baidu.openAPIdemo'
-            window.location.href = url
+            await new Promise((resolve, reject) => {
+                myGeo.getPoint(startZD, function(point) {
+                    if (point) {
+                        startPoint = new BMap.Point(point.lng, point.lat);
+                        resolve();
+                    }
+                }, "重庆市");
+            });
+            await new Promise((resolve, reject) => {
+                myGeo.getPoint(endZD, function(point) {
+                    if (point) {
+                        endPoint = new BMap.Point(point.lng, point.lat);
+                        resolve();
+                    }
+                }, "重庆市");
+            });
+            layui.use('layer', function(){
+                var $ = layui.jquery, layer = layui.layer;
+                layer.open({
+                    title: false
+                    ,content: false
+                    ,id: 'layerchoicebaidugaode'
+                    ,btn: ['百度地图导航','高德地图导航']
+                    ,btnAlign: 'c'
+                    ,yes: function(){
+                        var baiduConfig = {
+                            scheme_Android: 'bdapp://map/direction?origin='+startZD+'&destination='+endZD+'&mode=transit&region=重庆&output=html&src=webapp.baidu.openAPIdemo',
+                            scheme_IOS: 'baidumap://map/direction?origin='+startZD+'&destination='+endZD+'&mode=transit&region=重庆&output=html&src=webapp.baidu.openAPIdemo',
+                            scheme_web: 'http://api.map.baidu.com/direction?origin='+startZD+'&destination='+endZD+'&mode=transit&region=重庆&output=html&src=webapp.baidu.openAPIdemo'
+                        };
+                        var timeout = 600;
+                        // 判断操作系统,返回百度的不同操作系统下的接口
+                        function adjustOS(){
+                            var ua = window.navigator.userAgent.toLowerCase();
+                            return (ua.indexOf('os') > 0) ? baiduConfig.scheme_IOS : baiduConfig.scheme_Android
+                        }
+                        var startTime = Date.now();
+                        var ifr = document.createElement('iframe');
+                        ifr.src = adjustOS();
+                        ifr.style.display = 'none';
+                        document.body.appendChild(ifr);
+                        var t = setTimeout(function() {
+                            var endTime = Date.now();
+                            if (!startTime || endTime - startTime < timeout + 200) {
+                                window.location.href = baiduConfig.scheme_web;
+                            }
+                        }, timeout);
+                        window.onblur = function() {
+                            clearTimeout(t);
+                        }
+                    }
+                    ,btn2: function(){
+                        var baiduConfig = {
+                            scheme_Android: 'androidamap://route/plan/?sourceApplication=appname&sid=&slat='+startPoint.lat+'&slon='+startPoint.lng+'&sname='+startZD+'&did=&dlat='+endPoint.lat+'&dlon='+endPoint.lng+'&dname='+endZD+'&dev=0&t=1',
+                            scheme_IOS: 'iosamap://path?sourceApplication=applicationName&sid=&slat='+startPoint.lat+'&slon='+startPoint.lng+'&sname='+startZD+'&did=&dlat='+endPoint.lat+'&dlon='+endPoint.lng+'&dname='+endZD+'&dev=0&t=1',
+                            scheme_web: 'https://uri.amap.com/navigation?from='+startPoint.lng+','+startPoint.lat+','+startZD+'&to='+endPoint.lng+','+endPoint.lat+','+endZD+'&mode=bus&callnative=1&coordinate=wgs84&src=mypage'
+                        };
+                        var timeout = 600;
+                        // 判断操作系统,返回百度的不同操作系统下的接口
+                        function adjustOS(){
+                            var ua = window.navigator.userAgent.toLowerCase();
+                            return (ua.indexOf('os') > 0) ? baiduConfig.scheme_IOS : baiduConfig.scheme_Android
+                        }
+                        var startTime = Date.now();
+                        var ifr = document.createElement('iframe');
+                        ifr.src = adjustOS();
+                        ifr.style.display = 'none';
+                        document.body.appendChild(ifr);
+                        var t = setTimeout(function() {
+                            var endTime = Date.now();
+                            if (!startTime || endTime - startTime < timeout + 200) {
+                                window.location.href = baiduConfig.scheme_web;
+                            }
+                        }, timeout);
+                        window.onblur = function() {
+                            clearTimeout(t);
+                        }
+                        return false
+                    }
+                });
+            })
         }
 	});
+    
+
     $('#gj-one').bind('keyup',function(event) {
         var startZD = $('#gj-one').val();
+        map.clearOverlays();
 		if(event.keyCode==13){
 			if (startZD == '') {
 				$('.top_search').show().siblings('.right-map').show();
@@ -2110,14 +2193,13 @@ $(function () {
                 $('.right-search').css('top',msHeight);
                 localStorage.setItem('discern','0');
 				map.centerAndZoom(new BMap.Point(106.563, 29.523), 14);
-			    layer.msg('请输入起点!');
+                layer.msg('请输入起点!');
 			} else {
                 $('#gj-two').focus();
             }
 		}
 	});
-	$('#gj-two').bind('keyup',function(event) {
-        map.clearOverlays();
+	$('#gj-two').bind('keyup',async function(event) {
         var startZD = $('#gj-one').val();
         var endZD = $('#gj-two').val();
 		if(event.keyCode==13){
@@ -2136,8 +2218,87 @@ $(function () {
 				map.centerAndZoom(new BMap.Point(106.563, 29.523), 14);
 				layer.msg('请输入终点!');
 			} else {
-                var url = 'http://api.map.baidu.com/direction?origin='+startZD+'&destination='+endZD+'&mode=transit&region=重庆&output=html&src=webapp.baidu.openAPIdemo'
-                window.location.href = url
+                await new Promise((resolve, reject) => {
+                    myGeo.getPoint(startZD, function(point) {
+                        if (point) {
+                            startPoint = new BMap.Point(point.lng, point.lat);
+                            resolve();
+                        }
+                    }, "重庆市");
+                });
+                await new Promise((resolve, reject) => {
+                    myGeo.getPoint(endZD, function(point) {
+                        if (point) {
+                            endPoint = new BMap.Point(point.lng, point.lat);
+                            resolve();
+                        }
+                    }, "重庆市");
+                });
+                layui.use('layer', function(){
+                    var $ = layui.jquery, layer = layui.layer;
+                    layer.open({
+                        title: false
+                        ,content: false
+                        ,id: 'layerchoicebaidugaode'
+                        ,btn: ['百度地图导航','高德地图导航']
+                        ,btnAlign: 'c'
+                        ,yes: function(){
+                            var baiduConfig = {
+                                scheme_Android: 'bdapp://map/direction?origin='+startZD+'&destination='+endZD+'&mode=transit&region=重庆&output=html&src=webapp.baidu.openAPIdemo',
+                                scheme_IOS: 'baidumap://map/direction?origin='+startZD+'&destination='+endZD+'&mode=transit&region=重庆&output=html&src=webapp.baidu.openAPIdemo',
+                                scheme_web: 'http://api.map.baidu.com/direction?origin='+startZD+'&destination='+endZD+'&mode=transit&region=重庆&output=html&src=webapp.baidu.openAPIdemo'
+                            };
+                            var timeout = 600;
+                            // 判断操作系统,返回百度的不同操作系统下的接口
+                            function adjustOS(){
+                                var ua = window.navigator.userAgent.toLowerCase();
+                                return (ua.indexOf('os') > 0) ? baiduConfig.scheme_IOS : baiduConfig.scheme_Android
+                            }
+                            var startTime = Date.now();
+                            var ifr = document.createElement('iframe');
+                            ifr.src = adjustOS();
+                            ifr.style.display = 'none';
+                            document.body.appendChild(ifr);
+                            var t = setTimeout(function() {
+                                var endTime = Date.now();
+                                if (!startTime || endTime - startTime < timeout + 200) {
+                                    window.location.href = baiduConfig.scheme_web;
+                                }
+                            }, timeout);
+                            window.onblur = function() {
+                                clearTimeout(t);
+                            }
+                        }
+                        ,btn2: function(){
+                            var baiduConfig = {
+                                scheme_Android: 'androidamap://route/plan/?sourceApplication=appname&sid=&slat='+startPoint.lat+'&slon='+startPoint.lng+'&sname='+startZD+'&did=&dlat='+endPoint.lat+'&dlon='+endPoint.lng+'&dname='+endZD+'&dev=0&t=1',
+                                scheme_IOS: 'iosamap://path?sourceApplication=applicationName&sid=&slat='+startPoint.lat+'&slon='+startPoint.lng+'&sname='+startZD+'&did=&dlat='+endPoint.lat+'&dlon='+endPoint.lng+'&dname='+endZD+'&dev=0&t=1',
+                                scheme_web: 'https://uri.amap.com/navigation?from='+startPoint.lng+','+startPoint.lat+','+startZD+'&to='+endPoint.lng+','+endPoint.lat+','+endZD+'&mode=bus&callnative=1&coordinate=wgs84&src=mypage'
+                            };
+                            var timeout = 600;
+                            // 判断操作系统,返回百度的不同操作系统下的接口
+                            function adjustOS(){
+                                var ua = window.navigator.userAgent.toLowerCase();
+                                return (ua.indexOf('os') > 0) ? baiduConfig.scheme_IOS : baiduConfig.scheme_Android
+                            }
+                            var startTime = Date.now();
+                            var ifr = document.createElement('iframe');
+                            ifr.src = adjustOS();
+                            ifr.style.display = 'none';
+                            document.body.appendChild(ifr);
+                            var t = setTimeout(function() {
+                                var endTime = Date.now();
+                                if (!startTime || endTime - startTime < timeout + 200) {
+                                    window.location.href = baiduConfig.scheme_web;
+                                }
+                            }, timeout);
+                            window.onblur = function() {
+                                clearTimeout(t);
+                            }
+                            return false
+                        }
+                    });
+                });
             }
             document.activeElement.blur();  // 关闭软键盘
 		}
@@ -2340,8 +2501,7 @@ $(function () {
     }
 
     // 点击头部的自驾的搜索按钮在左边出现结果
-    $('.inp-icon3').click(function() {
-        map.clearOverlays();
+    $('.inp-icon3').click(async function() {
         var startZD = $("#zj-one").val();
         var endZD = $("#zj-two").val();
         if (startZD == '' || endZD == '') {
@@ -2352,13 +2512,88 @@ $(function () {
             localStorage.setItem('discern','0');
             map.centerAndZoom(new BMap.Point(106.563, 29.523), 14);
             layer.msg('请输入起点或终点!');
-            var gjobj = JSON.stringify(['','']);
-            localStorage.setItem("line",gjobj);
-            var objgj = JSON.stringify(['','']);
-            localStorage.setItem("lineText",objgj);
         } else {
-            var url = 'http://api.map.baidu.com/direction?origin='+startZD+'&destination='+endZD+'&mode=driving&region=重庆&output=html&src=webapp.baidu.openAPIdemo'
-            window.location.href = url
+            await new Promise((resolve, reject) => {
+                myGeo.getPoint(startZD, function(point) {
+                    if (point) {
+                        startPoint = new BMap.Point(point.lng, point.lat);
+                        resolve();
+                    }
+                }, "重庆市");
+            });
+            await new Promise((resolve, reject) => {
+                myGeo.getPoint(endZD, function(point) {
+                    if (point) {
+                        endPoint = new BMap.Point(point.lng, point.lat);
+                        resolve();
+                    }
+                }, "重庆市");
+            });
+            layui.use('layer', function(){
+                var $ = layui.jquery, layer = layui.layer;
+                layer.open({
+                    title: false
+                    ,content: false
+                    ,id: 'layerchoicebaidugaode'
+                    ,btn: ['百度地图导航','高德地图导航']
+                    ,btnAlign: 'c'
+                    ,yes: function(){
+                        var baiduConfig = {
+                            scheme_Android: 'bdapp://map/direction?origin='+startZD+'&destination='+endZD+'&mode=driving&region=重庆&output=html&src=webapp.baidu.openAPIdemo',
+                            scheme_IOS: 'baidumap://map/direction?origin='+startZD+'&destination='+endZD+'&mode=driving&region=重庆&output=html&src=webapp.baidu.openAPIdemo',
+                            scheme_web: 'http://api.map.baidu.com/direction?origin='+startZD+'&destination='+endZD+'&mode=driving&region=重庆&output=html&src=webapp.baidu.openAPIdemo'
+                        };
+                        var timeout = 600;
+                        // 判断操作系统,返回百度的不同操作系统下的接口
+                        function adjustOS(){
+                            var ua = window.navigator.userAgent.toLowerCase();
+                            return (ua.indexOf('os') > 0) ? baiduConfig.scheme_IOS : baiduConfig.scheme_Android
+                        }
+                        var startTime = Date.now();
+                        var ifr = document.createElement('iframe');
+                        ifr.src = adjustOS();
+                        ifr.style.display = 'none';
+                        document.body.appendChild(ifr);
+                        var t = setTimeout(function() {
+                            var endTime = Date.now();
+                            if (!startTime || endTime - startTime < timeout + 200) {
+                                window.location.href = baiduConfig.scheme_web;
+                            }
+                        }, timeout);
+                        window.onblur = function() {
+                            clearTimeout(t);
+                        }
+                    }
+                    ,btn2: function(){
+                        var baiduConfig = {
+                            scheme_Android: 'androidamap://route/plan/?sourceApplication=appname&sid=&slat='+startPoint.lat+'&slon='+startPoint.lng+'&sname='+startZD+'&did=&dlat='+endPoint.lat+'&dlon='+endPoint.lng+'&dname='+endZD+'&dev=0&t=0',
+                            scheme_IOS: 'iosamap://path?sourceApplication=applicationName&sid=&slat='+startPoint.lat+'&slon='+startPoint.lng+'&sname='+startZD+'&did=&dlat='+endPoint.lat+'&dlon='+endPoint.lng+'&dname='+endZD+'&dev=0&t=0',
+                            scheme_web: 'https://uri.amap.com/navigation?from='+startPoint.lng+','+startPoint.lat+','+startZD+'&to='+endPoint.lng+','+endPoint.lat+','+endZD+'&mode=car&callnative=1&coordinate=wgs84&src=mypage'
+                        };
+                        var timeout = 600;
+                        // 判断操作系统,返回百度的不同操作系统下的接口
+                        function adjustOS(){
+                            var ua = window.navigator.userAgent.toLowerCase();
+                            return (ua.indexOf('os') > 0) ? baiduConfig.scheme_IOS : baiduConfig.scheme_Android
+                        }
+                        var startTime = Date.now();
+                        var ifr = document.createElement('iframe');
+                        ifr.src = adjustOS();
+                        ifr.style.display = 'none';
+                        document.body.appendChild(ifr);
+                        var t = setTimeout(function() {
+                            var endTime = Date.now();
+                            if (!startTime || endTime - startTime < timeout + 200) {
+                                window.location.href = baiduConfig.scheme_web;
+                            }
+                        }, timeout);
+                        window.onblur = function() {
+                            clearTimeout(t);
+                        }
+                        return false
+                    }
+                });
+            });
         }
     });
     $('#zj-one').bind('keyup',function(event) {
@@ -2376,7 +2611,7 @@ $(function () {
             }
         }
     });
-    $('#zj-two').bind('keyup',function(event) {
+    $('#zj-two').bind('keyup',async function(event) {
         var startZD = $("#zj-one").val();
         var endZD = $("#zj-two").val();
         if(event.keyCode==13){
@@ -2395,8 +2630,87 @@ $(function () {
                 layer.msg('请输入终点!');
                 map.centerAndZoom(new BMap.Point(106.563, 29.523), 14);
             } else {
-                var url = 'http://api.map.baidu.com/direction?origin='+startZD+'&destination='+endZD+'&mode=driving&region=重庆&output=html&src=webapp.baidu.openAPIdemo'
-                window.location.href = url
+                await new Promise((resolve, reject) => {
+                    myGeo.getPoint(startZD, function(point) {
+                        if (point) {
+                            startPoint = new BMap.Point(point.lng, point.lat);
+                            resolve();
+                        }
+                    }, "重庆市");
+                });
+                await new Promise((resolve, reject) => {
+                    myGeo.getPoint(endZD, function(point) {
+                        if (point) {
+                            endPoint = new BMap.Point(point.lng, point.lat);
+                            resolve();
+                        }
+                    }, "重庆市");
+                });
+                layui.use('layer', function(){
+                    var $ = layui.jquery, layer = layui.layer;
+                    layer.open({
+                        title: false
+                        ,content: false
+                        ,id: 'layerchoicebaidugaode'
+                        ,btn: ['百度地图导航','高德地图导航']
+                        ,btnAlign: 'c'
+                        ,yes: function(){
+                            var baiduConfig = {
+                                scheme_Android: 'bdapp://map/direction?origin='+startZD+'&destination='+endZD+'&mode=driving&region=重庆&output=html&src=webapp.baidu.openAPIdemo',
+                                scheme_IOS: 'baidumap://map/direction?origin='+startZD+'&destination='+endZD+'&mode=driving&region=重庆&output=html&src=webapp.baidu.openAPIdemo',
+                                scheme_web: 'http://api.map.baidu.com/direction?origin='+startZD+'&destination='+endZD+'&mode=driving&region=重庆&output=html&src=webapp.baidu.openAPIdemo'
+                            };
+                            var timeout = 600;
+                            // 判断操作系统,返回百度的不同操作系统下的接口
+                            function adjustOS(){
+                                var ua = window.navigator.userAgent.toLowerCase();
+                                return (ua.indexOf('os') > 0) ? baiduConfig.scheme_IOS : baiduConfig.scheme_Android
+                            }
+                            var startTime = Date.now();
+                            var ifr = document.createElement('iframe');
+                            ifr.src = adjustOS();
+                            ifr.style.display = 'none';
+                            document.body.appendChild(ifr);
+                            var t = setTimeout(function() {
+                                var endTime = Date.now();
+                                if (!startTime || endTime - startTime < timeout + 200) {
+                                    window.location.href = baiduConfig.scheme_web;
+                                }
+                            }, timeout);
+                            window.onblur = function() {
+                                clearTimeout(t);
+                            }
+                        }
+                        ,btn2: function(){
+                            var baiduConfig = {
+                                scheme_Android: 'androidamap://route/plan/?sourceApplication=appname&sid=&slat='+startPoint.lat+'&slon='+startPoint.lng+'&sname='+startZD+'&did=&dlat='+endPoint.lat+'&dlon='+endPoint.lng+'&dname='+endZD+'&dev=0&t=0',
+                                scheme_IOS: 'iosamap://path?sourceApplication=applicationName&sid=&slat='+startPoint.lat+'&slon='+startPoint.lng+'&sname='+startZD+'&did=&dlat='+endPoint.lat+'&dlon='+endPoint.lng+'&dname='+endZD+'&dev=0&t=0',
+                                scheme_web: 'https://uri.amap.com/navigation?from='+startPoint.lng+','+startPoint.lat+','+startZD+'&to='+endPoint.lng+','+endPoint.lat+','+endZD+'&mode=car&callnative=1&coordinate=wgs84&src=mypage'
+                            };
+                            var timeout = 600;
+                            // 判断操作系统,返回百度的不同操作系统下的接口
+                            function adjustOS(){
+                                var ua = window.navigator.userAgent.toLowerCase();
+                                return (ua.indexOf('os') > 0) ? baiduConfig.scheme_IOS : baiduConfig.scheme_Android
+                            }
+                            var startTime = Date.now();
+                            var ifr = document.createElement('iframe');
+                            ifr.src = adjustOS();
+                            ifr.style.display = 'none';
+                            document.body.appendChild(ifr);
+                            var t = setTimeout(function() {
+                                var endTime = Date.now();
+                                if (!startTime || endTime - startTime < timeout + 200) {
+                                    window.location.href = baiduConfig.scheme_web;
+                                }
+                            }, timeout);
+                            window.onblur = function() {
+                                clearTimeout(t);
+                            }
+                            return false
+                        }
+                    });
+                });
             }
             document.activeElement.blur();  // 关闭软键盘
         }