2014-04-01 49 views
0

我試圖找到屏幕上可見的區域。我可以找到屏幕的邊界,但是我無法計算km平方的區域的面積?有沒有可能的計算方法?谷歌地圖v2得到可見區域的類型km廣場

googleMap.setOnCameraChangeListener(new OnCameraChangeListener() { 
     @Override 
     public void onCameraChange(CameraPosition position) { 
      LatLngBounds bounds = googleMap.getProjection().getVisibleRegion().latLngBounds; 
      getAreaInTheScreen(bounds); 
     } 

     private double getAreaInTheScreen(LatLngBounds bounds) { 
       double northLat=bounds.northeast.latitude; 
       double northLong=bounds.northeast.longitude; 
       double southLat=bounds.southwest.latitude; 
       double southLong=bounds.southwest.longitude; 


        /// it must return an area 

       return area; 
     } 
    }); 

回答

2

當然可以。 你有所有需要的信息。 所以首先你應該計算從一點到另一點的距離,比如說 西南和東南。 西南座標(southLat,southLong) 東南座標(southLat,northLong),緯度保持不變。

Location l = new Location("southwest"); 
l.setLatitude(southLat); 
l.setLongitude(southLong); 
Location l2 = new Location("southeast"); 
l.setLatitude(southLat); 
l.setLongitude(northLong); 
double height = l.distanceTo(l2); 

同樣的事情也會去爲矩形的寬度,積分將是西南和西北

西南座標(southLat,southLong) 西北座標(northLat,southLong),經度保持不變。 我們可以使用第一個位置對象「l」導致點是一樣的。

Location l3 = new Location("northwest"); 
l3.setLatitude(northLat); 
l3.setLongitude(southLong); 
double width = l.distanceTo(l3); 

double area = width*height; 

很抱歉,如果有某種語法錯誤的,我用的是手機

+0

非常感謝@alexandrius。我不確定它是如此簡單的將LatLng轉換爲計量。 – ali