我正在开发Android应用程序,我完全是新手。所以我想知道如何在地图中显示标记以及如何在特定时间更改其位置,例如在背景中定义线程或任何将发送纬度和经度值并且标记移动的内容
答案 0 :(得分:17)
如果您只展示一个项目,MapView.addView()
以及稍后使用setLayoutParams
更新位置就可以了。
private ImageView mCurrentPointer;
@Override
public void onLocationChanged(Location l) {
int latitude = (int) (l.getLatitude() * 1e6);
int longitude = (int) (l.getLongitude() * 1e6);
// Prepare new LayoutParams object that centers on our new latitude/longitude
MapView.LayoutParams lp = new MapView.LayoutParams(MapView.LayoutParams.WRAP_CONTENT,
MapView.LayoutParams.WRAP_CONTENT, new GeoPoint(latitude, longitude),
MapView.LayoutParams.CENTER);
if (mCurrentPointer == null) {
// If "current location" pin is null, we haven't added it
// to MapView yet. So instantiate it and add it to MapView:
mCurrentPointer = new ImageView(this);
mCurrentPointer.setImageResource(R.drawable.ic_maps_indicator_current_position);
mMapView.addView(mCurrentPointer, lp);
} else {
// If it's already added, just update its location
mCurrentPointer.setLayoutParams(lp);
}
}