如何在谷歌地图中的两个点范围之间进行选择。 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倍范围内。
答案 1 :(得分:0)
您可以尝试通过将度数转换为距离(例如从1度弧度到海里)来计算latittudes和经度。