Leaflet 地图 设置经纬度坐标系
时间: 2023-10-03 13:09:59 浏览: 313
Leaflet 默认使用 WGS84 坐标系,也就是经纬度坐标系。如果你需要使用不同的坐标系,可以使用 Proj4Leaflet 插件来实现。
首先,你需要引入 Proj4js 库和 Proj4Leaflet 插件:
```html
<!-- 引入 Proj4js 库 -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/proj4js/2.6.1/proj4.js"></script>
<!-- 引入 Proj4Leaflet 插件 -->
<script src="https://cdnjs.cloudflare.com/ajax/libs/proj4leaflet/1.1.0/proj4leaflet.min.js"></script>
```
然后,在创建地图对象时,使用 `crs` 属性指定坐标系:
```javascript
// 定义坐标系
var crs = new L.Proj.CRS(
'EPSG:26910',
'+proj=utm +zone=10 +ellps=GRS80 +datum=NAD83 +units=m +no_defs',
{
origin: [-20048966.10, 30240991.50], // 坐标系原点
resolutions: [
8192, 4096, 2048, 1024, 512, 256, 128, 64, 32, 16, 8, 4, 2, 1, 0.5, 0.25, 0.125, 0.0625
] // 分辨率列表
}
);
// 创建地图对象
var map = L.map('map', {
crs: crs
});
// 添加底图
var baseLayer = L.tileLayer(
'https://server.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer/tile/{z}/{y}/{x}',
{
attribution: 'Esri'
}
).addTo(map);
// 设置地图中心和缩放级别
map.setView([45.5231, -122.6765], 10);
```
在上面的代码中,我们定义了一个 UTM 坐标系(EPSG:26910),并使用 Proj4Leaflet 插件来实现 Leaflet 对这个坐标系的支持。在创建地图对象时,我们将 `crs` 属性设置为这个坐标系,然后在添加底图和设置地图中心和缩放级别时,就可以使用 UTM 坐标系下的经纬度坐标来指定位置了。
需要注意的是,不同的坐标系可能有不同的分辨率列表,你需要根据自己的需求来定义。同时,坐标系的原点也可能有所不同,需要根据实际情况来设置。
阅读全文