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