标记未在谷歌地图中显示

时间:2016-03-16 04:27:30

标签: android dictionary marker

我在android中创建了一个谷歌地图片段但是没有显示标记。地图显示完美但不是标记,如何将用户当前位置设置为标记?

   public class GoogleMap extends Fragment implements OnMapReadyCallback {

    private com.google.android.gms.maps.GoogleMap googleMap;
    private static final LatLng Ahmedabad = new LatLng(23.022214, 72.542786);

    public GoogleMap() {
        // Required empty public constructor
    }


    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {


        View v = inflater.inflate(R.layout.fragment_google_map, container, false);



        processMap(v);

        return v;

    }

    @Override
    public void onMapReady(com.google.android.gms.maps.GoogleMap googleMap) {
        this.googleMap = googleMap;
    }


    public void processMap(View v) {
        if (googleMap != null) {

            googleMap.addMarker(new MarkerOptions().position(Ahmedabad).title("Ahmedabad"));


            // TODO: Consider calling


        }


    }
}

1 个答案:

答案 0 :(得分:1)

在地图准备好之后,您应该调用 processMap(v)。当您尝试在onCreateView上调用processMap时,您的Google地图尚未就绪,您的googleMap变量为空

private com.google.android.gms.maps.GoogleMap googleMap;
private static final LatLng Ahmedabad = new LatLng(23.022214, 72.542786);

public GoogleMap() {
    // Required empty public constructor
}

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
                         Bundle savedInstanceState) {

    View v = inflater.inflate(R.layout.fragment_google_map, container, false);

    return v;

}

@Override
public void onMapReady(com.google.android.gms.maps.GoogleMap googleMap) {
    this.googleMap = googleMap;
    processMap();
}    

public void processMap() {
    if (googleMap != null) {

        googleMap.addMarker(new MarkerOptions().position(Ahmedabad).title("Ahmedabad"));

    }
}