좌표 및 토르 : 좌표 변환

VAR의 lonlat = {X : 114.514864 및 : 38.04232};
VAR의 토르 = {X : 12747736.346966475하고 : 4585405.935084799};

//经纬度转墨卡托
lonlat2mercator 함수 (lonlat) {
var에 토르 = {X : 0, Y : 0};
VAR X = lonlat.x * 20037508.34 / 180;
VAR의 Y = Math.log (Math.tan ((90 + lonlat.y) * 인 Math.PI / 360)) / (인 Math.PI / 180);
Y = Y * 20037508.34 / 180;
mercator.x = X;
mercator.y = Y;
메르카토르 반환;
}

//墨卡托转经纬度
함수 mercator2lonlat (토르) {
var에 lonlat = {X : 0, Y : 0};
VAR X = mercator.x / 20037508.34 * 180;
VAR의 Y = mercator.y / 20037508.34 * 180;
Y = 180 / Math.PI로 * (2 * ATAN (math.exp (Y * 인 Math.PI / 180)) - 인 Math.PI / 2);
lonlat.x = X;
lonlat.y = Y;
반환 lonlat;

}

 

// 차례의 위도와 경도 메르카토르

DX = sGeometry.x의 VAR / * 180 20,037,508.34,
VAR의 Dy = sGeometry.y / * 180 20,037,508.34;
VAR = M_PI 인 Math.PI;
의 Dy = 180 / M_PI * (2 * Math.atan (Math.exp (Dy를 M_PI에 * / 180)) - M_PI / 2)
// X는 지리적 좌표이다 122.10626710683903
// Y는 지리적 좌표에서이다 37.48735577057014
; @ X = DX
// Y = Dy를,
VAR의 CPOINT 새로운 새 esri.geometry.Point = ();
CPOINT DX = .x와;
cPoint.y = Dy를;
CONSOLE.LOG (CPOINT)
map.centerAt (CPOINT);

추천

출처www.cnblogs.com/rzqy/p/11118422.html