Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/190.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 从未调用HereMap PositionListener_Android_Here Api - Fatal编程技术网

Android 从未调用HereMap PositionListener

Android 从未调用HereMap PositionListener,android,here-api,Android,Here Api,我对这张地图相当陌生。我花了一些时间,但我仍然看不出这有什么不对。我用以下代码初始化了HereMap MapFragment gmMapFragment = ... gmMapFragment.init(Common.main_activity, new OnEngineInitListener() { @Override public void onEngineInitializationCompleted(OnEngineInitListen

我对这张地图相当陌生。我花了一些时间,但我仍然看不出这有什么不对。我用以下代码初始化了HereMap

    MapFragment gmMapFragment = ...

    gmMapFragment.init(Common.main_activity, new OnEngineInitListener() {
        @Override
        public void onEngineInitializationCompleted(OnEngineInitListener.Error error) {
            if (error == OnEngineInitListener.Error.NONE) {

                gmMapFragment.getMapGesture().addOnGestureListener(gestureListener);

                gmMap = gmMapFragment.getMap();

                // Set the map center to the Vancouver region (no animation)
                gmMap.setCenter(new GeoCoordinate(tw.latitude, tw.longitude, 0.0),
                    Map.Animation.NONE);
                // Set the zoom level to the average between min and max
                gmMap.setZoomLevel((gmMap.getMaxZoomLevel() + gmMap.getMinZoomLevel()) / 2);

                gmMap.setProjectionMode(Map.Projection.MERCATOR);

                gmMap.getPositionIndicator().setVisible(true);

                gmPositioningManager = PositioningManager.getInstance();
                gmPositioningManager.addListener(new WeakReference<>(positionListener));

                gmPositioningManager.start(PositioningManager.LocationMethod.GPS_NETWORK);

            } else {
                System.out.println("ERROR: Cannot initialize Map Fragment,"
                    + error.name() + "," + error.getDetails() + "," +error.getStackTrace());
            }
        }
    });    
我非常确定映射已经成功初始化,
gmMapFragment.init(…)
,因为我可以在屏幕上看到映射。如果我使用谷歌地图工具得到的坐标,我甚至可以在地图上画出路线。但我确实需要这里的地图来为我获取当前位置,因为我们需要依次进行3D


但是,
onPositionUpdated(…)
从未被调用。我还需要做些什么来让它工作吗?我认为将侦听器添加到PositionManager就足够了

摘要:您可以尝试收听“OnPositionChangedListener#onPositionFixChanged(LocationMethod,LocationStatus状态)”,查看是否有修复程序。此外,您还可以检查“gmPositioningManager.start”的返回值,如果出现问题,它可以返回false。您也可以使用“getLocationStatus(LocationMethod)”手动检查“LocationStatus”。此页面可能对您有所帮助:

尝试使用-
gmPositioningManager.addListener(新的WeakReference(positionListener))您可以尝试收听“OnPositionChangedListener#onPositionFixChanged(LocationMethod,LocationStatus状态)”以查看是否有修复程序。此外,您还可以检查“gmPositioningManager.start”的返回值,如果出现问题,它可以返回false。您也可以使用“getLocationStatus(LocationMethod)”手动检查“LocationStatus”。本页可能对您有所帮助:
private PositioningManager.OnPositionChangedListener positionListener = new
    PositioningManager.OnPositionChangedListener() {

    public void onPositionUpdated(PositioningManager.LocationMethod method,
                                  GeoPosition position, boolean isMapMatched) {

        // set the center only when the app is in the foreground
        // to reduce CPU consumption
        if (!paused) {
            gmGeoCoordinate = position.getCoordinate();
        }
    }