banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

Rencontres QGIS 2025

L'appel à participation est ouvert jusqu'au 19 janvier 2025!

#1 Sun 06 November 2016 16:58

supernul
Participant actif
Date d'inscription: 31 Jan 2010
Messages: 103

[Leaflet] formater le temps dans un geojson

Bonjour,

je cherche à représenter le temps dans un fichier geojson. Sans cette information j'arrive à afficher ma donnée dans Leaflet.

J'utilise le plugin TimeDimension.

voici ma donnée dont je sais que la propriété temporelle n'est pas correcte :

Code:

var data={
    "crs":{"type":"name","properties":{"name":"EPSG:2154"}},
    "type":"FeatureCollection",
    "features":[
        {"type":"Feature",
        "geometry":{
            "type":"Polygon",
            "coordinates":[[[653006.945799,6862173.508896],[653003.318699,6862168.487896],[652989.237299,6862179.850096],[652993.347699,6862184.215196],[653006.945799,6862173.508896]]]
        },
        "properties":{
            "solar":3.180000},
            "time": "2012-10-27T18:02:01"
        },
        {"type":"Feature",
        "geometry":{
            "type":"Polygon",
            "coordinates":[[[653006.945799,6862173.508896],[653003.318699,6862168.487896],[652989.237299,6862179.850096],[652993.347699,6862184.215196],[653006.945799,6862173.508896]]]
        },
        "properties":{
            "solar":11.180000},
            "time": "2012-10-28T18:02:01"
        },
        {"type":"Feature",
        "geometry":{
            "type":"Polygon",
            "coordinates":[[[653006.945799,6862173.508896],[653003.318699,6862168.487896],[652989.237299,6862179.850096],[652993.347699,6862184.215196],[653006.945799,6862173.508896]]]
        },
        "properties":{
            "solar":21.180000},
            "time": "2012-10-29T18:02:01"
        },
        {"type":"Feature",
        "geometry":{
            "type":"Polygon",
            "coordinates":[[[653006.945799,6862173.508896],[653003.318699,6862168.487896],[652989.237299,6862179.850096],[652993.347699,6862184.215196],[653006.945799,6862173.508896]]]
        },
        "properties":{
            "solar":31.180000},
            "time": "2012-10-30T18:02:01"
        },
    ]
}

Certains ont-ils déjà travaillé avec TimeDimension ou une propriété temporelle et peuvent-ils me renseigner sur le bon format ?

Merci d'avance.
Je poste la même question chez nos amis de forumsig.

Hors ligne

 

#2 Mon 07 November 2016 07:59

supernul
Participant actif
Date d'inscription: 31 Jan 2010
Messages: 103

Re: [Leaflet] formater le temps dans un geojson

Bonjour,

J'ai corrigé une erreur mais je n'arrive pas à faire fonctionner TimeDimension avec prj4leaflet. Et j'ai (presque) trouvé la solution :

Code:

var data10 = {
    "type": "FeatureCollection",
    "crs": { "type": "name", "properties": { "name": "EPSG:4326" } },
    "features": [
    { "type": "Feature", "properties": { "solar": 3.18,  "time": "2014-09-25"}, "geometry": { "type": "Polygon", "coordinates": [ [ [ 2.359515751007625, 48.857882727399648 ], [ 2.359466873308558, 48.857837309443994 ], [ 2.359273705181266, 48.857938461197271 ], [ 2.359329242119987, 48.857978016048271 ], [ 2.359515751007625, 48.857882727399648 ] ] ] } },
    { "type": "Feature", "properties": { "solar": 11.18,  "time": "2014-09-26"}, "geometry": { "type": "Polygon", "coordinates": [ [ [ 2.359515751007625, 48.857882727399648 ], [ 2.359466873308558, 48.857837309443994 ], [ 2.359273705181266, 48.857938461197271 ], [ 2.359329242119987, 48.857978016048271 ], [ 2.359515751007625, 48.857882727399648 ] ] ] } },
    { "type": "Feature", "properties": { "solar": 20.18,  "time": "2014-09-27"}, "geometry": { "type": "Polygon", "coordinates": [ [ [ 2.359515751007625, 48.857882727399648 ], [ 2.359466873308558, 48.857837309443994 ], [ 2.359273705181266, 48.857938461197271 ], [ 2.359329242119987, 48.857978016048271 ], [ 2.359515751007625, 48.857882727399648 ] ] ] } },
    { "type": "Feature", "properties": { "solar": 31.18,  "time": "2014-09-28"}, "geometry": { "type": "Polygon", "coordinates": [ [ [ 2.359515751007625, 48.857882727399648 ], [ 2.359466873308558, 48.857837309443994 ], [ 2.359273705181266, 48.857938461197271 ], [ 2.359329242119987, 48.857978016048271 ], [ 2.359515751007625, 48.857882727399648 ] ] ] } }
    ]
}

Le seul problème maintenant réside dans le fait que cela fonctionne avec une donnée en EPSG:4326 chargée avec

Code:

var data2 = new L.geoJSON(data10, {style: doStyledata0});

mais pas avec une donnée en L93 chargée par

Code:

var data2 = new L.Proj.geoJson(data1, {style: doStyledata0});

.

Je continue à chercher et je vous tiens au courant. Mais si certains ont une idée, je suis preneur.

Hors ligne

 

#3 Mon 07 November 2016 12:31

supernul
Participant actif
Date d'inscription: 31 Jan 2010
Messages: 103

Re: [Leaflet] formater le temps dans un geojson

En fait le problème vient de proj4leaflet qui rend un layer non compatible avec TimeDimension. J'ai trouvé la solution tout à l'heure. Voici l'extrait de la page :

Code:

var dataLayer = new L.Proj.geoJson(data);
var dataJson = dataLayer.toGeoJSON();
var dataLayer2 = new L.geoJSON(dataJson, {style: style});
var dataTime = new L.TimeDimension.Layer.GeoJson(dataLayer2, {updateTimeDimension: true});

L'idée que j'ai trouvée est de créer un layer reprojeté via proj4leaflet, puis de le convertir en geojson, puis de créer un layer avec la fonction native de leaflet et enfin de convertir ce layer compatible en timelayer avec TimeDimension.

Hors ligne

 

Pied de page des forums

Powered by FluxBB