标签: osmdroid

OSMDroid 加载图块的速度非常慢

我使用的是 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)

我似乎无法找到这种缓慢加载的原因。是否可以选择使用更简单的地图?那会有帮助吗?有没有其他解决方案,我做错了什么?

谢谢。

android openstreetmap osmdroid

5
推荐指数
1
解决办法
1173
查看次数

找出OSMdroid中的当前位置

我想找到我当前位置的地图并在我移动时通过在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)

android osmdroid

4
推荐指数
1
解决办法
1万
查看次数

如何在osmdroid中使用osmbonuspack?

我发现osmbonuspack但是维基中的API信息和文档非常低.

http://code.google.com/p/osmbonuspack/

我认为这个库升级osmdroid非常有趣,但我无法学会使用它.

已被某人使用过?

android openstreetmap osmdroid

4
推荐指数
1
解决办法
4093
查看次数

如何使用MOBAC离线创建OSMDroid SQLite磁贴源文件?

我一直在努力让自己的离线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)

android osmdroid

4
推荐指数
1
解决办法
5049
查看次数

Osmdroid地图旋转

我正在做osmdroid地图项目.我正在使用自定义瓷砖进行地图.谁能告诉我如何旋转自定义瓷砖地图?

android tiles map rotation osmdroid

4
推荐指数
1
解决办法
3523
查看次数

Android应用程序中预构建的本机库

我有一个Android应用程序,它使用一些预构建的本机库(Osmand预构建库).问题是,当我在手机上运行应用程序时,它表示缺少这些库.当我查看.apk文件时,没有"lib"文件夹 - 如何设置eclipse导出它们?

eclipse android osmdroid android-native-library

4
推荐指数
1
解决办法
2546
查看次数

Graphhopper, osmdroid 用于 osmdroid 离线路由

我一直在用 osmdroid 和 osm 奖励包(惊人的库!)搞砸了一段时间,并且一直在思考离线路由和转弯导航的想法,现在,我还没有尝试任何东西,但有些东西听起来很不错有希望将graphhopper加入混合:

官方维基指南如下:

  • 下载原始地图文件(.osm、.osm.pbf 等)。
  • 运行 ./graphhopper.sh import map_file

现在,这是为 MapsForge 设计的,我还没有机会查看生成的 .ghz 文件,其中包含地图的路由数据,但我的问题是,是否可以使用此路由数据构建一个 PathOverlay 对象进入 OSM Bonus Pack 来实际绘制某种路线?

我想知道是否有人已经尝试过这种类型的东西并且对此有话要说,任何帮助表示赞赏。

android openstreetmap osmdroid graphhopper

4
推荐指数
1
解决办法
4916
查看次数

当我触摸地图android Osm时如何关闭infoWindow

当我点击地图上的任何地方时,我不知道如何在OSMDroid中关闭InfoWindow.我试图检查setMapListener,但这种方式很糟糕,不起作用.有什么想法吗?

android osmdroid

4
推荐指数
1
解决办法
1116
查看次数

我可以在osmdroid上使用Google地图图块吗?

我正在开发一个支持谷歌地图瓷砖osmdroid的应用程序.可以在osmdroid中使用Google地图图块吗?

android google-maps openstreetmap osmdroid google-maps-android-api-2

4
推荐指数
1
解决办法
608
查看次数

如何在 OSMbonuspack 标记的描述中添加新行?

我正在使用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 openstreetmap marker osmdroid

4
推荐指数
1
解决办法
507
查看次数