GPS定位错误

Posted

技术标签:

【中文标题】GPS定位错误【英文标题】:Gps wrong location 【发布时间】:2012-03-19 21:30:10 【问题描述】:

我做了一个安卓应用程序。我在笔记本电脑上运行应用程序并将我定位在一个地方(在大约 250 公里的错误城镇)。当使用另一个 api 密钥在我的桌面上运行应用程序时,我位于同一个错误的城市。谁能告诉我问题出在哪里?谢谢!

【问题讨论】:

您在运行测试时是否以相对论的速度移动? 【参考方案1】:

根据我的经验,android 不会仅仅因为您的 Wi-Fi 会将位置信息继承给模拟器而获取位置信息。

您需要遵循一些步骤:

    确保在您的 Android Manifest 中具有以下权限:

    android.permission.INTERNET

    android.permission.ACCESS_NETWORK_STATE

    android.permission.ACCESS_COARSE_LOCATION

    android.permission.ACCESS_FINE_LOCATION

    android.permission.ACCESS_LOCATION_EXTRA_COMMANDS

    android.permission.ACCESS_MOCK_LOCATION

    android.permission.CHANGE_WIFI_STATE

    android.permission.ACCESS_WIFI_STATE

    确保您的应用程序标签中有地图库:

    <application android:icon="@drawable/ic_launcher" >
            <uses-library android:name="com.google.android.maps" />
    </application>
    

    确保在 /layout/map.xml 文件中的 MapView 中具有有效的 Maps API 密钥。

    因为您不是在实际设备上运行您的应用程序,所以向您的应用程序发送不同位置的唯一方法是推送一个模拟位置。为此,只需在模拟器中启动您的应用程序,转到 Eclipse IDE 中的 DDMS 透视图,然后查找左侧的选项(如果找不到,请重置 DDMS 透视图)。它应该是这样的:

在“设备”选项卡下选择模拟器名称,然后您可以使用“位置控件”发送纬度和经度坐标。

完成开发和测试后,请务必移除 ACCESS_MOCK_LOCATION 权限,并在具有 GPS、aGPS 芯片或蜂窝/Wifi 网络的实际手机或平板电脑上测试位置检测。

【讨论】:

不客气!我只是修复了更清晰的答案,因为富文本编辑器在权限中弄乱了 XML。祝你好运! Mmm... 有时你需要通过乘或除以1E6来转换位置API返回的纬度和经度。例如:双纬 = location.getLatitude()*1E6;双经度 = location.getLongitude()*1E6; locationPoint = new GeoPoint(latitude.intValue(),longitude.intValue()); locationManager = (LocationManager) getSystemService(Context.LOCATION_SERVICE);位置 = locationManager.getLastKnownLocation(LocationManager.GPS_PROVIDER);双纬度 = location.getLatitude()*1E6;双 lng = location.getLongitude()*1E6; GeoPoint locationpoint = new GeoPoint((int) lat, (int) lng); MapController mc = mapView.getController(); mc.animateTo(位置点); mc.setZoom(15); 我在模拟器上运行时收到错误消息。 (应用程序 MapsApp(process net.learn2develop.GoogleMaps) 已意外停止。请重试。强制关闭)。你认为我以正确的方式获得了位置吗?【参考方案2】:

当您在没有 GPS 的桌面模拟器上运行移动应用程序时,您每次都会得到一些固定的位置。要获得真正的 GPS 坐标,您需要将其安装在 Android 设备中并进行测试。

** 更新**

如果您的手机也遇到了同样的问题,那么您的手机 GPS 可能已关闭,您需要将其打开,或者手机正在使用 Wifi 来修复其位置。

【讨论】:

我在 android 设备上导入应用程序并显示相同的错误位置 我打开GPS,结果一样:( 我在模拟器上运行时收到错误消息。 (应用程序 MapsApp(process net.learn2develop.GoogleMaps) 已意外停止。请重试。强制关闭)。【参考方案3】:

只是想一想,手机是通过您的家庭 wifi 网络而不是手机的 GPS 获取 GPS 位置吗?可能会解释为什么它们都给出相同的错误值。

【讨论】:

是的,我的手机通过我的 wifi 网络获取 GPS 位置。那么,请告诉我如何解决这个问题? 如果我关闭手机的 wifi 并启动应用程序,它只会显示一个网格,而不是地图。只有当我通过wifi连接手机并重新启动应用程序时才会出现地图。 您应该可以使用设置打开手机上的内置 GPS!只要你的手机有,我以为所有的安卓手机都有

以上是关于GPS定位错误的主要内容,如果未能解决你的问题,请参考以下文章

求助,GPS定位仪数据,求两点之间的距离,多少米?有经度、纬度数据。

GPS定位器定位不准是啥原因

获取定位失败怎么办

android的怎么使用gps定位

我的GPS定位 我开了为啥还显示定位失败

手机GPS定位不准怎么解决?