簡體   English   中英

我如何在 AndroidJS 中使用 OpenLayers?

[英]How can I use OpenLayers in AndroidJS?

我有一個小型應用程序,它使用 OpenLayers 進行某些映射。 該應用程序在我的計算機上運行良好, npm start (如果我理解正確,這將運行vite以執行 HTTP 托管;CMIIW)。

現在我想使用AndroidJS將此應用程序轉換為 Android APK。 但是,我似乎不明白這一切是如何協同工作的。 Javascript 模塊(這是 OpenLayers 的工作方式)似乎在 AndroidJS 中不起作用。 例如,當我在main.jsimport我的代碼時

import { DriveMap, distance, bearing, rad2deg } from './assets/mod_maps.js';

在 Android 模擬器上運行時出現此錯誤:

01-02 15:40:35.385 15659 15778 E NODEJS-MOBILE: /data/data/com.androidjs.webview/files/myapp/main.js:1
01-02 15:40:35.385 15659 15778 E NODEJS-MOBILE: (function (exports, require, module, __filename, __dirname) { import { DriveMap, distance, bearing, rad2deg } from './assets/mod_maps.js';
01-02 15:40:35.385 15659 15778 E NODEJS-MOBILE:                                                                      ^
01-02 15:40:35.385 15659 15778 E NODEJS-MOBILE: 
01-02 15:40:35.385 15659 15778 E NODEJS-MOBILE: SyntaxError: Unexpected token {
01-02 15:40:35.385 15659 15778 E NODEJS-MOBILE:     at new Script (vm.js:79:7)
01-02 15:40:35.385 15659 15778 E NODEJS-MOBILE:     at createScript (vm.js:251:10)
01-02 15:40:35.385 15659 15778 E NODEJS-MOBILE:     at Object.runInThisContext (vm.js:303:10)
01-02 15:40:35.385 15659 15778 E NODEJS-MOBILE:     at Module._compile (internal/modules/cjs/loader.js:656:28)
01-02 15:40:35.385 15659 15778 E NODEJS-MOBILE:     at Object.Module._extensions..js (internal/modules/cjs/loader.js:699:10)
01-02 15:40:35.385 15659 15778 E NODEJS-MOBILE:     at Module.load (internal/modules/cjs/loader.js:598:32)
01-02 15:40:35.385 15659 15778 E NODEJS-MOBILE:     at tryModuleLoad (internal/modules/cjs/loader.js:537:12)
01-02 15:40:35.385 15659 15778 E NODEJS-MOBILE:     at Function.Module._load (internal/modules/cjs/loader.js:529:3)
01-02 15:40:35.385 15659 15778 E NODEJS-MOBILE:     at Function.Module.runMain (internal/modules/cjs/loader.js:741:12)
01-02 15:40:35.385 15659 15778 E NODEJS-MOBILE:     at startup (internal/bootstrap/node.js:286:19)
01-02 15:40:35.392 15659 15778 E NODEJS-MOBILE: [ERROR:mailbox_manager_sync.cc(57)] eglCreateSyncKHR failed

有沒有辦法使用 OpenLayers 不使用 Javascript 模塊,或者如何在 AndroidJS 中使用 Javascript 模塊?

您可以將 OpenLayers 用作“正常”javascript,方法是在類的所有名稱前加上完整路徑:

var map = new ol.Map({
     layers: [
         new ol.layer.Tile({
             source: new ol.source.OSM(),
         }),
     ],
     target: idElement,
     view: new ol.View({
         center: ol.proj.fromLonLat([lon,lat]),
         zoom: zoomLevel
     })
});

這適用於 OpenLayer 庫中的所有類。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM