我在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
}
}
}
答案 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"));
}
}