【问题标题】:Sygic not showing current position nor displaying markersSygic 不显示当前位置也不显示标记
【发布时间】:2019-04-17 04:24:03
【问题描述】:

我想在加载地图时显示位置指示器,并在点击地图时添加一个标记,但这些似乎都不起作用!

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

} 

【问题讨论】:

标签: android maps sygic-mobile-sdk


【解决方案1】:

您正在尝试使用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;
            }
        });

【讨论】:

  • 感谢我不久前能够解决它,问题只是我缺少权限
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-03-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-08-08
相关资源
最近更新 更多