标签: osmdroid

两指或小指缩放至 osmdroid 中的地图视图


我需要帮助,

我试图通过让用户多点触摸(首先是 2 个手指触摸)来缩放到地图视图,我知道有 setMultiTouchControls() 函数,但这不是我想要做的。

我尝试用图片来解释:)这比写作更容易;

黑色粗体箭头表示手指的移动方向。相反方向也可以考虑同样的情况。(放大)

osmdroid mapview 多点触控

android multi-touch zooming osmdroid android-mapview

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

在 Android 版 OSMDroid 中旋转标记?

好吧,这个问题已经困扰我好几个小时了,我有以下相对简单的代码,可以在 osmdroid 地图上放置一个标记

final ArrayList<OverlayItem> items = new ArrayList<OverlayItem>();
OverlayItem marker = new OverlayItem("markerTitle", "markerDescription", new GeoPoint(52.033954,1.210179));
marker.setMarkerHotspot(OverlayItem.HotspotPlace.TOP_CENTER);
items.add(marker);

Drawable newMarker = this.getResources().getDrawable(R.drawable.maincar);
DefaultResourceProxyImpl resProxyImp = new DefaultResourceProxyImpl(getApplicationContext());
ItemizedIconOverlay markersOverlay = new ItemizedIconOverlay<OverlayItem>(items, newMarker, null, resProxyImp);
mapView.getOverlays().add(markersOverlay);
Run Code Online (Sandbox Code Playgroud)

然而,标记始终面向屏幕顶部(0 度旋转)。我怎样才能轻松地将每个标记旋转到指定的角度(360 度是一个完整的圆)?

java maps android openstreetmap osmdroid

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

使用 osmdroid 进行聚类标记

我是新来的osmdroid。我正在使用离线地图mbtiles。我在地图上使用了太多标记,这使得我的地图非常慢。我读到了一些聚类会有所帮助的地方,但我没有得到任何关于如何在osmdroid. 请帮忙。

android osmdroid

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

使用 osmdroid 在 OpenStreet Maps 上制作动画标记

我正在使用此处给出的谷歌地图标记动画逻辑。

我的标记变得动画,但每次之后marker.setPosition(newPosition); 我需要调用mapView.invalidate();刷新地图,导致动画非常缓慢。

有什么解决方法吗?

android openstreetmap osmdroid

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

如何使用带有颤振的传单“openstreetmap”?

我需要帮助将传单地图集成到颤振中。我正在处理的项目需要在地图上显示自定义标记、动画、路线和绘图。但是我在 flutter 中找不到任何解释这一点的文档或教程。

openstreetmap osmdroid leaflet flutter leaflet.draw

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

OSMdroid:如何从zip存档加载离线地图 - MapTileFileArchiveProvider

我真的需要一些OSMdroid库的帮助.将映射存储在sdcard中作为zip文件很有用.此外,可以解压缩地图,并且可以直接使用图像文件以进行更快的渲染.

我设法从切片中加载瓷砖,当瓷砖未被切割,具有.tile扩展名存储在文件夹/ sdcard/osmdroid/tiles/Mapnik/...中. 为了创建我的地图,我使用了Mobile Atlas CreatorOSMAND磁贴存储格式.

我在网上阅读了一些声称存储包含贴的zip文件存储在/ sdcard/osmdroid中的教程,然后将从zip加载离线地图.但它对我不起作用.

  1. 有没有人设法使它工作?如果是这样的话?

  2. 我是否需要实例化自己的MapTileFileArchiveProvider?如果是这样,我该怎么做?任何例子?

android offline map archive osmdroid

3
推荐指数
1
解决办法
9910
查看次数

设置PathOverlay行的宽度(OSMDroid)

有谁知道如何在OSMDroid中为PathOverlay元素设置一行的宽度?

PathOverlay类本身并没有真正有用的东西.我试着进入PathOverlay的draw方法使用的Paint和Canvas.android.graphics.Paint类有一个setStrokeWidth(float)方法,但这对行宽没有影响.

透过Paint API,没有太多其他帮助; 同样适用于画布.

android osmdroid

3
推荐指数
1
解决办法
2006
查看次数

android中的离线路由

我正在尝试开发一个Android应用程序来处理离线地图.感谢一些帮助,我创建了地图,并且我已经能够离线加载地图.

现在我正在尝试创建路线,但我还不太了解如何做到这一点.

如果我是正确的,我必须使用OSM有节点,这样的与关系的描述类似的文件在这里.

我的问题是,如何将此文件的数据加载到我的应用程序?我无法找到如何将此数据加载到应用程序的任何示例.我发现的是,这个osm文件可以转换为更小的pbf文件.

任何人都可以解释我如何使用这个osm数据?谁能举个例子?或者我采取了错误的做法?

这段代码加载一个700kb的OSM文件,但是因为它有99MB所以它会加载我的文件.

               // create the factory
           SAXParserFactory factory = SAXParserFactory.newInstance();
           // create a parser
           SAXParser parser = factory.newSAXParser();

           // create the reader (scanner)
           XMLReader xmlreader = parser.getXMLReader();

           // assign our handler
           xmlreader.setContentHandler(osmHandler);


           xmlInputStream = context.getResources().openRawResource(R.raw.lisboa);
           //xmlInputStream = context.getResources().openRawResource(R.raw.milano);
           //xmlInputStream = new FileInputStream(new File(Environment.getExternalStorageDirectory()+File.separator+"MyMaps","Lissabon.osm"));

           xmlreader.parse(new InputSource(xmlInputStream));
           osmHandler.isLoaded=true;
Run Code Online (Sandbox Code Playgroud)

我正在使用osmbonuspack_v3.4和osmdroid_3.0.10.

谢谢

routing android offline openstreetmap osmdroid

3
推荐指数
1
解决办法
2342
查看次数

如何以编程方式移动mapView(osmdroid)

我有一个带有mapView,zoomIn按钮,zoomOut按钮的LinearLayout.应用程序接收touchevents,它应该管理具有给定信息(X坐标,Y坐标,触摸事件类型)的LinearLayout子项我能够使用以下代码zoomIn和ZoomOut,但我无法移动地图:

@Override
    public boolean onTouch(View arg0, MotionEvent event) {
        int action = event.getAction();

         switch(action)
         {
            case MotionEvent.ACTION_DOWN:
                savedTouchedX = event.getX();
                savedTouchedY = event.getY();
                break;
            case MotionEvent.ACTION_MOVE:
                doPanning(event, mapView);
                break;
            case MotionEvent.ACTION_UP:
                doPanning(event, mapView);
                savedTouchedX = -1;
                savedTouchedY = -1;
                break;
            default:
                break;
         }
         return true;
    }
});

//move mapView
private boolean doPanning(MotionEvent e, MapView mapView)
{
    if(savedTouchedX >= 0 && savedTouchedY >= 0)
    {
        IGeoPoint mapCenter = mapView.getMapCenter();
        GeoPoint panToCenter = new GeoPoint((int)(mapCenter.getLatitudeE6() + (e.getY() - savedTouchedY) * 1E5),(int)(mapCenter.getLongitudeE6() - …
Run Code Online (Sandbox Code Playgroud)

java android touch-event osmdroid android-mapview

3
推荐指数
1
解决办法
2204
查看次数

Osmdroid地图未加载到我的设备上

我有一台Alcatel One Touch 7040,当我测试我的osmdroid样本时,地图不会渲染.我已经在其他设备上进行了测试,地图正确地渲染,只有在这个设备上它们不是.我以为我的设备内存很低,所以我从我的设备中删除了一些应用程序,仍然没有任何改进,有人可以告诉我可能是什么原因?

以下是我的logcat(由于超出了字数限制,它的某些部分已被删除):

10-17 23:03:27.688 26424-26424/marine.com.osmsample I/OsmDroid: Using tile source: Mapnik
10-17 23:03:27.702 26424-26424/marine.com.osmsample E/OsmDroid: unable to create a nomedia file. downloaded tiles may be visible to the gallery. open failed: ENOENT (No such file or directory)
10-17 23:03:27.715 26424-26424/marine.com.osmsample E/SQLiteLog: (14) cannot open file at line 30202 of [00bb9c9ce4]
10-17 23:03:27.715 26424-26424/marine.com.osmsample E/SQLiteLog: (14) os_unix.c:30202: (2) open(/storage/sdcard0/osmdroid/tiles/cache.db) - 
10-17 23:03:27.729 26424-26424/marine.com.osmsample E/SQLiteDatabase: Failed to open database '/storage/sdcard0/osmdroid/tiles/cache.db'.
                                                                      android.database.sqlite.SQLiteCantOpenDatabaseException: unknown error (code 14): Could not open database
                                                                          at …
Run Code Online (Sandbox Code Playgroud)

android openstreetmap osmdroid

3
推荐指数
1
解决办法
4462
查看次数