我正在使用平板电脑,在html应用程序上工作,希望在不使用任何网络连接的情况下获得gps位置。请给我一些简单的建议。
发布于 2014-10-20 16:31:09
使用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>
发布于 2014-10-20 16:34:32
您必须创建一个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());
发布于 2014-10-20 16:37:47
如果你想获得更准确的位置信息,你应该请求更新,最后已知的位置对你来说是不够的。GPS_PROVIDER将只提供来自全球定位系统的位置更新,而不提供来自网络提供商的位置更新。但是,如果使用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");
}
}
https://stackoverflow.com/questions/26461367
复制相似问题