|
FORUMS PROFESSIONNELS WINDEV, WEBDEV et WINDEV Mobile |
| | | | | |
Windev Mobile et Javascript ( utilisation de PocketMaps) Carto+Navi mode deconnecte |
Débuté par Alan Baccharetti, 26 jan. 2021 02:25 - 3 réponses |
| |
| | | |
|
| |
Posté le 26 janvier 2021 - 02:25 |
Bonjour on essaie de transpose le projet Github PocketMaps pour pouvoir utiliser de la cartographie et de la navigation en mode OffLine. On a deja transpose d'autre projet Android plus simples, mais celui-ci est plus complique.
Si quelqu'un peut nous debloquer cela serait tres apprecie.
Merci
Detail :
Utilisation des composants PocketMaps dans Windev ( Pcsoft )
Besoin initial : Utiliser la cartographie et la navigation en mode Hors-ligne dans une application WinDev mobile. Trouver un spécialiste Windev+Javascript Problématique : Transposer le code du projet Android dans WinDev mobile (langage Javascript) Plusieurs projets ont déjà été transposé depuis du JS vers du Windev, mais jamais aussi complexe. Un projet WinDev a été débuté ( téléchargement des cartes et affichage Carte )
Fonctions utiles dans le projet Android : - MapHandler.java public void init(MapView mapView, String currentArea, File mapsFolder) public void loadMap(File areaFolder, MapActivity activity) void loadGraphStorage(final MapActivity activity) {
Différentes techniques ont été tentées : - Via un champ HTML, mais ne fonctionne bien que lorsque l’on utilise des fichiers .js, mais les .java ne passent pas bien sans refaire la synthaxe. - Via un champ Natif, mais tres difficile a debugger lorsque la compilation ne passe pas.
1. Projet GITHub à transposer
https://github.com/junjunguo/PocketMaps Free offline maps with routing functions and more ... This project uses OSM data, Mapsforge-vtm and Graphhopper open source API.
2. Projet Android
On utilise les repository maven { url "https://mvnrepository.com/artifact/com.graphhopper/graphhopper" } maven { url "https://mvnrepository.com/artifact/org.mapforge/mapsforge-map" }
3. Projet Windev
Exemple de code qui ne compile pas :
public static void CarteInitialiser( String sNomChampCarte ) {
// Création de la carte MapView mapView = new MapView(document.getElementById(sNomChampCarte)); //mapView.setClickable(true); // Map events receiver //mapView.map().layers().add(new MapEventsReceiver(mapView.map())); // Map file source MapFileTileSource tileSource = new MapFileTileSource(); tileSource.setMapFile(new File(areaFolder, currentArea + ".map").getAbsolutePath()); VectorTileLayer l = mapView.map().setBaseMap(tileSource); }
Rapport d’erreurs Echec de la création de l'application Android <C:\Mes Projets Tests\PocketMaps_POC\Exe\Application Android\PocketMaps_POC.apk>.
Ligne de commande : "C:\Program Files\Java\jdk-10.0.2\bin\java.exe" -Duser.dir="C:\Mes Projets Tests\PocketMaps_POC\Android\gen" "-Dorg.gradle.appname=C:\Mes Projets Tests\PocketMaps_POC\Android\gen" -classpath "C:\Users\Alan\AppData\Roaming\PC SOFT\26.0\Android\Gradle\lib\gradle-launcher-5.4.1.jar" org.gradle.launcher.GradleMain assembleRelease -b "C:\Mes Projets Tests\PocketMaps_POC\Android\gen\build.gradle"
Erreur retournée : :compileReleaseJavaWithJavac C:\Mes Projets Tests\PocketMaps_POC\Android\gen\src\com\masociete\pocketmaps_poc\wdgen\GWDCPCOL_Carte_PocketMaps_Android.java:139: error: cannot find symbol MapView mapView = new MapView(document.getElementById(sNomChampCarte)); ^ symbol: variable document location: class GWDCPCOL_Carte_PocketMaps_Android C:\Mes Projets Tests\PocketMaps_POC\Android\gen\src\com\masociete\pocketmaps_poc\wdgen\GWDCPCOL_Carte_PocketMaps_Android.java:148: error: cannot find symbol tileSource.setMapFile(new File(areaFolder, currentArea + ".map").getAbsolutePath()); ^ symbol: variable areaFolder location: class GWDCPCOL_Carte_PocketMaps_Android C:\Mes Projets Tests\PocketMaps_POC\Android\gen\src\com\masociete\pocketmaps_poc\wdgen\GWDCPCOL_Carte_PocketMaps_Android.java:148: error: cannot find symbol tileSource.setMapFile(new File(areaFolder, currentArea + ".map").getAbsolutePath()); ^ symbol: variable currentArea location: class GWDCPCOL_Carte_PocketMaps_Android Note: C:\Mes Projets Tests\PocketMaps_POC\Android\gen\src\com\masociete\pocketmaps_poc\wdgen\GWDFFEN_Main_Mobile.java uses unchecked or unsafe operations. Note: Recompile with -Xlint:unchecked for details. 3 errors
> Task :compileReleaseJavaWithJavac FAILED
FAILURE: Build failed with an exception.
* What went wrong: Execution failed for task ':compileReleaseJavaWithJavac'.
Compilation failed; see the compiler error output for details.
* Try: Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.
* Get more help at https://help.gradle.org
BUILD FAILED in 25s 10 actionable tasks: 6 executed, 4 up-to-date |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 3 344 messages Popularité : +93 (137 votes) |
|
Posté le 26 janvier 2021 - 07:45 |
Salut Alan, Je ne sais si tu as réellement transposer des projets Android en windev. Car la première erreur est simple a résoudre Car il manque l'import correspondant à mapview. import org.oscim.android.MapView; Mais une fois résolu cela, tu auras l'obligation de remplacer getElementById Pareil pour setMapFile, il manque l'import Il se peut que ce soit le même que mapview Mais bon, j'ai pas le temps de chercher pour vérifier. En plus, ici il n'y a aucun code JavaScript mais Java. Enfin bon, il se peut que tu utilises aussi du JavaScript dans ton projet. Donc, que tu dis être un spécialiste, je te laisse. Personnellement j'ai des doutes. |
| |
| |
| | | |
|
| | |
| |
Membre enregistré 3 344 messages Popularité : +93 (137 votes) |
|
Posté le 26 janvier 2021 - 07:57 |
Oups, la deuxième erreur c'est areaFolder qui manque l'import. Et troisième sur currentArea. Mais bon tu auras compris (c'est sur la même ligne que setMapFile) CurrentArea c'est une variable private String currentArea; Je suppose que areaFolder est aussi une variable File areaFolder; Donc voila. C'est du vite fait, pas le temps de peaufiner. |
| |
| |
| | | |
|
| | |
| |
Posté le 17 février 2021 - 21:36 |
Merci pour les remarques.
Effectivement, le mélange JS, Java, et WinDev, est assez mêlant.
C'est facile en Webdev, windev, android sutdio, mais windev mobile veut rien savoir |
| |
| |
| | | |
|
| | | | |
| | |
| | |
| |
|
|
|