웹에서 대답을 찾았습니다. Google지도는 Mercator 투영법을 사용합니다. 그걸 발견 한 후에는 수학이 쉬워졌습니다. 결정형 줌 레벨에서 픽셀을 latlng로 변환하는 코드가 필요했습니다. 이 사람을 도움이
static final double OFFSET = 268435456;
static final double OFFSET_RADIUS = OFFSET/Math.PI;
static final double MATHPI_180 = Math.PI/180;
static private final double preLonToX1 = OFFSET_RADIUS * (Math.PI/180);
public static double LonToX(double lon) {
return Math.round(OFFSET + preLonToX1 * lon);
}
public static double LatToY(double lat) {
return Math.round(OFFSET - OFFSET_RADIUS * Math.log((1 + Math.sin(lat * MATHPI_180))/(1 - Math.sin(lat * MATHPI_180)))/2);
}
public static double XToLon(double x) {
return ((Math.round(x) - OFFSET)/OFFSET_RADIUS) * 180/Math.PI;
}
public static double YToLat(double y) {
return (Math.PI/2 - 2 * Math.atan(Math.exp((Math.round(y) - OFFSET)/OFFSET_RADIUS))) * 180/Math.PI;
}
public static double adjustLonByPixels(double lon, int delta, int zoom) {
return XToLon(LonToX(lon) + (delta << (21 - zoom)));
}
public static double adjustLatByPixels(double lat, int delta, int zoom) {
return YToLat(LatToY(lat) + (delta << (21 - zoom)));
}
희망 :
이
는 자바 코드입니다.
그러면 현재 뷰포트와 줌 레벨을 얻을 수 있습니다. 인접한지도의 중심을 얻는 방법에 대한 아이디어는 아직 없습니다. –
사용 방법 getCenter – HugoLemos
내가 이미 가지고있는지도의 중심을 얻는 방법을 알고있다. (당신이 제안한대로 getCenter를 사용한다.) 나의 질문은 어떻게 인접한지도의 중심을 얻는가이다. –