如何根据图片大小计算leaflet imageBounds的初始值
要根据图片大小计算leaflet imageBounds的初始值,需要知道图片的实际像素大小和地理坐标范围。假设图片的实际像素大小为width和height,地理坐标范围为[minlon, minlat, maxlon, maxlat],则可以按照如下方式计算初始值:
-
计算图片左上角和右下角的像素坐标,假设左上角为[0,0]点,右下角为[width, height]点。
-
将左上角和右下角的像素坐标转化为地理坐标,即将像素坐标映射到地理坐标系上。假设地图投影为EPSG:4326,则可以使用leaflet的map.unproject()方法将像素坐标转化为地理坐标:
var topLeft = map.unproject([0, 0], map.getMaxZoom()); var bottomRight = map.unproject([width, height], map.getMaxZoom()); -
将左上角和右下角的地理坐标组成一个数组,作为imageBounds的初始值:
var imageBounds = [topLeft.lat, topLeft.lng, bottomRight.lat, bottomRight.lng];
这样就可以根据图片的大小和地理坐标范围计算出leaflet imageBounds的初始值了。
原文地址: https://www.cveoy.top/t/topic/bro8 著作权归作者所有。请勿转载和采集!