我有一张地图,我想打开一个标记,但标记没有显示出来。这是我的代码:
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;
}
}
有人能告诉我我做错了什么吗?
答案 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方法)
祝你好运。