问题标签 [osmdroid]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
android - 在 OSMDroid 中使用地图与道路交互?
我正在尝试学习如何在 Android 上使用 OSMDroid。我的意思是我让 MapView 从 SD 卡上的 zip 存档中显示地图。该档案是使用OpenStreetMap Mapnik 格式的Mobile Atlas Creator 创建的。
所以我想知道如何与地图上显示的道路和路径进行交互?据我所知,我需要这样做才能计算路线。
是否有可能使用 OSMDroid?我需要使用不同的地图格式吗?
android - osmdroid 入门 - 安装失败?
我是安卓新手。我有一些 java 知识(不是很广泛),并且我已经完成了一些 android 教程。
我现在正在尝试使用 osmdroid,我只想让地图显示。
我正在使用这里的代码:Help setting up OSMdroid library for display OpenSourceMaps。但是当我尝试运行它时(在具有正确 API 级别的虚拟设备上),控制台显示:
我仍然觉得 logcat 很混乱。它说:PID 90 tag installd 'Couldn't openat cache: No such file or directory'
这里可能是什么问题?我对avd做错了什么?我怎样才能从 logcat 获得更多有用的信息?
解决方案我没有在构建路径中包含 slf4j。:) 因此,对于遇到此问题的其他人,您可以从此处下载 jar:http : //www.slf4j.org/android/,然后以与 osmdroid.jar 相同的方式将其包含在构建路径中(即。在您的项目中创建一个 lib 文件夹并将 jar 放在那里)
android - 为我的地图设置 onDragListener?
所以我正在使用 osmdroid 地图,并试图在用户像这样拖动地图时设置一个监听器。
现在,一切正常,但是当我将此代码放入程序中时出现错误。
无论如何这是正确的使用方法,因为我希望在用户在地图上移动时得到通知。我希望能够检查用户移动地图的位置,因此我正在观看 getX 和 getY。这样做的原因是,如果地图超出我设置的范围,我可以停止它的移动。
这是正确的方法吗?
android - 使用 osmdroid-android-3.0.7 运行时无法访问资源图标
我正在尝试启动一个简单的地图活动,该活动使用 osmdroid-android-3.0.7 库显示地图和几个标记。该代码在旧版本(1.10)下工作。我收到以下错误:02-03 15:14:30.574: E/AndroidRuntime(10277): Caused by: java.lang.IllegalArgumentException: Resource not found: marker_default.png
当我解压缩 jar 文件时,我可以在顶级目录中看到一个图标列表,其中一个确实是 marker_default.png。这是代码片段:
当我尝试使用简单的覆盖并因此没有为标记设置任何图标时,我得到了相同的错误,除了它引用了 person.png (该图标也在解压缩的 jar 文件中)。我已经通过项目属性添加了 jar 文件,并且可以正常访问 api。
为什么我无法访问图标?
顺便说一句,我试图将图标复制到我的项目中,但我得到了同样的错误。
谢谢, 安妮娅
android - Android 自定义瓷砖地图
我正在开展一个项目,该项目需要显示建筑物的自定义瓷砖地图,以及要在建筑物内绘制为对象的多达数百个“点”,所有这些都在一个或多个移动平台上(Android 开始)。
我想到了两种方法来解决这个问题。一种是使用 osmdroid 或 mapsforge 来显示可缩放的平铺地图。然而,我遇到的一个问题是我无法找到软件来自动将单个图像拆分为正确的平铺格式。MapTiler 工作得相当好,除了我的 Y 轴图块都颠倒了。
第二种是将整个图像显示为图像视图,然后编写代码以在图像视图滚动时在地图上显示兴趣点。但是,我不太确定如何在图像视图中已经显示的图像之上绘制未定义数量的图像。
有没有人有任何想法,或者他们能否指出我正确的方向?
android - OSMDroid PathOverlay 绘图在高缩放级别时损坏
我正在使用 OSMdroid 来实现映射应用程序。
我已经实现了一个自定义 MapTileProvider,它使用允许缩放级别高达 22 的平铺源。
默认的 MAPNIK 提供程序仅允许缩放到 18 级。
问题是任何 PathOverlay 实例在缩放级别 19 之前都可以完美绘制,但在缩放级别 20-22 时无法正确绘制。看起来有人用橡皮擦擦掉了路径长度的 90% 以上(见下面的屏幕截图)。
我已经逐步完成了 PathOverlay 的 draw() 方法,并且 exerything似乎计算正确(对于 ZoomLevel 22,中间点显示正确,然后 XY 投影除以 22-ZoomLevel 以获得当前屏幕坐标)。
谁能提供一些关于问题是什么以及如何解决的见解?
如果我使用 Cloudmade 小图块调用 MapView,也会发生同样的事情,它允许放大到 20 级并且是“内置”osmDroid 图块提供程序类。
因此,问题似乎不在于 tile 源或提供程序,而在于 canvas 绘图方法。关于如何解决这个问题的任何想法?
在 zoomLevel 19 我可以很好地看到我的路径:
但这是下一个缩放级别的相同路径:
android - 使用 osmdroid 覆盖项目的自定义信息气泡
我在我的新 Android 项目中使用 osmdroid(因为我希望能够使用离线地图),但是在自定义分配给叠加项目的信息气泡的外观时遇到了很多困难。
现在,我正在使用ItemizedOverlayWithFocus
叠加层来显示我的项目;查看它的代码,我注意到整个东西都是在onDrawFinished
方法中绘制的,所以我尝试创建自己的自定义叠加层来覆盖这个方法,但这很难得到结果。我想得到的是这样的:
你们是如何设法在项目中获得自定义信息气泡的?
我找到了一些类来为 Google 的 MapView 实现这样的事情(比如Jeff Gilfelt 的 MapView Balloons),但对于 osmdroid 却没有。
android - OSMDroid 覆盖多个静态和一个动态
在我的应用程序中,我已经在地图上有了一些静态叠加层,还有一个动态叠加层会在 GPS 坐标发生变化时改变它的位置。
我的问题是,当 GPS 坐标发生变化时,我必须清除动态叠加层并创建一个新叠加层,但是当我这样做时,它会清除所有叠加层,使用:
所以,我正在努力寻找更好的方法来做到这一点。
清除所有叠加层,然后将它们再次放置在地图上(消耗内存)或者我可以清除特定的叠加层吗?
谢谢
编辑:
这是动态标记:
这是放置静态标记的函数:
android - 为什么 MapView onTouchListener 只触发一次?
我想检测用户对地图的每一次触摸,因此我为 MapView 的实例注册了一个侦听器。但是,这个监听器只被调用一次,之后如果我想让它再次工作,我需要关闭应用程序。我正在使用 OsmDroid。
android - 需要检查特定位置是否在地图的边界内
我使用 osmdroid MapView。我需要查找用户位置是否在地图边界内(取决于缩放级别)。
我尝试使用 MapView.getBoundingBox().contain(location).. 但似乎 getBoundingBox() 返回了可见边界。
有没有办法获得原始地图边界(取决于缩放级别)?
谢谢