无法通过supportMapFragment操纵GoogleMap

时间:2013-12-23 12:56:47

标签: java android google-maps supportmapfragment

编辑:创建标记并将其添加到地图中。调用映射后调用此方法。

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。

地图甚至没有变成卫星。获取当前位置的按钮不会显示。我该怎么做才能解决这个问题?我迷路了,我需要在1月份提交这份申请。

1 个答案:

答案 0 :(得分:0)

试试这个

活动必须为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)));

testDisplay()

initialize the map之后致电onCreate