Zen*_*san 6 javascript leaflet typescript ionic3
我正在使用Ionic 3来构建一个简单的地图应用程序,以便使用OpenStreet地图图块呈现我正在使用传单(类型版本)的地图
我想让用户下载和缓存地图的可能性,因此我在这里找到了传单离线 并希望使用它,因为它允许我使用我的本地存储来存储图像.
现在我的问题出现了,我正在尝试将打字稿与javascript混合,我无法弄清楚如何使其正常工作.
我做了什么,问题是什么:
我安装了传单类型版本,然后安装了传单离线javascript版本.
现在我在页面中将它们导入如下:
import * as leaflet from 'leaflet';
import 'leaflet-offline';
Run Code Online (Sandbox Code Playgroud)
现在,如果我尝试按照示例中的说明使用库,我会得到一个打字稿错误,它指示我离线的属性不在对象TileLayer中.
leaflet.tileLayer.offline('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', tilesDb, {
attribution: '© <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a>',
subdomains: 'abc',
minZoom: 13,
maxZoom: 19,
crossOrigin: true
}).addTo(this.map);
Run Code Online (Sandbox Code Playgroud)
为了避免这种情况,我补充道
export namespace tileLayer {
function wms(baseUrl: string, options?: WMSOptions, offline?: any): TileLayer.WMS;
function offline(url?: any, tilesDb?: any, options?: any): any;
}
Run Code Online (Sandbox Code Playgroud)
该函数offline位于tileLayer本身的命名空间中.
当前的问题 在我尝试运行应用程序的那一刻,一切正常,除了实际的地图,我看不到它,当我调查它时得到的错误如下:
错误类型错误:无法在NewClass._TateUrl(vendor.js:163489)的NewClass._addTile(vendor.js:79419)的NewClass._update(供应商,js:73419)的NewClass.getTileUrl(vendor.js:163489)中读取null的属性'then' .js:79310)在NewClass._setView(vendor.js:79171)的NewClass._resetView(vendor.js:79129)NewClass.fire(vendor.js:68787)NewClass._move(vendor.js:72343)at at NewClass._catchTransitionEnd中的NewClass._onZoomTransitionEnd(vendor.js:72800)(vendor.js:72732)
我确定我犯了一些愚蠢的错误,但我在这个问题上失去了很多时间.
任何人都有一些关于如何解决这个问题的线索?
无法读取 null 的属性“then”
当 Typescript从应用它的函数then接收数据时,会出现此错误。null因此,如果您的函数是自定义的,请检查您是否缺少 return 语句。
现在,而不是在初始化时直接添加图层到地图。为此,请尝试将现有代码替换为
const offlineLayer = leaflet.tileLayer.offline('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', tilesDb, {
attribution: '© <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a>',
subdomains: 'abc',
minZoom: 13,
maxZoom: 19,
crossOrigin: true
});
offlineLayer.addTo(this.map)
Run Code Online (Sandbox Code Playgroud)
检查地图的引用this.map或代码中的任何引用。
| 归档时间: |
|
| 查看次数: |
258 次 |
| 最近记录: |