在Electron应用程序中将Mapbox与脱机地图一起使用
有可能有一个电子应用程序显示离线地图吗? 我下载了mbtiles并存储在electron应用程序中,但我无法在electron应用程序的角度侧显示它 我有以下代码:在Electron应用程序中将Mapbox与脱机地图一起使用,electron,mapbox,mapbox-gl-js,Electron,Mapbox,Mapbox Gl Js,有可能有一个电子应用程序显示离线地图吗? 我下载了mbtiles并存储在electron应用程序中,但我无法在electron应用程序的角度侧显示它 我有以下代码: <mgl-map class="map" id = "map" [style]="'mbtiles://assets/resources/downloaded.mbtiles'" [center]="[mapCenter.longitude,
<mgl-map
class="map"
id = "map"
[style]="'mbtiles://assets/resources/downloaded.mbtiles'"
[center]="[mapCenter.longitude, mapCenter.latitude]"
(load) = "onLoad($event)"
(dragEnd)="mapDrag()"
[doubleClickZoom]="false"
[bearing]="[bearing]"
[zoom]="[zoom]"
[pitch]="[pitch]">
</mgl-map>
所以,为了使它在网上工作,我必须改变我的风格
[style]="'mapbox://styles/mapbox/streets-v9'"
是否可以通过nodejs代码或其他方式使其能够为mbtiles服务?要提供本地mbtiles文件,您需要在
main.js
中注册mbtiles协议。像这样的东西应该可以做到:
const electron = require('electron');
const protocol = electron.protocol;
const path = require('path');
protocol.registerHttpProtocol('mbtiles', (req, cb) => {
const url = 'assets/resources/downloaded.mbtiles';
cb({ path: path.normalize(`${__dirname}/${url}`) })
});
您可以在此处阅读electron中的协议处理程序:
const electron = require('electron');
const protocol = electron.protocol;
const path = require('path');
protocol.registerHttpProtocol('mbtiles', (req, cb) => {
const url = 'assets/resources/downloaded.mbtiles';
cb({ path: path.normalize(`${__dirname}/${url}`) })
});