美文网首页
同页面创建两个百度地图实例显示不正常

同页面创建两个百度地图实例显示不正常

作者: PhilicX | 来源:发表于2017-03-21 17:45 被阅读113次

最近在做毕设项目,要搭一个网站(体力活,没什么技术含量),其中有几个页面需要地图显示。考虑到去年暑假玩过两个月的百度地图API,也算半个老司机了,就自然地准备接着用,直到出现了下面的问题。

页面施工第一阶段:


Paste_Image.png

(美滋滋的没什么毛病)

页面施工第二阶段:


Paste_Image.png

此时就出现弹出页面中的地图模块中有空白的情况。

身为半个老司机,我立刻想到了这应该是出了冲突,将主页面的地图部分注释掉后,弹出页面显示正常:


Paste_Image.png

此时我首先怀疑的是变量声明语句出了问题,

    var map = new BMap.Map("allmap", {enableMapClick: false});
    var point = new BMap.Point(116.404, 39.915);
    map.centerAndZoom(point, 15);
    var map = new BMap.Map("modalmap", {enableMapClick: false});
    var point = new BMap.Point(116.404, 39.915);
    map.centerAndZoom(point, 15);

这两段语句虽然放在了不同的函数块下,但是都是用var声明的,让人有理由怀疑我大概是踩中了ES6的坑。
然而我把下面的变量名改掉后,依然没什么用。

跑到百度开发者社区上逛了一圈,发现类似问题还是有不少人反映的:


Paste_Image.png

这个人应该是内部人员,看到发帖日期,感觉心凉了半截:


Paste_Image.png

最后我发现高德导航在这方面做得还是挺不错的:D


Paste_Image.png

The End:
查看页面元素可以发现地图模块被重新划分成了很多<img>标签,大致揣测下其后端应当是将整个地图分块分层做了预渲染,形成很多图片,其API调用就是对这些图片的get请求以及再拼接的过程。而在这些图片被多个实例调用的场景下,百度地图出了bug,而且可能是数据结构级别的缺陷,才难以修复(当然不排除其他原因)。

(还是阿里爸爸牛掰)

相关文章

  • 同页面创建两个百度地图实例显示不正常

    最近在做毕设项目,要搭一个网站(体力活,没什么技术含量),其中有几个页面需要地图显示。考虑到去年暑假玩过两个月的百...

  • Echart百度地图使用

    本文主要叙说了百度地图的两种用法:1 在页面上直接调用百度地图API,显示地图2 使用Echart框架可视化加载百...

  • SEO实战密码解读四

    整合搜索结果 整合搜索是将垂直搜索内容直接混合显示在网页搜索结果页面上,即在百度页面上混排显示图片,视频和地图。 ...

  • 地图map

    在页面中引入地图 首先要注册百度地图的开发者账号然后开始创建密钥 新建一个index.html 然后引用百度地图A...

  • vue异步调用百度地图

    Vue 异步调用百度地图 新建一个map.js 在src/assets创建一个map.js 在你的百度地图页面中调...

  • 在vue中利用ArcGis API for js 创建地图

    今天分享利用arcgis的api,在vue中创建地图实例,并且在地图上显示出来。 先是引入arcgis这个具体可以...

  • 百度地图API之麻点图

    关于百度地图批量上传POI数据并在浏览器显示 step1:百度地图开发者身份,创建应用(应用类别是服务端,不是浏览...

  • 百度地图初始化位置

    下面是一个百度地图初始化位置为根据Ip定位的地址; JSP代码: //百度容器 JS代码 // 创建Map实例 v...

  • Android百度地图开发(七):地图事件监听

    Android百度地图开发(一):概述 Android百度地图开发(二):项目创建 Android百度地图开发(三...

  • Android百度地图开发(四):创建地图

    Android百度地图开发(一):概述 Android百度地图开发(二):项目创建 Android百度地图开发(三...

网友评论

      本文标题:同页面创建两个百度地图实例显示不正常

      本文链接:https://www.haomeiwen.com/subject/sdygnttx.html