Sygic не показывает текущую позицию и не отображает маркеры - PullRequest
0 голосов
/ 14 ноября 2018

Я хочу показать индикатор местоположения при загрузке карты и добавлять маркер при каждом нажатии на карту, но ни один из них не работает!

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

} 

1 Ответ

0 голосов
/ 16 ноября 2018

Вы пытаетесь создать новый маркер с 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;
            }
        });
...