首先,我为我可怜的英语道歉。
我目前正在使用Android-app,我正在使用google api v2。我的谷歌地图上有2个标记,用.distance between方法计算它们之间的距离。然后我在标记之间画一条折线。
现在我想将距离绑定到我的折线。距离应在折线下方,如果我移动标记,距离仍应在折线下方。
答案 0 :(得分:0)
此方法可以帮助您找到距离,它找到起点LatLng和终点之间的距离LatLng
public double CalculationByDistance(LatLng StartP, LatLng EndP) {
int Radius=6371;//radius of earth in Km
double lat1 = StartP.latitude;
double lat2 = EndP.latitude;
double lon1 = StartP.longitude;
double lon2 = EndP.longitude;
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.asin(Math.sqrt(a));
double valueResult= Radius*c;
double km=valueResult/1;
DecimalFormat newFormat = new DecimalFormat("####");
int kmInDec = Integer.valueOf(newFormat.format(km));
double meter=valueResult%1000;
int meterInDec= Integer.valueOf(newFormat.format(meter));
Log.i("Radius Value",""+valueResult+" KM "+kmInDec+" Meter "+meterInDec);
return Radius * c;
}
你也可以试试这个:
Location locationA = new Location("location A");
locationA.setLatitude(locationA.getLatitudeE6() / 1E6);
locationA.setLongitude(locationA.getLongitudeE6() / 1E6);
Location locationB = new Location("location B");
locationB.setLatitude(locationB.getLatitudeE6() / 1E6);
locationB.setLongitude(locationB.getLongitudeE6() / 1E6);
double distance = locationA.distanceTo(locationB);
答案 1 :(得分:0)
这不容易做到,但肯定是可能的。
以下是步骤:
Projection
)Bitmap
,文字为OnCameraChangeListener.onCameraChange
或Handler
Runnable
的电话时更新标记位置