| @@ -73,10 +73,18 @@ class CoordTransform { | |||
| if (this.out_of_china(lng, lat)) { | |||
| return [lng, lat] | |||
| } else { | |||
| let d = this.delta(lng, lat) | |||
| let mgLng = lng + d[0] | |||
| let mgLat = lat + d[1] | |||
| return [lng * 2 - mgLng, lat * 2 - mgLat] | |||
| let out = [lng, lat] | |||
| let gcj02_point = this.WGS84ToGCJ02(lng, lat) | |||
| let dlng = gcj02_point[0] - lng | |||
| let dlat = gcj02_point[1] - lat | |||
| do { | |||
| gcj02_point = this.WGS84ToGCJ02((out[0] -= dlng), (out[1] -= dlat)) | |||
| dlng = gcj02_point[0] - lng | |||
| dlat = gcj02_point[1] - lat | |||
| } while (Math.abs(dlng) > 1e-7 || Math.abs(dlat) > 1e-7) | |||
| return out | |||
| } | |||
| } | |||