android - MyLocationOverlay 问题

标签 android

private void initMyLocation() {
        myLocOverlay = new MyLocationOverlay(this, myMap);
        myLocOverlay.enableCompass();
        myLocOverlay.enableMyLocation();
        myMap.getOverlays().add(myLocOverlay);
        if (myLocOverlay == null)
    { 
        assignFirstLoc();

    }


if (myLocOverlay != null)
            {
                Log.e("error","1");
                p = new GeoPoint((int) (myLocOverlay.getMyLocation().getLatitudeE6()), (int) (myLocOverlay.getMyLocation().getLongitudeE6()));
                mc = myMap.getController();
                mc.animateTo(p);
                mc.setCenter(p); 

            } 

我在 logcat 中看到“错误 1”消息,但在那之后我出现了一个空指针异常,我不知道为什么,我相信我用“if” block 检查 myLocOverlay 是否为空。有什么建议吗?

编辑:

这是我分配第一个值的 assignedGFirstLoc 方法:

private void assignFirstLoc()
    {
        final String coordinates[] = {"41.00527", "28.97696"};
        double lat2 = Double.parseDouble(coordinates[0]);
        double lng2 = Double.parseDouble(coordinates[1]);
        p = new GeoPoint((int) (lat2 * 1E6), (int) (lng2 * 1E6));
        myMap.getController().setZoom(16);
        myMap.getController().animateTo(p);
        myMap.getController().setCenter(p);

    }

最佳答案

MyLocationOverlay 只能用于显示来自传感器的位置。 你不能设置它。 您得到一个 NullPointer,因为 MyLocationOverlay.getMyLocation() 返回 null。传感器还没有时间捕捉地理定位。

如果您想在传感器获得数据时显示位置,您可以这样做:

mMyLocationOverlay.runOnFirstFix(new Runnable() { public void run() {
        mapView.getController().animateTo(mMyLocationOverlay.getMyLocation());
}});

如果你想在任意位置显示一个项目(带有纬度和经度值)你需要实现你自己的 ItemizedOverlay 版本 您可以在 SDK 文档中找到示例:Google Map View tutorial , Part2 添加OverlayItem

如果您只想显示 map 上的任意位置,则不需要叠加层。只需调用您的函数,它就会起作用:

private void initMyLocation() {
    assignFirstLoc();
}

关于android - MyLocationOverlay 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5323918/

相关文章:

java - 在 Android java 中读取文本文件或 XML 文件

android - 如何将顶部选项卡添加到未在 Navigation.startTabBasedApp 中定义的屏幕?

android - 包 org.apache.harmony 丢失了吗?

android - 如何在 gradle 上添加我的框架

长按项目的 Android 4.0+ 列表选择器 - 需要持久 - 不工作

Android:Finsky 强制停止我的应用程序

android - Admob 横幅广告使我的 recyclerview 滞后

android - 什么时候为 recyclerView 使用 hasStableIds true?

android - 单击 Google 登录按钮时应用程序关闭

Android:上传JPG图片不丢失EXIF