码迷,mamicode.com
首页 > 其他好文 > 详细

百度地图和谷歌地图的选择

时间:2018-07-24 19:26:02      阅读:142      评论:0      收藏:0      [点我收藏+]

标签:zh-cn   lse   nbsp   异步加载   方法   create   article   形式   tor   

最近手上接到一个需求:

国外的域名访问,显示谷歌地图

国内的域名访问,显示百度地图

切换中英文的时候,中文显示百度地图,英文能显示谷歌地图就显示谷歌地图不能显示就显示百度地图。

 

因此我必须根据场景动态的切换两个地图=>也就是动态的加载两个地图的js

 

首先我们的项目是部署在https上,因此不论我是加载百度地图还是谷歌地图都必须以https的形式;

其次谷歌地图的经纬度的计算需要自己去找网址去查;

再次百度地图的动态加载需要添加callback参数才可以支持;

再其次谷歌地图的动态加载失败事件不走ajax的error方法,经百度浏览器只会选择“静静的失败”;

最后地图的动态加载必须放在onload方法里而不是ready方法里等等

真的是步步维艰。

 

也是在网上查阅了很多资料才慢慢解决。

以下是最终代码:

<script>
    function loadBaiduScript() {
        let script = document.createElement("script");
        script.src = ‘https://api.map.baidu.com/api?v=2.0&ak=qWmCfqDAdPBzy3YoHxGnimKT&s=1&callback=getBaiduMap‘;
        document.body.appendChild(script);
    }

    function getBaiduMap(){
        $.getScript(‘js/map_baidu.js‘)
    }

    function loadGoogleScript(){
        let script = document.createElement("script");
        script.src = ‘https://maps.googleapis.com/maps/api/js?key=AIzaSyA-EyYveZrg9ipdZIcugx9-P4PZWLjxVmw&callback=getGoogleMap‘;
        document.body.appendChild(script);
        script.onerror=function(){
            document.body.removeChild(script);
            loadBaiduScript();
        }
    }

    function getGoogleMap(){
        $.getScript(‘js/map_google.js‘)
    }


    window.onload = function(){
        let lang = navigator.language;
        if(lang=="zh-CN" || lang==‘zh‘){
            loadBaiduScript()
        }else{
            loadGoogleScript()
        }
    };
</script>

  

参考文档:

1.google地图找经纬度
 
2.google地图设置zoom
 
3.google地图设置language
 
4.百度地图的图标不显示
 
5.异步加载百度地图
https://blog.csdn.net/dr_yining/article/details/70475952
 

 

百度地图和谷歌地图的选择

标签:zh-cn   lse   nbsp   异步加载   方法   create   article   形式   tor   

原文地址:https://www.cnblogs.com/artimis/p/9361777.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!