#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