使用 Phonegap 离线浏览已知地图

2024-01-06

您好,提前谢谢您,

我想问是否有一种方法可以编译已知的谷歌地图图块并将其加载到 Phonegap 应用程序中。

更具体地说,我正在开发一个应用程序,涉及特定区域内的地理位置、路径导航等。由于应用程序的使用性质(例如,它可能用于野生动物),用户的手机可能无法获得信号来连接互联网,因此我希望即使在手机离线。

我还考虑如果提前检索谷歌地图,是否可以获得缓存的图块。 Phonegap 可以做到这一点吗?

我也愿意接受有关其他地图服务的任何建议,而不仅仅是谷歌地图。


我一直致力于使用 OpenLayers 缓存具有phonegap 的开放街道地图图块。我使用 PhoneGap-Downloader (https://github.com/phonegap/phonegap-plugins/tree/master/Android/Downloader) 将图块存储在文件系统上,并使用 localstorage 将图块的 url 映射到文件系统上的位置。在 openlayers 中,我子类化 OpenLayers.Layer.OSM 以重载 getURLasync 并拦截图块 URL 的设置:

EDIT:在最新版本的phonegap中,不需要PhoneGap-Downloader插件,只需使用本机文件传输:http://docs.phonegap.com/en/2.3.0/cordova_file_file.md.html#FileTransfer_download http://docs.phonegap.com/en/2.3.0/cordova_file_file.md.html#FileTransfer_download

OSMWithLocalStorage = OpenLayers.Class(OpenLayers.Layer.OSM, {
    initialize: function(options) {
        OpenLayers.Layer.OSM.prototype.initialize.apply(this, ["CachedMap"]);
        this.async = true;
        this.isBaseLayer = true;

        this.url = 'http://tile.openstreetmap.org/${z}/${x}/${y}.png';
    },
    getURLasync: function(bounds, scope, prop, callback) {
        var url = OpenLayers.Layer.OSM.prototype.getURL.apply(this, [bounds]);
        var cached = window.localStorage.get(url);

        if(cached){
            scope[prop] = cached;
        }
        else{
            scope[prop] = url;
        }

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

使用 Phonegap 离线浏览已知地图 的相关文章

  • 使用 WL.Client.reloadApp 重新加载应用程序时是否会调用 wlcommoninit

    使用 WL Client reloadApp 重新加载应用程序时 是否会调用 wlcommoninit 我在混合应用程序中有用户注销功能 注销后 将调用 WL Client 的 reloadApp 方法 重新加载后 似乎没有调用 wlcom
  • Visual Studio Taco - Remotebuild 将不再部署到远程设备

    直到最近 2016 年 9 月 15 日左右 我还能够使用 VS2015 以及最新版本的 TACO 和 Remotebuild 来构建 Cordova 项目并将其部署到远程设备 iPhone 6 我现在运行的是 ios 10 并更新了 iT
  • 修复了 Google 地图混搭中的图例

    我有一个带有 Google 地图混搭的页面 其中的图钉按日期 周一 周二等 进行颜色编码 包含地图的 IFrame 是动态调整大小的 因此当浏览器窗口调整大小时 它也会调整大小 我想在地图窗口的一角放置一个图例 告诉用户每种颜色的含义 Go
  • 标记聚类在 Android 中不显示标记?

    我在 Android 的 PagerFragment 中设置了 MapView 我按照 Google 示例进行操作 但使用 V2 API 设置带有群集标记的地图 它向我显示了一张没有标记的黑色地图 我哪里做错了 import android
  • Android 上的 Ionic Cordova 相机插件错误

    科尔多瓦版本是 6 3 0 Cordova Android版本是 5 0 0 相机插件版本 cordova plugin camera 2 2 0 相机 我的代码适用于 Android 5 0 和 Android 6 0 的多种设备 但不适
  • 如何在android中的地图上显示当前位置标记?

    我正在开发一个应用程序 我想在地图中使用标记显示当前位置 我正在使用谷歌地图 v2 在这里 当 GPS 关闭时 我可以显示地图和标记 但当 GPS 打开时 地图上看不到任何标记 我的要求是在地图上显示当前位置的标记 我尝试这样 Overri
  • 跨 webView 和 CordovaWebView android 共享 localStorage

    我正在尝试在 webView 和 CordovaWebView 之间共享活动数据 CordovaWebView 当然使用 webView 这就是为什么我不明白为什么存储在我的 PhoneGap 应用程序的 localStorage 中的数据
  • chrome 检查器,远程调试在我的移动应用程序上不再正常工作

    我使用 Cordova Ionic 构建了一个渐进式 Web 应用程序 三年来的大部分时间里 我一直在使用开发工具来排除故障并分析我的应用程序的内部工作原理 然而 在过去的几周里 我认为自从 Chrome 更新到 v70 以来 开发工具无法
  • 此错误消息“insertId: Error: INVALID_ACCESS_ERR: DOM Exception 15”的含义是什么?

    我正在使用 jquery mobile phonegap 和 openDatabase 开发一个应用程序 当应用程序执行时 我可以在 Safari 浏览器的控制台中看到SQL结果集与此消息 insertId Error INVALID AC
  • 来自 HTML5 的 Phonegap Bonjour/Zeroconf 或 Websocket IP 发现

    我正在尝试实现一个 Phonegap HTML5 应用程序 该应用程序连接到 Websocket 服务器 在嵌入式设备中运行 也有 Bonjour 服务 以在家庭网络内交换数据 我想知道使用 Phonegap 检测服务器 IP 的最佳方法
  • 谷歌坐标认证

    当我尝试连接到 Google 坐标时 总是出现异常GoogleAuthException 我拥有 Google 地图协调中心许可证 我确实使用我的包应用程序名称和 SHA1 在 google 控制台中创建了我的客户端 ID 我将权限添加到清
  • 如何使用phonegap在iOS应用程序中防止键盘推送webview

    当屏幕底部的输入字段获得焦点时 键盘会向上推我的网络视图 并且页面的上部不再可见 我想防止键盘推高网络视图 有人有主意吗 对焦 设置window scrollTo 0 0 这可以防止键盘完全推高 webview input on focus
  • 谷歌地图初始化无法使用选项卡

    我正在尝试在选项卡单击事件上初始化 Google 地图 因为目前我得到的地图如下 My Code function render map This function will render a Google Map onto the sel
  • 防止 iOS 键盘在 cordova 3.5 中滚动页面

    我正在使用 Cordova 3 5 和 jQuery mobile 构建 iOS 应用程序 我在大部分应用程序中禁用了滚动功能 但是 当我选择输入字段时 iOS 键盘会打开并向上滚动页面 我不想要这个功能 由于输入足够高 键盘不会覆盖它 我
  • Phonegap Build 与 Xcode4 上的 Phonegap 对比?配置.xml?

    有一个使用phonegap构建的应用程序 我已经使用它编译和测试了http build phonegap com http build phonegap com服务 我发现它使用 XCode 的构建方式与在 Phonegap 网站上的构建方
  • PickContact 需要 android.permission.READ_CONTACTS 或 grantUriPermission()

    首先一些信息 我首先在 Cordova 中创建了该应用程序 请参阅Cordova 权限需要 android permission READ CONTACTS 或 grantUriPermission https stackoverflow
  • 在单页应用程序上重用 Google Maps API 实例

    假设我有一个单页应用程序 Angular JS 应用程序 并且我在元素 id 上绘制一个 Google 地图实例googleMap var mapInstance new google maps Map document getElemen
  • 可靠的在线手册复制工具

    我经常需要在没有互联网的情况下开发项目 不幸的是 越来越多的程序不再有离线手册 在本地复制在线帮助的最佳方法是什么 HTTrack 网站复制器经常失败 哪个 Windows 工具最可靠 感谢你的建议 如果您有使用 HTTrack Websi
  • 如何测试 google.maps.Geocoder?

    你好 我正在尝试编写一个 简单 测试来检查反应类组件状态更改 具体来说 我正在测试如果 Google 成功对我发送的某些字符串 地址 进行地理编码 lat 纬度 和 lng 经度 状态是否会发生变化 这是我想测试的示例 i e the la
  • 图像作为电子邮件附件

    我想构建一个应用程序 我可以在电子邮件中附加图像 打开图像并将其设置为我的壁纸 我想让它跨平台 所以你能告诉我是否可以使用phonegap 或者我是否必须为iphone和android构建一个本机应用程序 您好 如果您只想通过电子邮件附加图

随机推荐