Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/222.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Sygic不显示当前位置也不显示标记_Android_Maps_Sygic Mobile Sdk - Fatal编程技术网

Android Sygic不显示当前位置也不显示标记

Android Sygic不显示当前位置也不显示标记,android,maps,sygic-mobile-sdk,Android,Maps,Sygic Mobile Sdk,我想在地图加载时显示位置指示器,并在每次单击地图时添加一个标记,但这些似乎都不起作用 protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); final MapFragment mapFragment = (MapFragment) getSupportFragmen

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

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

} 

您正在尝试使用
getLongitudeAccuracy()
getLatitudeAccuracy()
创建新标记。你需要使用地理坐标

如果要将标记添加到上一个已知gps信号的位置,可以使用以下代码:
MapMarker marker=新的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;
            }
        });

请参考此链接,谢谢,但此链接是指谷歌地图,这与我指定的地图上下文(Sygic mobile sdk)无关。感谢我刚才能够解决此问题,但问题是我缺少一个权限