看過的知識不等于學會。唯有用心總結、系統記錄,并通過溫故知新反復實踐,才能真正掌握一二
作為一名摸爬滾打三年的前端開發,開源社區給了我飯碗,我也將所學的知識體系回饋給大家,助你少走彎路!
OpenLayers、Leaflet 快速入門 ,每周保持更新 2 個案例
Cesium 快速入門,每周保持更新 4 個案例
OpenLayers 快速入門(一)Map對象
OpenLayers 快速入門(二)Layer 對象
OpenLayers 快速入門(三)Source 對象補充
OpenLayers 快速入門(四)View 對象
OpenLayers 快速入門(五)Controls 對象
OpenLayers 快速入門(六)Interaction 對象
OpenLayers 快速入門(七)矢量數據
OpenLayers 快速入門(八)事件系統
OpenLayers 快速入門(九)Extent 介紹
OpenLayers 快速入門(十)常用 API 補充
Openlayers 中 extent 介紹
在 OpenLayers 中,extent(范圍)是一個表示地理區域邊界的數組,格式為 [minX, minY, maxX, maxY]。它用于定義地圖的可見區域、圖層范圍、幾何邊界等
模塊導入
導入 ol/extent 模塊
import * as extent from "ol/extent";
createEmpty()
創建一個空范圍([Infinity, Infinity, -Infinity, -Infinity])。
const emptyExtent = extent.createEmpty(); // [Infinity, Infinity, -Infinity, -Infinity]
isEmpty(extent)
檢查范圍是否為空。
extent.isEmpty([1, 2, 3, 4]); // false
getWidth(extent)、getHeight(extent)
計算范圍的寬度和高度。
const width = extent.getWidth([0, 0, 10, 20]); // 10
const height = extent.getHeight([0, 0, 10, 20]); // 20
getCenter(extent)
返回范圍的中心點坐標 [x, y]。
const center = extent.getCenter([0, 0, 10, 10]); // [5, 5]
containsCoordinate(extent, coordinate)
檢查坐標是否在范圍內。
extent.containsCoordinate([0, 0, 10, 10], [5, 5]); // true
containsExtent(extent1, extent2)
檢查 extent1 是否完全包含 extent2。
extent.containsExtent([0, 0, 20, 20], [5, 5, 15, 15]); // true
intersects(extent1, extent2)
判斷兩個范圍是否相交。
extent.intersects([0, 0, 10, 10], [5, 5, 15, 15]); // true
buffer(extent, value)
擴展范圍(負值則縮小)。
const buffered = extent.buffer([0, 0, 10, 10], 2); // [-2,-2,12,12]
getIntersection(extent1, extent2)
返回兩個范圍的交集(無交集時返回 null)。
const intersection = extent.getIntersection([0, 0, 10, 10], [5, 5, 15, 15]); // [5,5,10,10]
boundingExtent(coordinates)
根據坐標數組計算最小包圍范圍:
const coords = [[0, 0],[5, 10],[10, 0],
];
const bbox = extent.boundingExtent(coords); // [0,0,10,10]