【问题标题】:Can't Manipulate GoogleMap by supportMapFragment无法通过 supportMapFragment 操作 GoogleMap
【发布时间】:2013-12-23 12:56:47
【问题描述】:

编辑:创建一个标记并将其添加到地图中。该方法在地图调用后调用。

public void testDisplay(){
    // latitude and longitude
    double latitude = 0;
    double longitude = 0;

    // create marker
    MarkerOptions marker = new MarkerOptions().position(new LatLng(latitude, longitude)).title("Hello Maps ").icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_MAGENTA));

    // adding marker
    map.addMarker(marker);
}

我正在开发一个提供行程的 Java android 应用程序。我实施了谷歌地图。但我似乎无法操纵地图(添加标记、四处移动、添加位置用户等)

这是我的导入(也许我正在导入相同类型的不同库):

import android.content.Context;


import android.os.Bundle;

import android.util.Log;

import android.view.Menu;
import android.view.View;
import android.widget.LinearLayout;
import android.widget.TextView;

import com.codexmalta.mytravelbuddy.R;
import com.google.android.gms.location.LocationListener;
import com.google.android.gms.maps.CameraUpdateFactory;
import com.google.android.gms.maps.GoogleMap;

import android.support.v4.app.FragmentActivity;  
import com.google.android.gms.maps.SupportMapFragment;  

import com.google.android.gms.maps.model.CameraPosition;
import com.google.android.gms.maps.model.LatLng;
import com.google.android.gms.maps.model.Marker;
import com.google.android.gms.maps.model.MarkerOptions;

这是我的方法,其中包含获取地图的行,我从 onCreate() 调用它:

SupportMapFragment fm = new SupportMapFragment();

public void getMapFragment(){
        fm = (SupportMapFragment)   getSupportFragmentManager().findFragmentById(R.id.map);
        map = fm.getMap();
        Log.e("getmapfragment0", "got map fragment");
        map.setMyLocationEnabled(true);
        map.setMapType(map.MAP_TYPE_SATELLITE);
    }

我还在地图上检查了 NULL,它告诉我地图不是 NULL。

地图甚至没有变为卫星。获取当前位置的按钮不显示。我能做些什么来解决这个问题?我迷路了,我需要在一月份提交此申请。

【问题讨论】:

  • 您是否在 SDK 中下载了 google play services 库?或发布您的 logcat 以便快速解决
  • 而不是 map.MAP_TYPE_SATELLITE 使用 GoogleMap.MAP_TYPE_SATELLITE
  • @kaushik 是的,我后来意识到了这个错误,修复了它,但它仍然没有用。而且我无法真正获得 LogCat,因为我正在我的移动设备上进行测试。也许我可以把整个项目发给你,你换成你的调试密钥并自己测试?
  • 如果您将设备连接到计算机,您仍然可以获得 LogCat 跟踪。除了 MAP_TYPE_SATELLITE 部分之外,您是否收到任何错误或地图加载正确?地图是否显示您的位置?
  • 你的项目中添加了 google play lib 吗??

标签: java android google-maps supportmapfragment


【解决方案1】:

试试这个

活动必须是FragmentActivity

SupportMapFragment fm = (SupportMapFragment)  getSupportFragmentManager().findFragmentById(R.id.map);
GoogleMap mMap = fm.getMap(); 

用于添加marker

Marker mapPinPoint = mMap.addMarker(new MarkerOptions().position(new LatLng(latitude,longitude)).icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_RED)));

initialize the map 之后从onCreate 调用testDisplay()

【讨论】:

  • 我这样做了。它使我的地图更新为卫星视图或其他任何内容。但我仍然无法通过添加标记或动画来操作地图。
  • 我到家后会试一试,如果有效,会通知您。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-12-21
相关资源
最近更新 更多