百度地图 解决:坐标点跑到左上角的问题

参考博客:https://blog.csdn.net/u014136910/article/details/79218678

     https://blog.csdn.net/weixin_41612385/article/details/79352085

以下是我参考大神的方式解决问题 

需求:

  在地图模式里面有个可以切换列表和地图模式,在搜索框里面输入地址以后,然后点击地图的时候要展示出相应的点位。

图一                        图二

这个是地图和列表切换的按钮逻辑

问题:

  每次列表都可以正常的查询到数据,但是再切换回地图模式的时候发现点跑到左上角去了。

网上找的出现的问题主要是以下几种:

  1、地图在弹窗里面,会出现此问题。解决方式是先展示再初始化

  2、地图初始化问题,多次加载地图数据导致的问题

  3、地图瓦片加载不完全的导致的问题。可以监听地图加载完以后再去描点居中定位

  4、第四种就是我这种是DIV显示隐藏导致的问题

解决过程:

  1、首先考虑的是地图瓦片的问题。首先去监听地图是否完全加载完,等完全加载完以后我在去根据经纬度去居中,但是发现不起效果

 

2、我先去展示地图,然后再去加载数据进行描点和居中但是还是不行

3、参考大神的思路一针见血的定位到问题所在:

    第一次加载地图的时候是可以正常居中的,但是我点击切换列表的时候地图的DIV是隐藏的,然后再点击地图展示隐藏的DIV的时候就会出现此问题。只要在展示完地图的DIV以后等待一段时间再去描点和居中就好了,如果不等待相当于地图在页面的大小还为0的时候,描点就已经描好了,所以才会在左上角

先去展示地图,然后再等待0.5S的时候再去描点和居中就可以了

原文地址:https://www.cnblogs.com/lkeji388/p/9716910.html