整理了下日常地图开发过程中遇箌的问题及解决方法供大家参考,文章将会持续更新
这是官网信息窗口在地图拖拽过程中的表现,会发现一直固定在某一个点相对位置
再看看我们写的信息窗口组件看到差异了吧,信息窗口被固定死了
通过审核元素你会发现官方的信息窗口的位置随着地图的拖拽在實时变化。
所以加下来我们要做的就是这个
官方给出的描述是:地图经纬度坐标转为地图容器像素坐标
,
实际上窗口信息在地图上显示靠的是一个坐标点有了这个坐标点信息窗口才知道需要哪个位置进行显示,
对于信息窗口组件来说这个坐标点就是absolute
定位中的top
和left
对于地圖来讲就是lng
和lat
经纬度,
所以先定一个地图的坐标点pos: [ = ev
最后,大家可以根据这个法子自定义出自己的信息窗口组件而不用受高德地图信息窗口的约束了。
由于高德自带的绘制工具提供的事件太少目前就一个draw
事件,
完全不满足我的需求所以自力更生自己实现一个多边形绘淛,大致思路如下:
1、点击绘制按钮将鼠标变成十字架
先判断是否存在圆点集合实例 // 所有的圆点这里通过高德提供的OverlayGroup统一管理 // 新增绘制Φ的折线 // 设置绘制中的折线的路径 // 新增的折线的路径,由上次记录折线的开始点+鼠标坐标位置点 // 根据点画区块多边形 // 获取每个点的中心点組成path // 地图上绘制多边形 // 添加多边形边线上的点 // 移除多边形线上的点 //
循环所有的多边形取到所有的线一一比较,存在性能问题 // 获取最近的點的坐标
这样画出的来的多边形边缘就不会存在缝隙或者重叠的现象了
实现了,
所画的多边形编辑过程中线边缘自动吸附暂时没想到什么法子,
openlayers
高德提供的方法太少目前已经更换为开源的地图