openlayers问题记录

124 阅读1分钟

一.getAreagetLength方法有两个配置项,即projection(投影,默认为EPSG:3857)和radius(球体半径,默认使用 WGS84 椭球体的平均地球半径,即6371008.8)。在使用这两个测算方法时,需保证投影与其他图层投影一致。

Snipaste_2024-05-22_14-56-29.png

二.ol-ext库相关

  1. 使用PrintDialog组件时,地图组件使用了外部图层,可能会因跨域导致导出功能报错:

Snipaste_2024-07-12_15-17-06.png 可如此解决:

Snipaste_2024-07-12_15-19-22.png

  1. 使用 Dijkstra 算法计算最短距离时,会默认使用EPSG:3857(Web Mercator)坐标系,如果地图初始化时使用的是EPSG:4326(WGS 84)坐标系,则需要在其计算距离的方法中指定坐标系:

Snipaste_2024-07-12_15-28-00.png

三、在vue项目中,提取自定义hook时定义变量尽量使用ref,以避免一些与地图交互时的隐蔽性bug,如此次遇到的因olselectInteraction使用普通变量保存,致使其无法正确清除,间接导致使用selectInteraction的图层无法清除。