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

p.p1 { margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px "PingFang SC" }

最近手上接到一个需求:

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

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

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

因此我必须根据场景动态的切换两个地图=>也就是动态的加载两个地图的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地图找经纬度

http://www.gpsspg.com/maps.htm

2.google地图设置zoom

https://blog.csdn.net/luofeixiongsix/article/details/79096089

3.google地图设置language

https://malagis.com/google-maps-js-map-display-language.html

4.百度地图的图标不显示

有效url为:http://map.baidu.com/image/us_mk_icon.png

5.异步加载百度地图

https://blog.csdn.net/dr_yining/article/details/70475952

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

时间: 2024-07-29 13:50:59

百度地图和谷歌地图的选择的相关文章

百度地图和谷歌地图使用的地理位置坐标标准以及转换

最近在使用百度地图和谷歌地图搜集和处理数据,发现百度和谷歌地图使用的地理位置坐标标准有很大的不同.首先,百度地图的卫星地图和街道地图使用的都是BD-09标准,该标准是在中国国测局地理坐标标准GCJ-02的基础上加密生成.谷歌卫星地图在中国和世界上使用的都是WGS-84标准,但是谷歌街道地图在中国使用的是GCJ-02标准,在世界上其他国家使用的依然是WGS-84标准.在中国之所以使用GCJ-02标准,是因为相关国家的规定要求中国境内的电子地图必须使用原始坐标加密后的GCJ-02标准,以保护国家的地

在vue2中使用百度或者谷歌地图

在vue项目的开发过程中,我们会需要用到地图显示功能,那么如何在vue项目中引用百度地图或者谷歌地图呢?下面是我自己在开发过程中的引用方式,如果有更好的方式,欢迎提出. 一.在index.html文件的头部引入地图 其中src是引入地图的url,ak是你在地图官网申请的开发者公钥 二.在webpack.base.conf.js文件中的module.exports添加配置 externals:{ 'BMap': 'BMap' } 三.执行npm install 四.在需要地图的组件内import

百度地图、高德地图的数据从哪里得到的?[声明我只是此文章的搬运工,从百度知道复制来的]

要说数据来源,首先得对地图数据做一个分类,因为不同分类的数据,其来源,采集方法都是有大不同的. 要明白地图的数据分类,必须先理解一个概念,就是地图图层的概念: 如上图,电子地图对我们实际空间的表达,事实上是通过不同的图层去描述,然后通过图层叠加显示来进行表达的过程. 对于我们地图应用目标的不同,叠加的图层也是不同的,用以展示我们针对目标所需要信息内容. 其次呢,我引入一下矢量模型和栅格模型的概念,GIS(电子地图)采用两种不同的数学模型来对现实世界进行模拟: 矢量模型:同多X,Y(或者X,Y,Z

百度地图、高德地图的数据从哪里得到的?

要说数据来源,首先得对地图数据做一个分类,因为不同分类的数据,其来源,采集方法都是有大不同的. 要明白地图的数据分类,必须先理解一个概念,就是地图图层的概念:        如上图,电子地图对我们实际空间的表达,事实上是通过不同的图层去描述,然后通过图层叠加显示来进行表达的过程. 对于我们地图应用目标的不同,叠加的图层也是不同的,用以展示我们针对目标所需要信息内容. 其次呢,我引入一下矢量模型和栅格模型的概念,GIS(电子地图)采用两种不同的数学模型来对现实世界进行模拟: 矢量模型:同多X,Y(

谷歌地图聚合点

我们有时候需要观察地图 不同地方数据的所在范围和分布密集情况,热力图和聚合点的使用无疑是最好的选择. 1.首先说说百度地图,只做国内的地图可以使用百度地图的海量点和热力图还是蛮好用的. a.海量点的最大好处是加载很多数据点的情况下不卡顿. b.如果是画mark在地图上,当点多的时候,会很卡. c.我之所以用谷歌地图的热力图,是因为我发现百度地图的热力图没有叠加功能,满足不了我的需求.比如说我想了解全国姓张,李,王的人的对比分布,我想要姓张的区域显示红色,姓李的显示蓝色,姓王的显示橙色.这个需求百

C#版谷歌地图下载器设计与实现

关于如何将地球经纬度坐标系统转换成程序中常用到的平面2D坐标系统,网上的文章很多,参考http://www.cnblogs.com/beniao/archive/2010/04/18/1714544.html(本文图1 图3来自此处).谷歌地图采用的投影方式为"墨卡托投影法"(维基百科网址http://en.wikipedia.org/wiki/Mercator_projection),大概意思就是将地球放在一个圆柱中,让地球赤道和圆柱壁相接触,在地球中心放一盏灯,地球上的图像在圆柱壁

Odoo Website 替换 谷歌地图为 百度地图

由于众所周知的原因,国内使用谷歌地图是件非常痛苦的事,更为接地气的做法是替换为百度地图. 模块地址参见群公告.

百度与谷歌地图瓦片组织方式对比

转自http://www.cnblogs.com/janehlp/archive/2012/08/27/2658106.html 百度是从中心点经纬度(0,0)度开始计算瓦片,在第1级时百度将世界地图分为4块. 中心点右上部分(中国地区)占1块. 谷歌是从左上角经纬度(-180,90)度开始计算瓦片,在第1级时谷歌将世界地图分为1块. 在第2级时,百度地图(中心点右上部分)分为2块, 这是因为在这级百度的地图分辨率为65536米/像素,分辨率=math.pow(2,(18 - n)). WGS8

【转】Android 国内集成使用谷歌地图

由于众做周知的原因在国内使用谷歌地图不太方便,在开发中如果直接使用会出现些问题.但国内的如百度地图,高德地图等都无法提供详细的国外地图数据,所以研究一下喽,,, 使用 Google Maps Android API v2 使用谷歌提供的SDK,Android Studio开发. 首先保证SDK Manager中 Google Play service服务已经安装.  2.新建一个工程GoogleMapDemo,然后File ->Project Structure->[app]->->