| if (this.out_of_china(lng, lat)) { | if (this.out_of_china(lng, lat)) { | ||||
| return [lng, lat] | return [lng, lat] | ||||
| } else { | } 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 | |||||
| } | } | ||||
| } | } | ||||