指针未显示在我的地图上

时间:2012-09-27 18:18:53

标签: java android maps

我有一张地图,我想打开一个标记,但标记没有显示出来。这是我的代码:

import com.google.android.maps.GeoPoint;
import com.google.android.maps.MapActivity;
import com.google.android.maps.MapController;
import com.google.android.maps.MapView;
import com.google.android.maps.MyLocationOverlay;
import com.google.android.maps.OverlayItem;

public class MapDetailActivity extends MapActivity 
{
    private final static String TAG = MapDetailActivity.class.getSimpleName();

    @Override
    public void onCreate(Bundle savedInstanceState)
    {
        super.onCreate(savedInstanceState);
        this.setContentView(R.layout.map_view);


        // get longitude and latitude values from detail activity/object
        Bundle bundle = this.getIntent().getExtras();
        float latitude = bundle.getFloat("uie.top25.seattle.latitude");
        float longitude = bundle.getFloat("uie.top25.seattle.longitude");

        Log.i(TAG, "Latitude that is set : " + latitude);
        Log.i(TAG, "Longitude that is set : " + longitude);
        // create longitude and latitude map points
        Double lat = latitude * 1E6;
        Double lon = longitude * 1E6;

        // create point on map
        GeoPoint point = new GeoPoint(lat.intValue(), lon.intValue());
        OverlayItem oi = new OverlayItem(point, null, null); 
        MapView mapView = (MapView) this.findViewById(R.id.myMapView);
        MapController mapController = mapView.getController();
        // set point on map
        mapController.animateTo(point);
        oi.setMarker(oi.getMarker(R.drawable.mm_20_red)); 
        // set zoom level
        mapController.setZoom(19);

    }

    @Override
    protected boolean isRouteDisplayed()
    {
        // No driving directions, so this method returns false
        return false;
    }

}

有人能告诉我我做错了什么吗?

3 个答案:

答案 0 :(得分:0)

您必须使用https://developers.google.com/maps/documentation/android/hello-mapview此文档第2部分

将您的项目添加到地图

答案 1 :(得分:0)

您需要创建一个Overlay来显示标记,请阅读:    https://developers.google.com/maps/documentation/android/reference/com/google/android/maps/Overlay

如果你不能阅读所有这些,这是一个随时可用的教程:

http://android-er.blogspot.com/2009/11/display-marker-on-mapview-using.html

答案 2 :(得分:0)

您需要阅读文档和示例,但基本步骤是:

1 - 通过从Google地图扩展itemizedOverlay来创建itemizedOverlay。

2 - 将叠加项添加到“逐项”叠加层,并设置标记或使用上一步中定义的默认标记。

3 - 将逐项加盖的叠加层添加到mapview叠加层:

mapview.getoverlays().add(myItemizedOverlay);

在将叠加层添加到mapview叠加层列表之后,mapview将考虑叠加层以在屏幕上绘制(调用onDraw方法)

祝你好运。