2012-05-17 1 views
1

Как выбрать между двумя точками в карте google. EX: 50m или 100mКак выбрать между двумя точками в карте google

Я использую этот код для расчета расстояния.

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 и longitudes путем преобразования градусов в расстояние (например, от 1 градуса до морской мили).

Смежные вопросы