osmdroid MapTileDownloader 现在显示 403 禁止作为 HTTP 响应

2024-02-06

我已经成功使用 osmdroid-android-4.1.jar 一段时间来在我的应用程序中显示 OSM 地图图块。 现在,从昨天开始,我根本没有显示任何图块。当我将手机连接到 PC 时,我在日志中看到 403 禁止响应。我使用 Android Studio 在 Ubuntu 机器上构建了该应用程序。我还没有很好地理解 .aar 文件,是否 4.1jar 现在已经过时并且没有设置正确的用户代理?

我知道现在不支持 Mapquest,但我正在使用 Mapnik 切片

非常感谢所有信息

更新 我刚刚在我的 Windows PC 上尝试了一个基于 Eclipse 的旧项目。它使用 4.1 jar,我在模拟器中运行它。我看到相同的 403 响应,但没有地图图块。瓷砖来源是

mMapView.setTileSource(TileSourceFactory.DEFAULT_TILE_SOURCE);

我知道这个项目曾经有效。缓存图块显示“正常”,但如果我移动地图 - 没有图块。

整个代码是

public class OsmdroidDemoMap extends Activity {
    private MapView         mMapView;
    private MapController   mMapController;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.osm_main);
        mMapView = (MapView) findViewById(R.id.mapview);
        mMapView.setTileSource(TileSourceFactory.DEFAULT_TILE_SOURCE);
        mMapView.setBuiltInZoomControls(true);
        mMapController = (MapController) mMapView.getController();
        mMapController.setZoom(13);
        GeoPoint gPt = new GeoPoint(51500000, -150000);
        mMapController.setCenter(gPt);
    }
}
/* HAVE THIS AS YOUR osm_main.xml
---------------------------------------------------------- XML START
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >
    <org.osmdroid.views.MapView
        xmlns:android="http://schemas.android.com/apk/res/android"
        android:id="@+id/mapview"
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:clickable="true" />
</LinearLayout>
---------------------------------------------------------- XML END
Include slf4j-android-1.5.8.jar and osmdroid-android-4.1.jar in the build path
(Google search for where to get them from)
*/

我之前已经发布过这段代码作为答案和最小的工作 osmdroid 示例的示例 - 好吧,现在它不是一个工作示例!


我们今天也遇到了同样的问题。

在 build.gradle 中我们改变了这一点:

compile files('libs/osmdroid-android-4.2.jar')

to:

compile 'org.osmdroid:osmdroid-android:5.1@aar'

并添加了这个:

OpenStreetMapTileProviderConstants.setUserAgentValue(BuildConfig.APPLICATION_ID);

在加载地图之前。

您可以在此处阅读有关该问题的更多信息:https://github.com/osmdroid/osmdroid/issues/366 https://github.com/osmdroid/osmdroid/issues/366.

希望这也对您有帮助!

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

osmdroid MapTileDownloader 现在显示 403 禁止作为 HTTP 响应 的相关文章

随机推荐

  • 如何将列的子级与底部对齐

    我正在尝试构建一个通用主页 我想将列的最后一个子项 其中包含页面的所有小部件 与屏幕底部对齐 但对齐中包裹的小部件没有移动 以下是对我来说最有意义的 Column mainAxisSize MainAxisSize max children
  • 解析具有自定义声音的推送通知播放默认声音

    我发送应用程序收到的解析推送通知 但请求的声音未播放 而是播放默认声音 应用程序已将声音保存在文档文件夹中 我可以在 iTunes 中查看它们是否在那里 在某些时候 这是有效的 但由于某种原因 它已停止播放请求的声音 如果我记录推送通知用户
  • Jenkins 将不会使用 Java 7 编译器

    我正在与一个团队合作开发一个 Maven 项目 并在 Jenkins 中为其设置了一个构建作业 最近 团队中的某人添加了打开字符串的代码 这导致 Jenkins 中的构建失败 并出现以下错误 error strings in switch
  • Bootstrap 响应式折叠子菜单在第一次折叠时具有固定高度

    这个问题可能出现在所有 据我所知 Twitter Bootstrap 版本中 所以 我有一个导航栏 当屏幕较小时 它就变成了一个可折叠托盘 此行为可以在引导演示站点上看到 我还有子菜单 它们在最初的导航栏扩展时显示为折叠的 问题是 在第一次
  • 在我的网站中显示 Facebook Graph API 点赞数

    我在 Facebook Graph API 中使用 fields fan count 从我的 Facebook 页面获取喜欢的数量 但我不知道如何在我的网站中显示计数器 那是网址 该 URL 返回点赞数和我的页面 id 我想只显示 fan
  • ZF2 Form:自定义元素顺序

    我正在为登录用户创建一个表单来更改其密码 因此我创建了可用的现有密码重置表单的子类 除了现有密码的附加字段之外 表格将完全相同 到目前为止 它一直有效 只是我无法找到一种方法来手动设置新字段的顺序 我让它出现的唯一地方是表格的末尾 看来ZF
  • 如何使用 oauth/jwt 保护我的 http 触发的 GCP 功能?

    借助 AWS Lambda 和 API Gateway 我可以部署通过 http 公开的函数 借助 Cognito 和 API Gateway 我可以使用 oauth2 和 jwt 令牌来保护该函数 借助 GCP 函数和 http trig
  • Jetpack Compose - 当宽度增加时行剪切子项

    在右侧 我有一个可组合项中的项目列表 每个项目都位于一行内 所有项目都位于一列内 所有的子项都被剪裁以适应我不想要的屏幕 我希望这些项目即使在屏幕之外也能完全渲染 因为我在它们上面有一个可缩放的容器 正如您所看到的 文本字段中的文本如何垂直
  • Swift:尝试使用点击手势时出现“无法识别的选择器发送到实例”错误

    我收到的错误 由于未捕获的异常 NSInvalidArgumentException 而终止应用程序 原因 App DetailController tap 无法识别的选择器发送到实例 0x109803800 我的视图控制器名为 Detai
  • 如何强制 Doctrine 更新数组类型字段?

    我有一个带有数组类型字段的 Doctrine 实体 ORM Table class MyEntity var array items ORM Column type array private items param SomeItem it
  • 使用 Java 将 DOC 文件转换为 DOCX

    我需要在我目前正在开发的Java软件中使用DOCX文件 实际上是其中包含的XML 但是我公司中的一些人仍然使用DOC格式 您知道是否有一种方法可以使用 Java 将 DOC 文件转换为 DOCX 格式 我知道可以使用 C 但这不是一个选择
  • 防止企业iOS应用程序被删除

    我想防止企业 iOS 应用程序被用户删除 Apple 提供了相关文档如何对 Web Clip 执行此操作 https developer apple com library archive documentation NetworkingI
  • 膨胀异常-膨胀文本视图时出错

    我有这个主要活动 我已在登录按钮上调用了验证方法 但是 当我单击该按钮时 我没有收到错误消息 并且我的应用程序崩溃了 任何帮助 将不胜感激 谢谢 这是我的 MainActivity Java 类 public class MainActiv
  • 强制 WCF 代理生成别名前缀

    为了符合客户端架构 我一直在尝试生成一个 WCF 客户端代理 该代理能够序列化为具有如下所示根节点的结构
  • 网站要求在 MVC 控制器上“需要身份验证”,但不要求在其他控制器上进行“身份验证”

    我有一个 asp net C MVC 网站 它使用 SimpleAuthentication 和表单身份验证 一切正常 需要人们登录才能访问页面 但是 我有一个名为 ReportsController 的控制器 每当您访问此控制器中操作的
  • 如何使用 lambda 函数更改 pandas df 中任意列的名称?

    有没有办法使用更改 pandas 数据框中的某些列名称lambda 但不是所有的 例如 假设该数据框的列名称为osx centos ubunto windows 在此数据框中 我想将所有列名称替换为附加的列名称x 所以在这种情况下 我可以通
  • 为什么我在 iOS 8 模拟器上收到这个 clang 错误:_fwrite$UNIX2003

    我已将新的 iOS 8 下载到我的手机中 并将最新的 Xcode 下载到我的 Mac 上 一切正常 但在加载并尝试新的 iPhone 6 plus 模拟器后 当我尝试 iPhone 4s 或 5 模拟器 适用于 5s 时 出现以下错误 Un
  • 如何处理 Elastic beanstalk 部署,使其仅上传更改的文件

    由于我是 AWS 新手 因此我在使用 Elastic beanstalk 时遇到了问题 我设置了一切并部署了第一个应用程序 到目前为止一切顺利 但是当我推送另一堆更改时 它只是替换了整个文件 而不仅仅是更改了的文件 在开发过程中 本地主机和
  • 我无法通过鼠标事件添加灯光

    我无法在 Three js 场景中使用 keydown 事件添加灯光 我有以下功能 function putLight light new THREE SpotLight 0xffffff light position set 10 80
  • osmdroid MapTileDownloader 现在显示 403 禁止作为 HTTP 响应

    我已经成功使用 osmdroid android 4 1 jar 一段时间来在我的应用程序中显示 OSM 地图图块 现在 从昨天开始 我根本没有显示任何图块 当我将手机连接到 PC 时 我在日志中看到 403 禁止响应 我使用 Androi