[英]android app: get distance between two addresses
這是我第一次在android應用程序中開發。 該應用程序將計算用戶輸入的兩個地址之間的總距離,以獲取總距離。 可以計算出假設道路是筆直的距離嗎? 順便說一句,該應用程序將不會顯示地圖,並且不需要GPS! 它只需要使用地址解析器來獲取經度。
這是我的問題:
android:name=".permission.MAPS_RECEIVE".
public class MainActivity extends Activity
感謝您的回復,我也非常感謝你們,如果可以,請顯示完整的AndroidManifext.xml代碼嗎?
謝謝。
http://developer.android.com/reference/android/location/Location.html
查看distanceTo或distanceBetween。 您可以根據經緯度創建位置對象:
Location locationA = new Location("point A");
locationA.setLatitude(latA);
locationA.setLongitude(lngA);
Location locationB = new Location("point B");
locationB.setLatitude(latB);
locationB.setLongitude(lngB);
float distance = locationA.distanceTo(locationB);
要么
private double gps2m(float lat_a, float lng_a, float lat_b, float lng_b) {
float pk = (float) (180/3.14169);
float a1 = lat_a / pk;
float a2 = lng_a / pk;
float b1 = lat_b / pk;
float b2 = lng_b / pk;
float t1 = FloatMath.cos(a1)*FloatMath.cos(a2)*FloatMath.cos(b1)*FloatMath.cos(b2);
float t2 = FloatMath.cos(a1)*FloatMath.sin(a2)*FloatMath.cos(b1)*FloatMath.sin(b2);
float t3 = FloatMath.sin(a1)*FloatMath.sin(b1);
double tt = Math.acos(t1 + t2 + t3);
return 6366000*tt;
}
使用地理編碼器獲取地點1和地點2的緯度和經度。按以下方法應用這些值。
Location.distanceBetween(startLatitude, startLongitude, endLatitude, endLongitude, results)
您不需要包括地圖權限。
要獲取2個位置之間的距離,您可以使用Geocoder類。 這也不需要y位置權限。
Geocoder類具有一個方法
getFromLocationName(String locationName, int maxResults)
它返回用於位置輸入的地址列表。 地址具有緯度/經度。
您需要將Address轉換為Location對象,該對象具有用於計算2個位置之間的距離的方法:
distanceTo(Location dest)
Returns the approximate distance in meters between this location and the given location.
至於第二個問題。 您應該在活動中使用片段。 通讀這篇文章,以了解更多有關片段及其優點的信息。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.