0

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

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;
    }

}

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

4

3 回答 3

0

您需要创建一个覆盖来显示标记,请阅读: 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

于 2012-09-27T21:05:50.947 回答
0

您必须使用https://developers.google.com/maps/documentation/android/hello-map将您的项目添加到地图查看此文档第 2 部分

于 2012-09-27T20:52:57.003 回答
0

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

1-通过从谷歌地图扩展 itemizedOverlay 创建您的 itemizedOverlay。

2-将覆盖项添加到您的逐项覆盖,并设置标记或使用上一步中定义的默认标记。

3-将逐项叠加添加到地图视图叠加中:

mapview.getoverlays().add(myItemizedOverlay);

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

祝你好运。

于 2012-09-27T23:04:47.630 回答