Articles of geolocation

java io ioexception无法解析服务器地理编码器的响应

我使用此代码获取地理地址: private String getAddress(Location location) { try{ List addresses = new Geocoder(this,Locale.getDefault()).getFromLocation(location.getLatitude(), location.getLongitude(), 1); if(addresses!=null) { String address=”Address not available”; for(int i=0;i<addresses.size();i++) { Address addre=addresses.get(i); String street=addre.getAddressLine(0); if(null==street) street=""; String city=addre.getLocality(); if(city==null) city=""; String state=addre.getAdminArea(); if(state==null) state=""; String country=addre.getCountryName(); if(country==null) country=""; address=street+", "+city+", "+state+", "+country; } return address; } } catch (Exception e) { return […]

获取点击地图伪造0.5.1 MapView的位置的纬度和经度

我使用地图伪造0.5.1库( api参考 )我已经遵循所有官方说明但我有以下问题: 我已经附上了一个onTouchListener (org.mapsforge.map.android.view.MapView)MapView类 但是当我尝试调用方法mapView.getProjection()时,我得到错误“无法解析方法getProjection()。即使在许多在线示例中调用该方法,也没有在官方api引用或MapView中.class.org.mapsforge.map.android.view.MapView org.mapsforge.map.android.view.MapView mapView; mapView.setOnTouchListener(new View.OnTouchListener(){ @Override public boolean onTouch(View v, MotionEvent ev) { int actionType = ev.getAction(); switch (actionType) { case MotionEvent.ACTION_DOWN: return false; case MotionEvent.ACTION_UP: mapView.getProjection(); // the error is here return true; case MotionEvent.ACTION_MOVE: return false; } return false; } }); 有没有其他方法可以使用mapsforge lib获取分接点的纬度和经度? 难道我做错了什么? 如果在点击之后无法获得坐标,我认为图书馆遗漏了非常重要的东西。 谢谢

设备重启后启动Phonegap插件

我正在为Android开发混合Phonegap应用程序。 该应用程序仅使用我正在开发的一个插件。 该插件做了三件事 手表的地理位置变化(前景和背景) 设置半小时警报以执行某些定期任务 收听推送消息。 我使用pushy.me服务,我使用的代码遵循他们的文档 。 我已经实现了代码以使应用程序调整到设备重新启动时有些惶恐,但结果很简单(感谢我在SO上的其他线程中find的信息) package com.example.plugin; import org.apache.cordova.CordovaInterface; import org.apache.cordova.CordovaPlugin; import org.apache.cordova.CallbackContext; import org.apache.cordova.CordovaWebView; import android.content.Context; import android.content.BroadcastReceiver; import android.content.pm.PackageManager; import android.app.Activity; import android.content.Intent; public class Rebooter extends BroadcastReceiver { @Override public void onReceive(Context context, Intent intent) { Intent i = new Intent(context, MyAppCordovaPlugin.class); i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); context.startActivity(i); } } 我这样注册了重启接收器 MyAppCordovaPlugin是我的应用程序/插件的入口点 […]

onLocationChanged不会自动调用

我在Android中的onLocationChanged事件有问题。 这是触发: case R.id.start: { Points.add(overlay.getMyLocation()); // Points’ type is ArrayList mgr.requestLocationUpdates(best, 0, 3, locationListener); } break; 这是onLocationChanged方法: public void onLocationChanged(Location location) { i++; Points.add(overlay.getMyLocation()); MapOverlay mapOverlay = new MapOverlay(Points.get(i-1), Points.get(i)); map.getOverlays().add(mapOverlay); //does the drawing mMapController.animateTo(Points.get(i)); } 因此,onLocationChanged仅在我按“start”后调用一次。 它应该在每次位置发生变化时自动调用,对吗? 就我而言,事实并非如此。 请帮帮我。

navigator.geolocation.getCurrentPosition总是在Android中超时,直到GPS /位置关闭

app.controller(‘dashboard’, function($scope){ $scope.getPosition = function(position){ $scope.acc = position.coords; $scope.lat = position.coords.latitude; $scope.lng = position.coords.longitude; $scope.$apply(); }; $scope.getPositionErr = function(error){ alert(‘code: ‘ + error.code + ‘\n’ + ‘message: ‘ + error.message + ‘\n’); }; navigator.geolocation.getCurrentPosition($scope.getPosition, $scope.getPositionErr, {maximumAge: 0, timeout: 6000, enableHighAccuracy:false}); }); 我正在使用Angular JS和Cordova作为Android应用程序。 此代码在桌面上运行正常,但在Nexus 4和Lollipop上运行不正常。 根据Cordova的要求,控制器代码也在设备准备之后执行 我努力了 将HighAccuracy设置为false 删除地理位置插件,以便它使用Wifi的默认位置 设备重启 清除浏览器缓存 飞机模式开/关 无线开/关 移动数据开/关 但是我无法获得lat,长期和地理定位总是会超时。 […]

除非已启用GPS,否则融合位置提供商无法获取位置

所以我已经实现了新的Fused Location Provider API以获取用户的位置但由于某种原因,除非GPS打开,否则我无法获得任何位置。 并非总是如此,用户是否会打开GPS,我不想让他们每次加载应用程序时都要打开GPS。 如何告诉API为我提供一个位置,其中包含可用的提供商? 这是我的代码: public class FusedLocationService implements LocationListener, GoogleApiClient.ConnectionCallbacks, GoogleApiClient.OnConnectionFailedListener { public interface OnLocationChangedListener { public void OnLocationChanged(Location location); } private final String TAG = “SE8611”; private boolean mRequestingLocationUpdates = true; private OnLocationChangedListener mCallBack; Service locationService; private LocationRequest locationRequest; private GoogleApiClient googleApiClient; private Location mCurrentLocation; private FusedLocationProviderApi fusedLocationProviderApi = LocationServices.FusedLocationApi; public […]

Android:应用程序全局onPause()和onResume()?

有没有像应用程序全局onPause()和onResume() ? 我的主要活动是监听GPS修复,我想在切换到另一个屏幕/活动时继续工作。 因此,我无法在活动的onPause()取消注册我的LocationListener 。 但是,我仍然希望在切换到另一个应用程序时取消注册我的GPS监听器(因此节省电池)并在返回我的应用程序时将其重新打开,无论用户当前处于什么屏幕/活动。 有任何想法吗?

Android Google Map如何检查gps位置是否在圈内

我正在尝试使用用户gps位置检测用户是否在标记的半径内。 我有标记的坐标,但我不知道如何计算用户是否在该区域。 我试过使用以下内容,但即使当前位置在圈内,我仍然会收到“外部”消息。 public class MapaEscola extends FragmentActivity { private GoogleMap googleMap; private Serializable escolas; private ProgressDialog dialog; private Circle mCircle; private Marker mMarker; @TargetApi(Build.VERSION_CODES.ICE_CREAM_SANDWICH) @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); getActionBar().setDisplayHomeAsUpEnabled(true); getActionBar().setHomeButtonEnabled(true); setContentView(R.layout.maps); // Loading map initilizeMap(); // Changing map type googleMap.setMapType(GoogleMap.MAP_TYPE_NORMAL); // Showing / hiding your current location googleMap.setMyLocationEnabled(true); // Enable / […]

在Android 2.0+上使用WebView中的navigator.geolocation.getCurrentPosition(与PhoneGap相关)

我一直在使用PhoneGap并且它很棒,但是我遇到了在Verizon Droid w / 2.0.1上获得位置的问题(在G1 w / 1.6上按预期工作)。 GeoLocation API支持已添加到Android 2.0(Eclair)中,它可以在Verizon Droid的默认浏览器中使用(在2.0.1上)。 也就是说,如果我访问一个调用navigator.geolocation.getCurrentPosition(success_callback,error_callback)的网站,设备会在一个对话框中提示当前域“想要知道您的位置”,其中包含“共享位置”或“拒绝”选项。 如果我选择“共享位置”,则最终会使用位置数据调用success_callback。 如果我在WebView中访问同一个网站,则对navigator.geolocation.getCurrentPosition的调用不会生成javascript错误,但不会显示“共享您的位置”对话框,也不会调用任何回调。 在logcat中,我看到似乎是一个相关的错误:“02-15 10:37:00.413:ERROR / geolocationService(16871):捕获安全exception从系统注册位置更新。这应该只在DumpRenderTree中发生。” 在我看来,WebView无法注册位置更新,因为它没有所需的权限,而这又是不提示用户获得权限的结果。 虽然在Android 2.0中与GeoPermissions相关的Webkit包中添加了几个方法和对象,但是我无法使用它们中的任何一个来使WebView显示GeoPermission对话框。 以下内容基于Android Developer’s Guide中的Hello,WebView示例,但它添加了2.0中与GeoPermissions相关的一些调用和对象。 *使用适当的url更新(获得作者许可- 感谢Oliver !)。 有没有人能够使这个工作? 任何反馈都会很棒,谢谢! package com.example.android.helloactivity; import android.app.Activity; import android.os.Bundle; import android.webkit.GeolocationPermissions; import android.webkit.WebChromeClient; import android.webkit.WebView; import android.webkit.GeolocationPermissions.Callback; public class HelloActivity extends Activity implements GeolocationPermissions.Callback{ WebView webview; String geoWebsiteURL […]

多久以前记录的最后一个位置?

我正在获取我最后一个已知位置,但不知道自我的位置上次更新以来已经有多长时间了。 我怎样才能知道自该位置上次更新以来已经有多长时间了? LocationManager locationManager = (LocationManager) getSystemService(LOCATION_SERVICE); Criteria c = new Criteria(); c.setAccuracy(Criteria.ACCURACY_FINE); c.setAccuracy(Criteria.ACCURACY_COARSE); c.setAltitudeRequired(false); c.setBearingRequired(false); c.setCostAllowed(true); c.setPowerRequirement(Criteria.POWER_HIGH); String provider = locationManager.getBestProvider(c, true); Location location = locationManager.getLastKnownLocation(provider);