我希望在地图加载时显示位置指示符,并在单击地图时添加标记,但这些都不起作用!
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
final MapFragment mapFragment = (MapFragment) getSupportFragmentManager().findFragmentById(R.id.mapFragment);
assert mapFragment != null;
mapFragment.getMapAsync(new OnMapInitListener() {
@Override
public void onMapReady(MapView mapView) {
OnlineManager.getInstance().enableOnlineMapStreaming(true);
PositionManager.getInstance().startPositionUpdating();
PositionManager.getInstance().enableRemotePositioningService();
mpView=mapView;
mpView.addMapGestureListener(new MapGestureAdapter() {
@Override
public boolean onMapClicked(final MotionEvent e, final boolean isTwoFingers) {
MapMarker marker = new MapMarker(new GeoCoordinates(PositionManager.getInstance().getLastKnownPosition().getLongitudeAccuracy(),PositionManager.getInstance().getLastKnownPosition().getLatitudeAccuracy()));
mpView.addMapObject(marker);
return true;
}
});
}
@Override
public void onMapError(int error, String info) {}
});
} 发布于 2018-11-16 10:25:56
您正在尝试用getLongitudeAccuracy()和getLatitudeAccuracy()创建新的标记。你需要使用地理坐标!
如果要将标记添加到最近已知的gps信号的位置,可以使用以下代码:MapMarker marker = new MapMarker(PositionManager.getInstance().getLastKnownPosition().getCoordinates())
但是,由于当时不可能有已知的位置,因此不可能添加标记。所以一定要打开位置和强信号。根据您的示例,向您单击的位置添加标记将更有意义。为此目的,请使用以下代码:
mpView.addMapGestureListener(new MapGestureAdapter() {
@Override
public boolean onMapClicked(final MotionEvent e, final boolean isTwoFingers) {
MapMarker marker = new MapMarker(mpView.geoCoordinatesFromPoint(e.getX(), e.getY()));
mpView.addMapObject(marker);
return true;
}
});https://stackoverflow.com/questions/53296203
复制相似问题