Android Studio - 缺少地图标记

时间:2015-01-06 07:49:41

标签: android google-maps android-studio google-maps-markers google-maps-api-2

我目前正在使用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);

但我仍然无法找到我的标记。

2 个答案:

答案 0 :(得分:0)

由于您的Java代码看起来很好..尝试根据onMapReadyCallback监听器的Google文档编辑XML文件

xmlns:map="http://schemas.android.com/apk/res-auto"
android:name="com.google.android.gms.maps.SupportMapFragment"

希望这会有所帮助!!

答案 1 :(得分:0)

确保您的设备的位置服务已启用,这也是一个好主意。 我浪费了几个小时寻找解决方案,最终发现我的位置服务没有启用!