0

这是我的应用程序:

public class HlavnaAktivita extends MapActivity implements LocationListener {
...
    public void onLocationChanged(Location location) {
            Log.w("myApp", String.valueOf(location.getLatitude()));
    }

当我给模拟器例如 48.590007 和 17.824579 时,它只写“17.0”。我试过http://www.androidcompetencycenter.com/?s=GPS这个教程(来自 StackOverflow),当我运行那个应用程序时,它写得很好,但在地图上只是四舍五入的位置 (17, 48)(位置根据maps.google.com 很好,但地图上的 cca 100 公里是错误的)。

可能是什么问题呢?我尝试了很多教程,但仍然无法正常工作。

4

3 回答 3

0

要获得地图上的确切位置,您需要 2 个参数:
点的纬度和经度。
GeoPoint接受以微度为单位的纬度和经度,因此请尝试像这样创建您的点以获得更好的准确性:

double lati = location.getLatitude();
double longi = location.getLongitude();
GeoPoint geo_point= new GeoPoint((int)(lati * 1e6),(int)(longi * 1e6));
于 2012-12-02T17:04:54.647 回答
0

它将您的数字转换为int。为避免它尝试类似:

Log.w("myApp", String.valueOf((float) location.getLatitude()));
于 2012-12-02T18:54:52.390 回答
0

This was just my mistake - I forget to add (). Sorry.

于 2013-04-08T10:11:00.390 回答