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 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

PA
Membre
Lieu: Paris
Date d'inscription: 5 Sep 2005
Messages: 3259
Site web

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 ?


Pierre-André Le Ny
Modérateur QGIS, Données, Coin de l'OpenSource
Aidez l'association GeoRezo !

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

PA
Membre
Lieu: Paris
Date d'inscription: 5 Sep 2005
Messages: 3259
Site web

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 ?


Pierre-André Le Ny
Modérateur QGIS, Données, Coin de l'OpenSource
Aidez l'association GeoRezo !

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.


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

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)


Fichier(s) joint(s) :
Pour accéder aux fichiers vous devez vous inscrire.

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

 

Pied de page des forums

Powered by FluxBB