我使用的是 osmdroid 版本 5.6.5(最新版本),地图的图块(MAPNIK)加载非常缓慢。
这发生在我尝试使用该应用程序的两台设备上,均具有高速互联网连接(蜂窝和 WIFI)。
这似乎是某个地方的问题,因为加载不可能那么慢
这是活动中地图的代码片段:
@Override
protected void onCreate( Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
appContext = getApplicationContext();
//important! set your user agent to prevent getting banned from the osm servers
Configuration.getInstance().load(appContext, PreferenceManager.getDefaultSharedPreferences(appContext));
setContentView(R.layout.navigation);
mMapView = (MapView) findViewById(map);
mMapView.setTileSource(TileSourceFactory.MAPNIK);
mMapView.setMultiTouchControls(true);
mMapView.setBuiltInZoomControls(true);
// add rotation gesture
mRotationGestureOverlay = new RotationGestureOverlay(this, mMapView);
mRotationGestureOverlay.setEnabled(true);
mMapView.setMultiTouchControls(true);
mMapView.getOverlays().add(this.mRotationGestureOverlay);
// Set to default location
IMapController mapController = mMapView.getController();
mapController.setZoom(15);
GeoPoint startPoint = new GeoPoint(48.8589654,2.2926013);
mapController.setCenter(startPoint);
}
Run Code Online (Sandbox Code Playgroud)
我似乎无法找到这种缓慢加载的原因。是否可以选择使用更简单的地图?那会有帮助吗?有没有其他解决方案,我做错了什么?
谢谢。
我想找到我当前位置的地图并在我移动时通过在OSMdroid中显示一个图标来更新它.我在给出具体位置纬度和经度以及绘图图标时发现没有问题但是当我给出当前位置纬度和经度时有两个错误.
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
mResourceProxy = new DefaultResourceProxyImpl(getApplicationContext());
setContentView(R.layout.main);
mMapView = (MapView) this.findViewById(R.id.mapview);
mMapView.setTileSource(TileSourceFactory.MAPNIK);
mMapView.setBuiltInZoomControls(true);
mMapView.setMultiTouchControls(true);
mapController = this.mMapView.getController();
mapController.setZoom(15);
Criteria criteria = new Criteria();
criteria.setAccuracy(Criteria.ACCURACY_FINE);
criteria.setAltitudeRequired(false);
criteria.setBearingRequired(false);
criteria.setCostAllowed(true);
criteria.setPowerRequirement(Criteria.POWER_LOW);
String provider = mLocMgr.getBestProvider(criteria, true);
Location location = mLocMgr.getLastKnownLocation(provider);
GeoPoint mypoint = new GeoPoint(location.getLatitude(), location.getLongitude()); // centre map here
GeoPoint mypointicon = new GeoPoint(location.getLatitude()+1000, location.getLongitude()+1000); // icon goes here
mapController.setCenter(mypoint);
mLocMgr = (LocationManager) getSystemService(LOCATION_SERVICE);
mLocMgr.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 100,
this);
ArrayList<OverlayItem> items=new ArrayList<OverlayItem>();
items.add(new OverlayItem("Here", "Sample Description", mypointicon));
this.mMyLocationOverlay …Run Code Online (Sandbox Code Playgroud) 我发现osmbonuspack但是维基中的API信息和文档非常低.
http://code.google.com/p/osmbonuspack/
我认为这个库升级osmdroid非常有趣,但我无法学会使用它.
已被某人使用过?
我一直在努力让自己的离线Mobile Atlas Creator OSMDroid SQLite地图与OSMDroid 3.0.8一起工作,但没有运气.这是一个漫长的3天.我将尝试用我的应用程序中的剪辑进行解释.我一直在扩展ItemizedIconOverlay和OverlayItem,所以我希望它不会太混乱.
我创建了自己的OSMDroid SQLite地图文件,其中包含3种不同的缩放级别,如10平方公里.我将生成的"base.sqlite"文件复制到我的project/res/raw /目录中.请注意,我的应用程序中的GeoPoints应该在地图的图块范围内."base.sqlite"文件应保存到特定于应用程序的数据目录中.
接下来,我将手机上的/ osmdroid目录删了,这样我就可以关闭以前缓存的地图了.我以为我有自己的离线地图工作,直到我打开飞机模式并注意到缓存的地图仍然可用.
现在,我得到的只是空白.我不知道如何实现这一目标.我看到了几个例子,但经过大量的实验,我没有成功地让它们中的任何一个工作.
private Hashtable<String, NodeOverlayItem> nodes = new Hashtable<String, NodeOverlayItem>();
private MapView mapView;
private Context context;
private LocationManager locManager;
private MapController mapController;
private MapTileProviderArray mapProvider;
private String mapTileArchivePath = "base.sqlite";
private ResourceProxy resourceProxy;
@Override
public void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
try {
this.mapView = new MapView(this, 256);
this.mapView.setBuiltInZoomControls(true);
this.mapView.setMultiTouchControls(true);
this.context = this.getApplicationContext();
this.resourceProxy = new DefaultResourceProxyImpl(context);
XYTileSource TILERENDERER = new XYTileSource("test",
ResourceProxy.string.offline_mode,
1, 20, 256, ".png", "http://127.0.0.1");
SimpleRegisterReceiver simpleReceiver …Run Code Online (Sandbox Code Playgroud) 我正在做osmdroid地图项目.我正在使用自定义瓷砖进行地图.谁能告诉我如何旋转自定义瓷砖地图?
我有一个Android应用程序,它使用一些预构建的本机库(Osmand预构建库).问题是,当我在手机上运行应用程序时,它表示缺少这些库.当我查看.apk文件时,没有"lib"文件夹 - 如何设置eclipse导出它们?
我一直在用 osmdroid 和 osm 奖励包(惊人的库!)搞砸了一段时间,并且一直在思考离线路由和转弯导航的想法,现在,我还没有尝试任何东西,但有些东西听起来很不错有希望将graphhopper加入混合:
官方维基指南如下:
现在,这是为 MapsForge 设计的,我还没有机会查看生成的 .ghz 文件,其中包含地图的路由数据,但我的问题是,是否可以使用此路由数据构建一个 PathOverlay 对象进入 OSM Bonus Pack 来实际绘制某种路线?
我想知道是否有人已经尝试过这种类型的东西并且对此有话要说,任何帮助表示赞赏。
当我点击地图上的任何地方时,我不知道如何在OSMDroid中关闭InfoWindow.我试图检查setMapListener,但这种方式很糟糕,不起作用.有什么想法吗?
我正在开发一个支持谷歌地图瓷砖osmdroid的应用程序.可以在osmdroid中使用Google地图图块吗?
android google-maps openstreetmap osmdroid google-maps-android-api-2
我正在使用OSMbonuspack创建标记并希望添加带有单独行的描述。但是,普通的换行符 ( \n) 不起作用。所以我想知道是否有可能做到这一点。但这似乎是一件很常见的事情,所以我希望有可能这样做。我尝试了以下代码,但换行符无效:
Marker playgroundMarker = new Marker(mapView);
playgroundMarker.setPosition(new GeoPoint(latitude, longitude));
playgroundMarker.setTitle(title);
playgroundMarker.setSubDescription("first line\nsecond line");
Run Code Online (Sandbox Code Playgroud)
这导致以下描述:first line second line而不是:
first line
second line
Run Code Online (Sandbox Code Playgroud)
目前我唯一的解决方案是将描述一分为二。使用第一部分作为片段 ( playgroundMarker.setSnippet(...)) 和第二部分作为描述 (playgroundMarker.setSubDescription(...) )。但应该有更好的方法。
有任何想法吗?
android ×10
osmdroid ×10
eclipse ×1
google-maps ×1
graphhopper ×1
map ×1
marker ×1
rotation ×1
tiles ×1