經緯度與畫素值間的轉換JAVA
阿新 • • 發佈:2019-01-07
經度到畫素X值 public static double lngToPixel(double lng, int zoom) { return (lng + 180) * (256 * 2^zoom) / 360; } 畫素X到經度 public static double pixelToLng(double pixelX, int zoom) { return pixelX * 360 / (256 * 2^ zoom) - 180; } 緯度到畫素Y public static double latToPixel(double lat, int zoom) { double siny = Math.sin(lat * Math.PI / 180); double y = Math.log((1 + siny) / (1 - siny)); return (128 * z^ zoom) * (1 - y / (2 * Math.PI)); } 畫素Y到緯度 public static double pixelToLat(double pixelY, int zoom) { double y = 2 * Math.PI * (1 - pixelY / (128 * z ^ zoom)); double z = Math.pow(Math.E, y); double siny = (z - 1) / (z + 1); return Math.asin(siny) * 180 / Math.PI; }