目前在做一个产品的大改版,主要是交互方式变化很大,尤其是增加了地图相关交互,类似于滴滴、优步首页。
map.png
开发时遇到的很大的一个问题就是缩放控制,由于界面中同时存在地图及输入覆盖层,在地图上添加标注时需要精确控制标注显示区域,使标注显示范围控制在覆盖层区域上方。
遮盖区域.jpeg
查阅android端相关api后发现缩放控制主要由此类 MapStatusUpdateFactory 间接来完成。
api.png
尝试所有方法后发现百度提供的api不能同时控制地理范围及中心点😓,
MapStatusUpdateFactory.newLatLngBounds(builder.build()) 此方法可控制所有标注显示在以地图中心为中心点的整个地图上,但无法控制中心点位置。
尝试人为构造边界点来控制显示
示例.jpeg
如上图,红色为原始点,紫色为根据当前屏幕未被覆盖区域宽高及经纬度差值比例生成的边界点