Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Etape 3 - Liste ordonnée des taxons colorisés #23

Closed
Chrispnv opened this issue Nov 6, 2019 · 30 comments
Closed

Etape 3 - Liste ordonnée des taxons colorisés #23

Chrispnv opened this issue Nov 6, 2019 · 30 comments

Comments

@Chrispnv
Copy link

Chrispnv commented Nov 6, 2019

Une fois le relevé localisé, l’application doit (avec le fichier unities.wkt) déterminer dans quelle unité géographique il se trouve et remonter les taxons selon 3 catégories.

@sgrimault Où en es tu sur ce sujet ?

@camillemonchicourt
Copy link
Member

En lien avec #5

@sgrimault
Copy link
Collaborator

C'est déjà réalisé, il faut configurer une source vectorielle dont les IDs matchent ceux issues de GeoNature.

@ClaireLagaye
Copy link

Nous n'avons pas encore de geonature 2 et comme j'utilise le serveur de test des ecrins, mes unities ne matchent pas.
Avez-vous pu tester aux Ecrins @camillemonchicourt ?

@ClaireLagaye
Copy link

ClaireLagaye commented Jan 7, 2020

C'est déjà réalisé, il faut configurer une source vectorielle dont les IDs matchent ceux issues de GeoNature.

Il suffit de configurer une couche vectorielle dans le fichier de settings pour que cela fonctionne?
Et si on affiche plusieurs couches vectorielles sur la carte?

@ClaireLagaye ClaireLagaye changed the title OccTax 0.1.9 - Etape 3 - Liste ordonnée des taxons colorisés Etape 3 - Liste ordonnée des taxons colorisés Jan 7, 2020
@camillemonchicourt
Copy link
Member

Pas testé, j'ai pas encore pu faire fonctionner l'application mobile.
On pourrait ajouter les données dans le GeoNature de démo (demo.geonature.fr) mais je n'ai pas bien suivi la démarche pour les unités géographiques et pas croisé de documentation sur le sujet.

@sgrimault
Copy link
Collaborator

Je prendrais le temps de documenter cette partie là. L'idée est que l'attribut area_id des données de la route /geonature/api/synthese/color_taxon correspondent aux identifiants présent dans la couche vectorielle.

Par exemple :

110,POINT (-1.5487664937973022 47.21628889447996)
108,POINT (-1.5407788753509521 47.241763083159455)

si la source vectorielle est du WKT.

Les couches vectorielles peuvent être au format json, geojson ou wkt.

Par défaut, si aucune couche vectorielle n'est configurée, l'application va simplement charger la base des taxons sans les données additionnelles venant des unités géographiques.

@sgrimault
Copy link
Collaborator

C'est déjà réalisé, il faut configurer une source vectorielle dont les IDs matchent ceux issues de GeoNature.

Il suffit de configurer une couche vectorielle dans le fichier de settings pour que cela fonctionne?
Et si on affiche plusieurs couches vectorielles sur la carte?

Oui, et on peut ajouter autant de couches vectorielles et pour chacune on peut appliquer des styles différents. Vous pouvez vous référer au README du module maps pour le paramétrage.

@camillemonchicourt
Copy link
Member

camillemonchicourt commented Jan 7, 2020

OK, alors si vous souhaitez tester cela avec le serveur de démo http://demo.geonature.fr, je viens de faire un export geojson de la couche des mailles 10x10 sur toute la France présente dans la BDD de ce serveur de démo (id_type=27) : https://geonature.fr/data/inpn/layers/2019/mailles1010FR.geojson

La couche est un peu volumineuse (4 Mo) car j'ai laissé toute la France, mais vous pouvez ne garder qu'une zone pour tester :

image

Ici on voit ce que renvoie la route qui donne les couleurs des taxons observés dans les différents zonages : http://demo.geonature.fr/geonature/api/synthese/color_taxon
Et ici en les limitant à la couche des mailles 10x10 : http://demo.geonature.fr/geonature/api/synthese/color_taxon?code_area_type=M10

@camillemonchicourt
Copy link
Member

camillemonchicourt commented Jan 7, 2020

Est-ce qu'au niveau de Occtax-mobile il faut définir en paramètre la couche que l'on utilise pour les unités géographiques en renseignant en configuration son code_type (M10 dans ce cas) ou est-ce que cela dépend uniquement de la couche vectorielle que l'on charge dans l'application mobile ?

@camillemonchicourt
Copy link
Member

camillemonchicourt commented Jan 8, 2020

Pour le moment, j'ai pas réussi à ajouter la couche vectorielle.

Quand je ne mets que la couche mbtiles alors l'application fonctionne bien :

"layers": [
      {
        "label": "Scan IGN",
        "source": "scan.mbtiles"
      }
    ]

Mais si j'ajoute la couche vectorielle alors l'application Occtax plante au lancement :

"layers": [
      {
        "label": "Scan IGN",
        "source": "scan.mbtiles"
      },
	  {
      "label": "Mailles",
      "name": "mailles.geojson",
      "style": {
        "stroke": true,
        "color": "#FF0000",
        "weight": 8,
        "opacity": 0.9,
        "fill": true,
        "fillColor": "#FF8000",
        "fillOpacity": 0.2
      }
     }
    ]

La commande adb logcat | grep fr.geonature renvoie :

01-08 21:09:26.306  2867  4960 I ActivityManager: START u0 {act=android.intent.action.MAIN typ=null flg=0x10200000 cmp=ComponentInfo{fr.geonature.occtax/fr.geonature.occtax.ui.home.HomeActivity}} from uid 10069 on display 0
01-08 21:09:26.311  2867  4960 D ActivityManager: computeStackFocus: New stack r=ActivityRecord{35a49fd0 u0 fr.geonature.occtax/.ui.home.HomeActivity t-1} stackId=1
01-08 21:09:26.313  2867  4960 D ActivityManager: moveToFront() : reason=startedActivity setFocusedActivity isAttached=true TaskRecord{459ebbbd0 #243 A=fr.geonature.occtax U=0 StackId=1 sz=1}
01-08 21:09:26.316  2867  4960 D ActivityManager: resumeTopActivityInnerLocked() : #1 prevTask=TaskRecord{459ebbbd0 #243 A=fr.geonature.occtax U=0 StackId=1 sz=1} next=ActivityRecord{35a49fd0 u0 fr.geonature.occtax/.ui.home.HomeActivity t243} mFocusedStack=ActivityStack{8a68e3ed0 stackId=1, 1 tasks}
01-08 21:09:26.325  2867  2895 D WindowManager: openInputChannel mInputChannel: 6599af0 Starting fr.geonature.occtax (server)
01-08 21:09:26.333  2867  3540 D ActivityManager: resumeTopActivityInnerLocked() : #1 prevTask=TaskRecord{3cd4200d0 #204 I=com.sec.android.app.launcher/com.android.launcher3.Launcher U=0 StackId=0 sz=1} next=ActivityRecord{35a49fd0 u0 fr.geonature.occtax/.ui.home.HomeActivity t243} mFocusedStack=ActivityStack{8a68e3ed0 stackId=1, 1 tasks}
01-08 21:09:26.333  2867  3540 D ActivityManager: applyOptionsLocked, ANIM_CUSTOM_SCALE_UP, task.getRootActivity() : ActivityRecord{35a49fd0 u0 fr.geonature.occtax/.ui.home.HomeActivity t243}, task.getTaskToReturnTo() : 1
01-08 21:09:26.335  2867  3540 D MountService: getExternalStorageMountMode : final mountMode=3, uid : 10175, packageName : fr.geonature.occtax
01-08 21:09:26.338  2867  2895 V WindowManager: Relayout Window{6599af0d0 u0 Starting fr.geonature.occtax}: viewVisibility=0 req=720x1232 WM.LayoutParams{(0,0)(fillxfill) sim=#20 ty=3 fl=#81830118 pfl=0x20011 wanim=0x103046c vsysui=0x600 needsMenuKey=2 naviIconColor=0}
01-08 21:09:26.338  2349  2349 I SurfaceFlinger: id=241 createSurf (1x1),1 flag=404, Starting fr.geonature.occtax
01-08 21:09:26.347  2867  3540 I ActivityManager: Start proc 3009:fr.geonature.occtax/u0a175 for activity fr.geonature.occtax/.ui.home.HomeActivity
01-08 21:09:26.349  3009  3009 I SELinux : SELinux: seapp_context_lookup: seinfo=untrusted, level=s0:c512,c768, pkgname=fr.geonature.occtax 
01-08 21:09:26.367  2867  4962 I ActivityManager: DSS on for fr.geonature.occtax and scale is 1.0
01-08 21:09:26.374  2867  2895 D WindowManager: finishDrawingWindow: Window{6599af0d0 u0 Starting fr.geonature.occtax} mDrawState=DRAW_PENDING
01-08 21:09:26.379  2867  3058 D GameManagerService: handleForegroundChange(). pkgName: fr.geonature.occtax, clsName: fr.geonature.occtax.ui.home.HomeActivity,FgActivityName:fr.geonature.occtax/.ui.home.HomeActivity
01-08 21:09:26.379  2867  4962 D MARsPolicyManager: handlePackageResumedFG pkgName = fr.geonature.occtax, userId = 0
01-08 21:09:26.379  2867  3058 D GameManagerService: notifyResumePause(). pkg: fr.geonature.occtax, type: 4, isMinimized: false, isTunableApp: false
01-08 21:09:26.388  2867  4845 D GamePkgDataHelper: getGamePkgData(). fr.geonature.occtax
01-08 21:09:26.388  2867  4845 D GameManagerService: identifyGamePackage. fr.geonature.occtax
01-08 21:09:26.390  2867  4845 D GameManagerService: identifyGamePackage. fr.geonature.occtax
01-08 21:09:26.391  2867  4845 D GameManagerService: identifyGamePackage. fr.geonature.occtax
01-08 21:09:26.393  2867  4845 D GameManagerService: identifyGamePackage. fr.geonature.occtax
01-08 21:09:26.422  2349  2349 D SurfaceFlinger:       GLES | eb48d040 | 0000 | 0020 | 00 | 0105 | RGBA_8888   |    0.0,    0.0,  720.0, 1280.0 |   40,  193,  468,  954 | Starting fr.geonature.occtax
01-08 21:09:26.517  2867  3045 D MdnieScenarioControlService:  packageName : fr.geonature.occtax    className : fr.geonature.occtax.ui.home.HomeActivity
01-08 21:09:26.530  3009  3009 I art     : Caused by: java.lang.ClassNotFoundException: Didn't find class "android.view.View$OnUnhandledKeyEventListener" on path: DexPathList[[zip file "/data/app/fr.geonature.occtax-1/base.apk"],nativeLibraryDirectories=[/data/app/fr.geonature.occtax-1/lib/arm, /system/lib, /vendor/lib]]
01-08 21:09:26.571  7195  7195 I eLock   : pkgname_before:com.sec.android.app.launcher  class:fr.geonature.occtax  isFingerActivityCreated:false   isCalling:false
01-08 21:09:26.674  3009  3044 D fr.geonature.commons.model.MountPoint: MountPoint: '/sdcard', canonical path: '/storage/emulated/0'
01-08 21:09:26.674  3009  3044 D fr.geonature.commons.util.MountPointUtils: internal storage from system environment: MountPoint(mountPath=/storage/emulated/0, storageType=INTERNAL)
01-08 21:09:26.675  3009  3044 I fr.geonature.commons.settings.AppSettingsManager: Loading settings from '/storage/emulated/0/Android/data/fr.geonature.occtax/settings_occtax.json'...
01-08 21:09:26.689 21063 21079 D fr.geonature.commons.model.MountPoint: MountPoint: '/sdcard', canonical path: '/storage/emulated/0'
01-08 21:09:26.689 21063 21079 D fr.geonature.commons.util.MountPointUtils: internal storage from system environment: MountPoint(mountPath=/storage/emulated/0, storageType=INTERNAL)
01-08 21:09:26.695  2867  3539 D WindowManager: openInputChannel mInputChannel: 2af5338 fr.geonature.occtax/fr.geonature.occtax.ui.home.HomeActivity (server)
01-08 21:09:26.700  3009  3044 D fr.geonature.commons.model.MountPoint: MountPoint: '/sdcard', canonical path: '/storage/emulated/0'
01-08 21:09:26.700  3009  3044 D fr.geonature.commons.util.MountPointUtils: internal storage from system environment: MountPoint(mountPath=/storage/emulated/0, storageType=INTERNAL)
01-08 21:09:26.816  3009  3009 E AndroidRuntime: Process: fr.geonature.occtax, PID: 3009
01-08 21:09:26.816  3009  3009 E AndroidRuntime: 	at fr.geonature.maps.settings.io.MapSettingsReader.readLayerSettings(MapSettingsReader.kt:163)
01-08 21:09:26.816  3009  3009 E AndroidRuntime: 	at fr.geonature.maps.settings.io.MapSettingsReader.readLayerSettingsAsList(MapSettingsReader.kt:145)
01-08 21:09:26.816  3009  3009 E AndroidRuntime: 	at fr.geonature.maps.settings.io.MapSettingsReader.read(MapSettingsReader.kt:129)
01-08 21:09:26.816  3009  3009 E AndroidRuntime: 	at fr.geonature.occtax.settings.io.OnAppSettingsJsonReaderListenerImpl.readMapSettings(OnAppSettingsJsonReaderListenerImpl.kt:38)
01-08 21:09:26.816  3009  3009 E AndroidRuntime: 	at fr.geonature.occtax.settings.io.OnAppSettingsJsonReaderListenerImpl.readAdditionalAppSettingsData(OnAppSettingsJsonReaderListenerImpl.kt:26)
01-08 21:09:26.816  3009  3009 E AndroidRuntime: 	at fr.geonature.occtax.settings.io.OnAppSettingsJsonReaderListenerImpl.readAdditionalAppSettingsData(OnAppSettingsJsonReaderListenerImpl.kt:14)
01-08 21:09:26.816  3009  3009 E AndroidRuntime: 	at fr.geonature.commons.settings.io.AppSettingsJsonReader.read(AppSettingsJsonReader.kt:78)
01-08 21:09:26.816  3009  3009 E AndroidRuntime: 	at fr.geonature.commons.settings.io.AppSettingsJsonReader.read(AppSettingsJsonReader.kt:54)
01-08 21:09:26.816  3009  3009 E AndroidRuntime: 	at fr.geonature.commons.settings.AppSettingsManager$loadAppSettings$2.invokeSuspend(AppSettingsManager.kt:70)
01-08 21:09:26.818  2867  4963 W ActivityManager:   Force finishing activity fr.geonature.occtax/.ui.home.HomeActivity
01-08 21:09:26.852  2867  2883 D WindowManager: openInputChannel mInputChannel: 3d9bd62 Application Error: fr.geonature.occtax (server)
01-08 21:09:26.859  2867  2883 V WindowManager: Relayout Window{3d9bd62d0 u0 Application Error: fr.geonature.occtax}: viewVisibility=0 req=676x295 WM.LayoutParams{(0,0)(wrapxwrap) gr=#11 sim=#120 ty=2003 fl=#1820002 pfl=0x110 fmt=-3 wanim=0x1030392 surfaceInsets=Rect(4, 4 - 4, 4) needsMenuKey=2 naviIconColor=0}
01-08 21:09:26.860  2349  2349 I SurfaceFlinger: id=242 createSurf (9x9),1 flag=4, Application Error: fr.geonature.occtax
01-08 21:09:26.893  2867  2883 D WindowManager: finishDrawingWindow: Window{3d9bd62d0 u0 Application Error: fr.geonature.occtax} mDrawState=DRAW_PENDING
01-08 21:09:26.897  2867  2883 D WindowManager: finishDrawingWindow: Window{3d9bd62d0 u0 Application Error: fr.geonature.occtax} mDrawState=HAS_DRAWN
01-08 21:09:26.941  2349  2349 D SurfaceFlinger:       GLES | eb48d540 | 0000 | 0000 | 00 | 0105 | RGBA_8888   |    0.0,    0.0,  684.0,  303.0 |   44,  523,  673,  802 | Application Error: fr.geonature.occtax
01-08 21:09:27.326  2867  2882 W ActivityManager: Activity pause timeout for ActivityRecord{35a49fd0 u0 fr.geonature.occtax/.ui.home.HomeActivity t243 f}
01-08 21:09:27.328  2867  2882 D ActivityManager: resumeTopActivityInnerLocked() : #0 prevTask=TaskRecord{459ebbbd0 #243 A=fr.geonature.occtax U=0 StackId=1 sz=1} next=ActivityRecord{b9bb094d0 u0 com.sec.android.app.launcher/.activities.LauncherActivity t204} mFocusedStack=ActivityStack{27c0921d0 stackId=0, 2 tasks}
01-08 21:09:27.333  2867  2882 I WindowManager: Failed to capture screenshot of Token{f9b9ec ActivityRecord{35a49fd0 u0 fr.geonature.occtax/.ui.home.HomeActivity t243 f}} appWin=Window{6599af0d0 u0 Starting fr.geonature.occtax} drawState=4
01-08 21:09:27.452  2867  2990 D PackageManager: getComponentMetadataForIconTray : fr.geonature.occtax.ui.home.HomeActivity does not exist in mServices
01-08 21:09:27.452  2867  2990 D PackageManager: getComponentMetadataForIconTray : fr.geonature.occtax.ui.home.HomeActivity does not exist in mProviders
01-08 21:09:27.452  2867  2990 D PackageManager: getComponentMetadataForIconTray : fr.geonature.occtax.ui.home.HomeActivity does not exist in mReceivers
01-08 21:09:27.453  3141  3141 D ApplicationPackageManager: updateItemMetaDataForFixedIconScale: package: fr.geonature.occtax
01-08 21:09:27.453  2867  3062 D PackageManager: getSelectedMetaData : packageName(fr.geonature.occtax) or Metadata strings {[Ljava.lang.String;@50b7e5e}
01-08 21:09:27.453  3141  3141 I ApplicationPackageManager: load=fr.geonature.occtax, bg=144-144, dr=96-96, forDefault=true, density=0
01-08 21:09:27.456  3141  3141 I ApplicationPackageManager: load=fr.geonature.occtax-crop, bg=80-80, dr=96-96
01-08 21:09:27.678  2867  2895 D WindowManager: disposeInputChannel mInputChannel: 6599af0 Starting fr.geonature.occtax (server)
01-08 21:09:27.678  2867  2895 I WindowManager_SurfaceController: Destroying surface Surface(name=Starting fr.geonature.occtax) called by com.android.server.wm.WindowStateAnimator.destroySurface:3070 com.android.server.wm.WindowStateAnimator.destroySurfaceLocked:1138 com.android.server.wm.WindowState.removeLocked:1934 com.android.server.wm.WindowManagerService.removeWindowInnerLocked:3056 com.android.server.wm.WindowManagerService.removeWindowInnerLocked:3016 com.android.server.wm.AppWindowToken.destroySurfaces:432 com.android.server.wm.AppWindowToken.destroySurfaces:393 com.android.server.wm.WindowStateAnimator.finishExit:699 

@sgrimault
Copy link
Collaborator

@camillemonchicourt
Quelle est la version d'Android sur le terminal en question ?

Je soupçonne un souci de compatibilité de certaines bibliothèques pour Android 9 et 10 car l'erreur n'a aucun rapport avec le chargement des fonds vectoriels ... :

Caused by: java.lang.ClassNotFoundException: Didn't find class "android.view.View$OnUnhandledKeyEventListener" on path: DexPathList[[zip file "/data/app/fr.geonature.occtax-1/base.apk"]...

@camillemonchicourt
Copy link
Member

camillemonchicourt commented Jan 13, 2020

La version d'Android de ce terminal que j'ai utilisé pour tester est Android 7 ou 8.
En tout cas, le plantage apparaissait quand j'ajoutais la couche vectorielle dans la configuration et ne se produisait plus quand je revenais en arrière dans la configuration.

@sgrimault
Copy link
Collaborator

@camillemonchicourt
Je ferai une nouvelle release cette semaine de l'application "OccTax". Ça corrigera aussi ton problème lors du chargement des fonds vectoriels.
Cette nouvelle version inclura notamment le filtre sur les rangs taxonomiques sur la liste des taxons ainsi que le choix des couches sur la carte.

@camillemonchicourt
Copy link
Member

OK, je retesterai aussi ces fonds vectoriels. Si quelqu'un réussit à faire fonctionner l'application avec le fichier GeoJSON que j'ai fourni, je suis preneur d'un retour.

@sgrimault
Copy link
Collaborator

Concernant les fonds cartographiques, il faut suivre les règles suivantes :

wkt

  • fichier texte, où chaque ligne comporte la description d'une géométrie au format WKT
  • chaque ligne doit commencer par un identifiant, ce qui donne ceci :
    <id>,<geometry>
    ...
    

Par exemple :

110,POINT (-1.5487664937973022 47.21628889447996)
108,POINT (-1.5407788753509521 47.241763083159455)

json, geojson

  • fichier texte au format json contenant un objet de type FeatureCollection ou un tableau d'objets de type Feature
  • chaque objet de type Feature doit comporter un identifiant (attribut id), en tant qu'attribut de cet objet ou en tant que propriété de cet objet. Par exemple :
    {
      "id": 1234,
      "type": "Feature",
      "geometry": {
        ...
      },
      "properties": {
        ...
      }
    }
    {
      "type": "Feature",
      "geometry": {
        ...
      },
      "properties": {
        "id": 1234,
        ...
      }
    }

@camillemonchicourt
Copy link
Member

OK c'est pour ça. Je referai le GeoJSON comme ça.

@camillemonchicourt
Copy link
Member

OK, j'ai repris la couche en ne gardant qu'une colonne id et l'ai chargée ici : https://geonature.fr/data/inpn/layers/2019/mailles1010.geojson

Extrait :

{
"type": "FeatureCollection",
"name": "mailles1010FR",
"crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" } },
"features": [
{ "type": "Feature", "properties": { "id": 34842 }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ -5.940995391946344, 45.242278344986111 ], [ -5.955419640748225, 45.33174436664514 ], [ -5.828556204914036, 45.34186288224538 ], [ -5.814332857501438, 45.252380455593567 ], [ -5.940995391946344, 45.242278344986111 ] ] ] ] } },
{ "type": "Feature", "properties": { "id": 34843 }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ -5.955419640748225, 45.33174436664514 ], [ -5.969890304516361, 45.421209972054683 ], [ -5.842825337485124, 45.431344920996771 ], [ -5.828556204914036, 45.34186288224538 ], [ -5.955419640748225, 45.33174436664514 ] ] ] ] } },
{ "type": "Feature", "properties": { "id": 34844 }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ -5.969890304516361, 45.421209972054683 ], [ -5.984407606669176, 45.510674939167494 ], [ -5.857140475709245, 45.520826349897554 ], [ -5.842825337485124, 45.431344920996771 ], [ -5.969890304516361, 45.421209972054683 ] ] ] ] } },

Je testerai dès que possible.

PS : En passant, si besoin pour tests, un mbtiles général OpenTopoMaps sur toute la France est présent dans ce zip qu'on avait fait de démo : http://geonature.fr/documents/demo_mobile/demo_geonature_mobile.zip

@sgrimault
Copy link
Collaborator

sgrimault commented Jan 25, 2020

@camillemonchicourt
La route /geonature/api/synthese/color_taxon permettant de récupérer les données relatives par taxon par zone géographique remonte aussi un attribut color dont les valeurs peuvent être red ou grey.
Coté application mobile, j'exploite actuellement la valeur de cet attribut en tant que code couleur à afficher dans la liste des taxons pour les différencier.
Sait tu à quoi correspondent ces codes couleurs et si la définition de ces codes couleurs peuvent changer ? Quelle serait le libellé pour chaque code couleur ?
Si cette définition est immuable coté GeoNature, alors je pourrais de mon coté la fixer en dur coté application mobile et l'appliquer en tant que filtre additionnel dans la liste des taxons.

@camillemonchicourt
Copy link
Member

Oui, voir PnX-SI/GeoNature#617.
On aurait mieux fait de renvoyer une valeur et non pas une couleur, la couleur n'étant qu'un choix de représentation d'une valeur.

Normalement il y a 3 valeurs possibles pour chaque taxon dans chaque UG :

  • Jamais observé (dans l'unité géographique)
  • Déjà observé depuis moins d'un an
  • Observé il y a plus d'un an

Mais dans ce que je vois côté GeoNature, on dirait que l'on ne distingue que 2 valeurs possibles.
A voir aussi si l'on pourrait trouvé des termes plus court.

Donc il faut que l'on clarifie ça de notre côté d'abord.

@camillemonchicourt
Copy link
Member

Concernant l'ajout d'une couche vectorielle, je n'arrive pas à la faire charger dans l'application, même en l'ayant reformatée comme ci-dessus. Et avec la même conf ci-dessus.
@sgrimault, il me manque quelque chose ? Tu sais si le fichier ou la conf n'est pas bonne ?

@sgrimault
Copy link
Collaborator

@camillemonchicourt
Pourrais tu me donner ta configuration actuelle ? La couche d'exemple est juste. Par contre elle reste bien volumineuse et peut faire ralentir les interactions sur la carte.

@camillemonchicourt
Copy link
Member

Idem que celle que j'avais testé précédemment, la voici complète :

{
  "map": {
    "base_path": "/storage/2715-A426/Android/data/maps",
    "show_scale": true,
    "show_compass": true,
    "max_bounds": [
      [
        46,
        7
      ],
      [
        44,
        5
      ]
    ],
    "center": [
      45,
      6
    ],
    "start_zoom": 10.0,
    "min_zoom": 8.0,
    "max_zoom": 19.0,
    "min_zoom_editing": 16.0,
    "layers": [
      {
        "label": "Demo scan",
        "source": "demo_scan.mbtiles"
      },
	  {
      "label": "Mailles",
      "name": "mailles1010.geojson",
      "style": {
        "stroke": true,
        "color": "#FF0000",
        "weight": 8,
        "opacity": 0.9,
        "fill": true,
        "fillColor": "#FF8000",
        "fillOpacity": 0.2
      }
     }
    ]
  }
}

@sgrimault
Copy link
Collaborator

Il y a une petite coquille sur la déclaration de la couche vectorielle : l'attribut à utiliser pour pointer sur la ressource est source et non pas name :)

https://github.com/PnX-SI/gn_mobile_maps/tree/develop/maps

@camillemonchicourt
Copy link
Member

Ah oui j'avais pas vu que ça avait changé. Ça fonctionne comme ça en effet.
Et c'est vrai que ma couche de test est trop lourde et fait mal à l'application :-)

@ClaireLagaye
Copy link

ClaireLagaye commented Feb 26, 2020

@sgrimault
J'ai fait tout comme Camille pour intégrer ma couche des unités géographiques dans Occtax: créer mon fichier json et le déclarer dans les settings. Je voois bien l'option pour ajouter la couche à la carte mais si je la coche rien n'apparaît à l'écran. Une idée?
Mon fichier de settings

{
  "map": {
    "base_path": "/mnt/sdcard/Android/data/fr.geonature.maps",
    "show_scale": true,
    "show_compass": true,
    "max_bounds": [
      [
        45.419299,
        6.910915
      ],
      [
        45.336943,
        6.782684
      ]
    ],
    "center": [
      45.38,
      6.83
    ],
    "start_zoom": 10.0,
    "min_zoom": 8.0,
    "max_zoom": 16.0,
    "min_zoom_editing": 15.0,
    "layers": [
      {
        "label": "Scans",
        "source": "scanvanoise.mbtiles"
      },
      {
        "label": "Ortho",
        "source": "ortho.mbtiles"
      },
      {
      "label": "Mailles",
      "source": "unities.geojson",
      "style": {
        "stroke": true,
        "color": "#FF0000",
        "weight": 8,
        "opacity": 0.9,
        "fill": false,
        "fillColor": "#FF8000",
        "fillOpacity": 0.2
      }
    }
    ]
  }
}

Et pour la structure du fichier geojson

{
"type": "FeatureCollection",
"name": "unities",
"crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" } },
"features": [
{ "type": "Feature", "properties": { "id_area": 662765 }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ 6.496592678724459, 45.292753389389546 ], [ 6.509337199012614, 45.292354065001199 ], [ 6.508770515275033, 45.283358595407691 ], [ 6.496028047565462, 45.283757854659115 ], [ 6.496592678724459, 45.292753389389546 ] ] ] ] } },
{ "type": "Feature", "properties": { "id_area": 662766 }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ 6.509337199012614, 45.292354065001199 ], [ 6.522081536347365, 45.291953288786779 ], [ 6.5215128001197, 45.282957884566507 ], [ 6.508770515275033, 45.283358595407691 ], [ 6.509337199012614, 45.292354065001199 ] ] ] ] } },
{ "type": "Feature", "properties": { "id_area": 662767 }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ 6.522081536347365, 45.291953288786779 ], [ 6.534825690068711, 45.291551060777962 ], [ 6.534254901439777, 45.282555722167238 ], [ 6.5215128001197, 45.282957884566507 ], [ 6.522081536347365, 45.291953288786779 ] ] ] ] } },

@sgrimault
Copy link
Collaborator

@ClaireLagaye
Il faut renommer l'attribut id_area par id :)

@ClaireLagaye
Copy link

OK ça fonctionne !
L'affichage de la couche de nos mailles en Vanoise fonctionne très bien et est très réactive.
J'ai pu tester la liste des taxons colorisés avec des données réelles, voici mes remarques:

  • La couleur est un peu discrète mais le rappel du nb d'obs et de la dernière date est très bien
  • Il faudrait pouvoir filtrer la liste des taxons selon les couleurs
  • Si j'ai un taxon colorisé et que je le sélectionne puis le désélectionne la couleur disparaît

@camillemonchicourt
Copy link
Member

@ClaireLagaye, peux-tu partager une capture écran de la liste des taxons avec les couleurs ? Merci.

@ClaireLagaye
Copy link

Screenshot_20200227-152129_Occtax

Et voilà !

@camillemonchicourt
Copy link
Member

Merci, super. On a bien la couleur, ainsi que le nombre observations dans l'unité géographique et la date de dernière observation.
Il faut peut-être ajouter à quoi correspond le chiffre ?
"4 observations | Dernière observation : date"
En mettant cela sous le nom si il devient long en utilisant le nom fr + nom latin ?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants