#1 Wed 12 October 2016 21:57
- supernul
- Participant actif
- Date d'inscription: 31 Jan 2010
- Messages: 103
[Openlayers 3] affichage d'un geojson
Bonjour à tous,
je me remets à Openlayers après un certain temps.
Mon projet est structuré ainsi :
workspace
-js/ol.js (version 3.18)
-page.html (code ci-après)
-test.geojson (un geojson des bâtiments dans le quartier de la Bastille)
Code:
<!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <link rel="stylesheet" href="http://cdn.leafletjs.com/leaflet-0.7/leaflet.css" /> <script src="js/ol.js"> </script> <script language="javascript"> function init() { var vectorLayer = new ol.layer.Vector({ source: new ol.source.Vector({ format: new ol.format.GeoJSON({ defaultDataProjection :'EPSG:2154', projection: 'EPSG:3857' }), url: 'test.geojson' }) }); new ol.Map({ layers: [ vectorLayer, new ol.layer.Tile({source: new ol.source.OSM()}) ], controls: [ new ol.control.Zoom()], view: new ol.View({ center: [263300,6250000], zoom: 15 }), target: 'map' }); } </script> </head> <body onLoad="javascript:init();"> <div id="map" style="width: 1100px; height: 550px"></div> </body> </html>
Je n'arrive à afficher ni le fichier geojson dans OL3 alors qu'il s'affiche bien dans QGIS par exemple ni les contrôles et je n'arrive pas à comprendre où sont mes erreurs.
Avez-vous une idée ?
Hors ligne
#2 Wed 12 October 2016 22:02
Re: [Openlayers 3] affichage d'un geojson
Bonsoir,
Que vous dit la console des outils développeurs (F12) ?
Vous souhaitez utiliser des contrôles Leaflet avec une carte OpenLayers? C'est volontaire ?
Hors ligne
#3 Wed 12 October 2016 23:05
- supernul
- Participant actif
- Date d'inscription: 31 Jan 2010
- Messages: 103
Re: [Openlayers 3] affichage d'un geojson
Bonsoir,
sous chrome j'obtiens :
ol.js:399 XMLHttpRequest cannot load file:///E:/Documents/MATLAB/test.geojson. Cross origin requests are only supported for protocol schemes: http, data, chrome, chrome-extension, https, chrome-extension-resource.(anonymous function) @ ol.js:399
sous firefox j'obtiens :
mal formé test.geojson:1:1
Merci de votre aide.
Hors ligne
#4 Thu 13 October 2016 09:21
Re: [Openlayers 3] affichage d'un geojson
Vous êtes face à une erreur Cross Origin car vous cherchez à afficher des données de différents domaines. Ce type de requête est sujet à des restrictions pour des raisons de sécurité.
Comment appelez vous votre page ? via un protocole local (accès au fichier) ou via http ?
Hors ligne
#5 Thu 13 October 2016 09:47
- supernul
- Participant actif
- Date d'inscription: 31 Jan 2010
- Messages: 103
Re: [Openlayers 3] affichage d'un geojson
la page est appelée depuis la commande web() de Matlab mais j'obtiens le même résultat en ouvrant le fichier html depuis chrome ou firefox.
Il s'agit d'un protocole local : tous les fichiers ( js, html, geojson) sont dans le même dossier de la machine de travail.
Hors ligne
#6 Thu 13 October 2016 10:05
- Francois Gueydon
- Participant actif
- Lieu: Castelnaud la Chapelle
- Date d'inscription: 17 Jun 2015
- Messages: 69
Re: [Openlayers 3] affichage d'un geojson
Solution simple si ton geojson s'affiche bien dans Qgis: utiliser le plugin qgis2web qui permet d'exporter tes couches vers une webmap Openlayers ou leaflet au choix. Ca t'éviteras de coder si tu n'en as pas envie, et si tu as envie de modifier ou récupérer des bouts de code tu as tout de suite un exemple de code html/js généré par le plugin qui marche avec tes données.
Et sinon comme dit plus haut a propos de ton code, tu utilise une feuille de style leaflet et un code openlayers, ca doit poser souci.
Dernière modification par Francois Gueydon (Thu 13 October 2016 10:08)
La cartographie sans SIG existe encore: http://www.cartographersguild.com/content.php
Site perso: http://francoisgueydon.jimdo.com/
Hors ligne
#7 Thu 13 October 2016 18:17
- supernul
- Participant actif
- Date d'inscription: 31 Jan 2010
- Messages: 103
Re: [Openlayers 3] affichage d'un geojson
Merci pour l'idée de qgis2web, je vais l'utiliser pour générer une version de ma page html que je modifierai par la suite. Il me restera à inclure proj4js car ma donnée initiale est soit en L93 soit dans un autre système.
Le style leaflet dans le head est un oubli de suppression.
Hors ligne
#8 Thu 13 October 2016 19:15
- supernul
- Participant actif
- Date d'inscription: 31 Jan 2010
- Messages: 103
Re: [Openlayers 3] affichage d'un geojson
Grâce à qgis2web, j'ai mieux compris le fonction de leaflet et j'ai fait un test presque fonctionnel ... à l'exception que la bastille se trouve au nord du Québec !! Un peu de recherche pour trouver mon erreur.
Pour ceux que cela intéresse, mon dossier de travail.
Hors ligne
#9 Fri 14 October 2016 11:44
- Francois Gueydon
- Participant actif
- Lieu: Castelnaud la Chapelle
- Date d'inscription: 17 Jun 2015
- Messages: 69
Re: [Openlayers 3] affichage d'un geojson
Tu t’embêtes pour rien a essayer de définir la projection avec proj4, pas la peine laisse faire le plugin il gere bien les différents types.
J'ai juste importé ta couche bati dans Qgis, cliqué sur qgis2web et lancé un export et la donnée se calait bien.
Dernière modification par Francois Gueydon (Fri 14 October 2016 11:45)
La cartographie sans SIG existe encore: http://www.cartographersguild.com/content.php
Site perso: http://francoisgueydon.jimdo.com/
Hors ligne
#10 Sat 15 October 2016 13:13
- supernul
- Participant actif
- Date d'inscription: 31 Jan 2010
- Messages: 103
Re: [Openlayers 3] affichage d'un geojson
Bonjour,
je n'ai pas trop le choix pour la reprojection, le plugin ne connait pas cette projection par défaut. Je dois produire un outil qui ne nécessite aucune installation autre que MATLAB.
J'ai trouvé le problème : une erreur dans la définition de la projection. J'ai récupéré celle de QGIS et tout est fonctionnel. Le plugin qgis2web reprojette la donnée en WGS84.
Merci pour votre aide.
Hors ligne