Android Studio - 缺少地图标记
Android Studio - Missing map markers
我目前正在使用 android studio 开发我的地图应用程序。除了我添加的标记外,一切都运行良好。我一直在使用官方文档 Google Maps Android API v2 作为我的指南,但是当我尝试加载地图时无法在任何地方找到我的标记。我错过了什么吗?
这是我的地图活动:
import android.os.Bundle;
import com.google.android.gms.maps.*;
import com.google.android.gms.maps.model.*;
import com.google.android.gms.maps.GoogleMap;
import android.support.v4.app.FragmentActivity;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.CameraUpdateFactory;
public class MapFragment extends FragmentActivity implements OnMapReadyCallback
{
private SupportMapFragment sMapFragment;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.map_layout);
sMapFragment = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map));
sMapFragment.getMapAsync(this);
}
@Override
public void onMapReady(GoogleMap mMap)
{
LatLng one = new LatLng(10.178, 122.560);
LatLng ILOILO = new LatLng(10.730278, 122.548889);
mMap.setBuildingsEnabled(true);
mMap.setMyLocationEnabled(true);
mMap.setMapType(GoogleMap.MAP_TYPE_TERRAIN);
mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(ILOILO, 12));
mMap.addMarker(new MarkerOptions()
.title("Empty Lot 1")
.snippet("blah blah blah")
.position(one)
.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_AZURE)));
}
}
这是我的 map_layout:
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.google.android.gms.maps.SupportMapFragment" />
编辑
我也试过删除 private SupportMapFragment sMapFragment;
并更改我的
sMapFragment = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map));
sMapFragment.getMapAsync(this);
进入
SupportMapFragment sMapFragment = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map));
sMapFragment.getMapAsync(this);
但我仍然找不到我的标记。
由于您的 Java 代码看起来不错.. 尝试根据 Google onMapReadyCallback 侦听器
文档编辑您的 XML 文件
xmlns:map="http://schemas.android.com/apk/res-auto"
android:name="com.google.android.gms.maps.SupportMapFragment"
希望这会有所帮助!!
确保您设备的位置服务已启用也是一个好主意。
我浪费了几个小时寻找解决方案,最终发现我的定位服务没有启用!
我目前正在使用 android studio 开发我的地图应用程序。除了我添加的标记外,一切都运行良好。我一直在使用官方文档 Google Maps Android API v2 作为我的指南,但是当我尝试加载地图时无法在任何地方找到我的标记。我错过了什么吗?
这是我的地图活动:
import android.os.Bundle;
import com.google.android.gms.maps.*;
import com.google.android.gms.maps.model.*;
import com.google.android.gms.maps.GoogleMap;
import android.support.v4.app.FragmentActivity;
import com.google.android.gms.maps.OnMapReadyCallback;
import com.google.android.gms.maps.CameraUpdateFactory;
public class MapFragment extends FragmentActivity implements OnMapReadyCallback
{
private SupportMapFragment sMapFragment;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.map_layout);
sMapFragment = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map));
sMapFragment.getMapAsync(this);
}
@Override
public void onMapReady(GoogleMap mMap)
{
LatLng one = new LatLng(10.178, 122.560);
LatLng ILOILO = new LatLng(10.730278, 122.548889);
mMap.setBuildingsEnabled(true);
mMap.setMyLocationEnabled(true);
mMap.setMapType(GoogleMap.MAP_TYPE_TERRAIN);
mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(ILOILO, 12));
mMap.addMarker(new MarkerOptions()
.title("Empty Lot 1")
.snippet("blah blah blah")
.position(one)
.icon(BitmapDescriptorFactory.defaultMarker(BitmapDescriptorFactory.HUE_AZURE)));
}
}
这是我的 map_layout:
<fragment xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/map"
android:layout_width="match_parent"
android:layout_height="match_parent"
class="com.google.android.gms.maps.SupportMapFragment" />
编辑
我也试过删除 private SupportMapFragment sMapFragment;
并更改我的
sMapFragment = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map));
sMapFragment.getMapAsync(this);
进入
SupportMapFragment sMapFragment = ((SupportMapFragment) getSupportFragmentManager().findFragmentById(R.id.map));
sMapFragment.getMapAsync(this);
但我仍然找不到我的标记。
由于您的 Java 代码看起来不错.. 尝试根据 Google onMapReadyCallback 侦听器
文档编辑您的 XML 文件xmlns:map="http://schemas.android.com/apk/res-auto"
android:name="com.google.android.gms.maps.SupportMapFragment"
希望这会有所帮助!!
确保您设备的位置服务已启用也是一个好主意。 我浪费了几个小时寻找解决方案,最终发现我的定位服务没有启用!