2014-10-20 116 views

回答

1

使用JS,你可以得到它像這樣

<script> 
    var x = document.getElementById("demo"); 
    function getLocation() { 
    if (navigator.geolocation) { 
     navigator.geolocation.getCurrentPosition(showPosition); 
    } else { 
     x.innerHTML = "Geolocation is not supported by this browser."; 
    } 
} 
function showPosition(position) { 
    x.innerHTML = "Latitude: " + position.coords.latitude + "<br>Longitude: " + position.coords.longitude; 
} 
</script> 
+0

那麼你需要設置一些權限..閱讀此。 「http://stackoverflow.com/questions/5329662/android-webview-geolocation」 – Panther 2014-10-20 08:53:44

+0

親愛的,我直接做一個HTML文件,並添加這個JavaScript部分,所以我應該在哪裏添加這些權限? – 2014-10-20 10:43:14

0

你必須創建的LocationManager類的實例。您可以使用getLastKnownLocation方法來查找位置。您必須將Location.GPS_PROVIDER作爲參數傳遞。

LocationManager locationManager = (LocationManager)context.getSystemService(Context.LOCATION_SERVICE); 
Location userLocation = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER); 
Log.d("Latitude", userLocation.getLatitude()); 
Log.d("Longitude", userLocation.getLongitude()); 
+0

親愛的,我正在php,sqlite和yii框架上運行本地主機上的應用程序,但網絡連接不存在,但唯一的選擇是平板電腦內部的GPS和我必須得到經度和緯度。所以請根據我的編程環境來告訴我。 – 2014-10-20 08:56:23

0

給你許可:

<uses-permission android:name="android.permission.INTERNET"></uses-permission> 
<uses-permission android:name="android.permission.ACCESS_FINE_LOCATION" /> 

獲取經度緯度&:

LocationManager lm = (LocationManager)getSystemService(Context.LOCATION_SERVICE); 
Location location = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER); 
double longitude = location.getLongitude(); 
double latitude = location.getLatitude(); 

保存在txt文件:

public void generateLatLongOnSDCard(String sFileName, String sBody){ 
    try 
    { 
     File rootDirFile = new File(Environment.getExternalStorageDirectory(), "LatLong"); 
     if (!rootDirFile.exists()) { 
      rootDirFile.mkdirs(); 
     } 
     File gpxfile = new File(rootDirFile, sFileName); 
     FileWriter writer = new FileWriter(gpxfile); 
     writer.append(sBody); 
     writer.flush(); 
     writer.close(); 
     Toast.makeText(this, "Saved", Toast.LENGTH_SHORT).show(); 
    } 
    catch(IOException e) 
    { 
     e.printStackTrace(); 
    } 
    } 

最後您可以閱讀文本文件。

+0

親愛的,我正在研究php,sqlite和yii框架,在localhost上運行應用程序,但網絡連接不存在,但唯一的選擇是平板電腦內部GPS,我必須獲取經度和緯度。所以請根據我的編程環境來告訴我。 – 2014-10-20 08:57:21

0

如果您想要獲得更準確的位置Feed,則應該請求更新,最後一個已知位置對您而言不夠用。 GPS_PROVIDER將僅提供來自gps的位置更新,而不是來自網絡提供商。但是,如果您使用NETWORK_PROVIDER,則可以在室內獲得更準確的位置值。

public class MainActivity extends Activity implements LocationListener{ 

    protected LocationManager locationManager; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE); 
     locationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, this); 
    } 

    @Override 
    public void onLocationChanged(Location location) { 
     txtLat.setText("Latitude:" + location.getLatitude() + ", Longitude:" + location.getLongitude()); 
    } 

    @Override 
    public void onProviderDisabled(String provider) { 
     Log.d("Latitude","disable"); 
    } 

    @Override 
    public void onProviderEnabled(String provider) { 
     Log.d("Latitude","enable"); 
    } 

    @Override 
    public void onStatusChanged(String provider, int status, Bundle extras) { 
     Log.d("Latitude","status"); 
    } 
}