2012-05-17 54 views
1

如何在谷歌地圖的兩點範圍之間進行選擇。 EX:50米或100米如何在谷歌地圖的兩點範圍之間進行選擇

我使用此代碼來計算距離。

public class DistanceCalculator { 

     public static final double Radius = 6378.1; 

     public double CalculationByDistance(GeoPoint startp, GeoPoint endp) { 
      double lat1 = startp.getLatitudeE6()/1E6; 
      double lat2 = endp.getLatitudeE6()/1E6; 
      double lon1 = startp.getLongitudeE6()/1E6; 
      double lon2 = endp.getLongitudeE6()/1E6; 
      double dLat = Math.toRadians(lat2-lat1); 
      double dLon = Math.toRadians(lon2-lon1); 
      double a = Math.sin(dLat/2) * Math.sin(dLat/2) + 
      Math.cos(Math.toRadians(lat1)) * Math.cos(Math.toRadians(lat2)) * 
      Math.sin(dLon/2) * Math.sin(dLon/2); 
      double c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a)); 
      return Radius * c; 

     } 
    } 
+0

你想做什麼,請問你具體嗎? –

回答

0

MapViewController有一個名爲zoomToSpan(int,int)的方法。所以你需要做的就是找到兩點的中心點,然後放大它們之間的距離。下面是文檔:使緯度和經度的給定區域將 顯示

public void zoomToSpan(int latSpanE6,int lonSpanE6) 

嘗試調整地圖的縮放。由於縮放只能達到離散級別,並且由於地圖的縱橫比可能與給定比例不匹配,因此擬合質量可能會有所不同。我們唯一保證的是,在縮放之後,新緯度或新經度 中的至少一個將在相應參數的2倍的範圍內。

0

您可以嘗試計算使用Latittudes和經度轉換度數距離(例如從1度到海里)。

相關問題