|
@@ -2,15 +2,16 @@ import { LatLng, Point } from 'leaflet';
|
|
|
import MyMap from '../Map';
|
|
|
|
|
|
export default class MapUtil {
|
|
|
+ static map;
|
|
|
/**
|
|
|
* 给定地理坐标,转换为相对于origin pixel的相应像素坐标。(在地图上进行位置叠加时比较有用)
|
|
|
* @param {{lat: number, lng: number}} latlng - 经纬度
|
|
|
* @returns {{x:number, y:number}} - 像素点坐标
|
|
|
*/
|
|
|
static latLngToLayerPoint(latlng){
|
|
|
- if(!MyMap.map){ console.error("请先初始化地图!"); return; }
|
|
|
+ if(!MapUtil.map){ console.error("请先初始化地图!"); return; }
|
|
|
let ll = new LatLng(latlng.lat, latlng.lng);
|
|
|
- let p = MyMap.map.latLngToLayerPoint(ll);
|
|
|
+ let p = MapUtil.map.latLngToLayerPoint(ll);
|
|
|
return {x: p.x, y: p.y};
|
|
|
}
|
|
|
|
|
@@ -20,9 +21,9 @@ export default class MapUtil {
|
|
|
* @returns {{lat: number, lng: number}} - 经纬度
|
|
|
*/
|
|
|
static layerPointToLatLng(point){
|
|
|
- if(!MyMap.map){ console.error("请先初始化地图!"); return; }
|
|
|
+ if(!MapUtil.map){ console.error("请先初始化地图!"); return; }
|
|
|
let p = new Point(point.x, point.y);
|
|
|
- let ll = MyMap.map.layerPointToLatLng(p);
|
|
|
+ let ll = MapUtil.map.layerPointToLatLng(p);
|
|
|
return {lat: ll.lat, lng: ll.lng};
|
|
|
}
|
|
|
|
|
@@ -32,9 +33,9 @@ export default class MapUtil {
|
|
|
* @returns {{x:number, y:number}} - 像素点坐标
|
|
|
*/
|
|
|
static latLngToContainerPoint(latlng){
|
|
|
- if(!MyMap.map){ console.error("请先初始化地图!"); return; }
|
|
|
+ if(!MapUtil.map){ console.error("请先初始化地图!"); return; }
|
|
|
let ll = new LatLng(latlng.lat, latlng.lng);
|
|
|
- let p = MyMap.map.latLngToContainerPoint(ll);
|
|
|
+ let p = MapUtil.map.latLngToContainerPoint(ll);
|
|
|
return {x: p.x, y: p.y};
|
|
|
}
|
|
|
|
|
@@ -44,9 +45,9 @@ export default class MapUtil {
|
|
|
* @returns {{lat: number, lng: number}} - 经纬度
|
|
|
*/
|
|
|
static containerPointToLatLng(point){
|
|
|
- if(!MyMap.map){ console.error("请先初始化地图!"); return; }
|
|
|
+ if(!MapUtil.map){ console.error("请先初始化地图!"); return; }
|
|
|
let p = new Point(point.x, point.y);
|
|
|
- let ll = MyMap.map.containerPointToLatLng(p);
|
|
|
+ let ll = MapUtil.map.containerPointToLatLng(p);
|
|
|
return {lat: ll.lat, lng: ll.lng};
|
|
|
}
|
|
|
|
|
@@ -57,8 +58,8 @@ export default class MapUtil {
|
|
|
* @returns {{x:number, y:number}} - 像素点坐标
|
|
|
*/
|
|
|
static project(latlng, zoom){
|
|
|
- if(!MyMap.map){ console.error("请先初始化地图!"); return; }
|
|
|
- let p = MyMap.map.project(latlng, zoom);
|
|
|
+ if(!MapUtil.map){ console.error("请先初始化地图!"); return; }
|
|
|
+ let p = MapUtil.map.project(latlng, zoom);
|
|
|
return {x: p.x, y: p.y};
|
|
|
}
|
|
|
|
|
@@ -69,8 +70,8 @@ export default class MapUtil {
|
|
|
* @returns {{lat: number, lng: number}} - 经纬度
|
|
|
*/
|
|
|
static unproject(point, zoom){
|
|
|
- if(!MyMap.map){ console.error("请先初始化地图!"); return; }
|
|
|
- let ll = MyMap.map.unproject(point, zoom);
|
|
|
+ if(!MapUtil.map){ console.error("请先初始化地图!"); return; }
|
|
|
+ let ll = MapUtil.map.unproject(point, zoom);
|
|
|
return {lat: ll.lat, lng: ll.lng};
|
|
|
}
|
|
|
|
|
@@ -81,8 +82,8 @@ export default class MapUtil {
|
|
|
* @returns {number} - 比例因子
|
|
|
*/
|
|
|
static scale(toZoom, fromZoom){
|
|
|
- if(!MyMap.map){ console.error("请先初始化地图!"); return; }
|
|
|
- return MyMap.map.getZoomScale(toZoom, fromZoom);
|
|
|
+ if(!MapUtil.map){ console.error("请先初始化地图!"); return; }
|
|
|
+ return MapUtil.map.getZoomScale(toZoom, fromZoom);
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -92,8 +93,8 @@ export default class MapUtil {
|
|
|
* @returns {number} - 缩放级别
|
|
|
*/
|
|
|
static zoom(scale, fromZoom){
|
|
|
- if(!MyMap.map){ console.error("请先初始化地图!"); return; }
|
|
|
- return MyMap.map.getScaleZoom(scale, fromZoom);
|
|
|
+ if(!MapUtil.map){ console.error("请先初始化地图!"); return; }
|
|
|
+ return MapUtil.map.getScaleZoom(scale, fromZoom);
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -103,11 +104,11 @@ export default class MapUtil {
|
|
|
* @returns {number} - 距离(单位:米)
|
|
|
*/
|
|
|
static distance(latlng1, latlng2){
|
|
|
- if(!MyMap.map){ console.error("请先初始化地图!"); return; }
|
|
|
+ if(!MapUtil.map){ console.error("请先初始化地图!"); return; }
|
|
|
let ll1 = new LatLng(latlng1.lat, latlng1.lng);
|
|
|
let ll2 = new LatLng(latlng2.lat, latlng2.lng);
|
|
|
// let distance = ll1.distanceTo(ll2) / 1000;
|
|
|
- return MyMap.map.distance(ll1, ll2);
|
|
|
+ return MapUtil.map.distance(ll1, ll2);
|
|
|
}
|
|
|
|
|
|
/**
|