1

我想从给定的纬度/经度点推导出纬度/经度,它位于东 x 英寸和南 y 英寸。为此,我使用了以下链接中的信息和公式:http: //www.appelsiini.net/2008/11/introduction-to-marker-clustering-with-google-maps 基本上我的方法执行以下操作:

public static double adjustLongitudeByPixels(double longitude, long pixelsY) {
 int zoom = 21; // use zoom level 21
 double scaledPixels = (pixelsY << (21 - zoom)) / GOOGLE_SCALING_AT_ZOOM_21;
 return xToLongitude(longitudeToX(longitude) + scaledPixels);
}
public static double adjustLatitudeByPixels(int overviewScale, double latitude, long pixelsX) {
 int zoom = 21; // use zoom level 21
 double scaledPixels = (pixelsX << (21 - zoom)) / GOOGLE_SCALING_AT_ZOOM_21;
 return yToLatitude(latitudeToY(latitude) + scaledPixels);
}

...其中经度/纬度是从起点开始的,像素是从起点向东或向南的像素数。我通过将我的实际 x/y 英寸距离乘以 96(每英寸的像素数)来获得像素 X 和像素 Y。所以我基本上以 1:1 的比例获得像素。由于 latitudeToY 和 longitudeToX 使用缩放级别 21 的单位像素,我除以缩放级别 21 的缩放比例。如果我没记错的话,这个缩放比例是 1:282.124305。

但是,这种方法不会产生预期的结果。由此产生的纬度/经度与我的预期略有不同。

如果我的逻辑有缺陷,请告诉我......提前致谢!

4

0 回答 0