我遇到了关于CityMaps的一些位置问题,如下所示:
1,我创建了一个Activity,它扩展FragmentActivity实现接口MapViewReadyListener,LocationSource,LocationListener,然后初始化SupportCitymapsMapFragment实例,设置一些参数如下:
fragment = (SupportCitymapsMapFragment)getSupportFragmentManager().findFragmentById(R.id.map);
mLocationManager = (LocationManager)context.getSystemService(Context.LOCATION_SERVICE);
mLocationManager.requestLocationUpdates(LocationManager.GPS_PROVIDER, 0, 0, this);
mParams = new LocationParams(1, 1000, 1000);
if (fragment != null) {
fragment.getMapView().startUpdatingLocation();
fragment.getMapView().getBusinessLayer().setVisible(false);
fragment.getMapView().getRegionLayer().setVisible(false);
fragment.setMapViewReadyListener(MainActivity.this);
fragment.getMapView().setLocationSource(this);
}
在onLocationChanged(位置位置)方法中,我设置了这样的地图位置:
CitymapsMapView map = fragment.getMapView();
map.getBusinessLayer().setVisible(false);
map.getRegionLayer().setVisible(false);
LonLat position = new LonLat(location.getLongitude(), location.getLatitude());
int zoom = 15;
float orientation = 45.0f;
float tilt = 15.0f;
MapPosition mapPosition = new MapPosition(position, zoom, orientation, tilt);
map.setMapPosition(mapPosition);
但是当我打开gps和我的应用程序时,我发现地图上显示的位置不是我当前的位置,而是最后一个地方,更重要的是,地图有时甚至没有加载,即使我的网络也很好,为什么? / p>
2,我尝试用其他方式获得经度/纬度坐标,然后用传统方式创建MapView。当我去一个新的地方并打开我的应用程序时,我发现箭头仍然在最后一个地方但吐司给了我正确的关于我当前位置的提示。大约半小时后,再次打开应用程序,这是正确的,为什么会这样?
3,我已经为标记添加了标签,我是否可以自定义标签的字体样式?
答案 0 :(得分:0)
我是Citymaps SDK的开发人员,我会尽力回答您的问题。
1)您似乎误解了LocationSource
界面的工作原理。请查看CitymapsLocationSource.java以查看示例实施。
2)如果您使用的是自定义位置信息源,则由您自己知道该位置何时发生变化
3)此时,该API未公开。如果您希望标记标签包含自定义字体,建议您将自定义ViewGroup
呈现给Bitmap
并将Bitmap
设置为标记的图像。