Leaflet et fichier json

a marqué ce sujet comme résolu.

Voici le message reçu:

https://drive.google.com/file/d/1GSvajMB3lfFnG7DbR8ShBevmhl_6EpT7/view?usp=sharing

Avec le code suivant:

L.geoJSON(waypoints, {
	filter : (feature)=> feature.geometry.type==="Point"},
    {pointToLayer: function (feature, latlng) {
	  if (feature.geometry.type === "Point") {
        return new L.circleMarker(latlng, geojsonMarkerOptions);
    }}}).addTo(map);

La ligne 1 est la 75 dans le script complet…

+0 -0

Ok, alors normalement tu dois pouvoir ouvrir la console de ton navigateur pour afficher le retour de ta console javascript.

En l’occurrence, ton erreur se situe ici :

L.geoJSON(waypoints, {
	filter : (feature)=> feature.geometry.type==="Point"}, // À cette séparation
    {pointToLayer: function (feature, latlng) {
	  if (feature.geometry.type === "Point") {
        return new L.circleMarker(latlng, geojsonMarkerOptions);
    }}}).addTo(map);

Un objet se fait comme ça :

let objet = { clé1: valeur, clé2: valeur }
// Si tu fais ça :
let objet = { clé1: valeur }, { clé2: valeur }
// Tu crées 2 objets différents, et non pas 1 objet avec 2 clés différentes
+1 -0

Bonjour, Merci de ces précisions qui m’apprennent pas mal de choses. En fait, j’utilise ce script non pas dans un navigateur classique, mais dans un programme Delphi (Pascal objet) et la carte est affichée dans un composant webbrowser, donc pas de console. J’ai corrigé en suivant tes recommandations mais j’ai toujours une erreur de syntaxe….

L.geoJSON(waypoints, {
		filter : (feature)=> feature.geometry.type==="Point",
		pointToLayer: function (feature, latlng) {
	  if (feature.geometry.type === "Point") {
        return new L.circleMarker(latlng, geojsonMarkerOptions);
    }}}).addTo(map);

Merci de ton aide

Si tu essayes en recréant une fonction complète plutôt qu’une arrow function ? Parfois il y a des soucis de syntaxe un peu particulier avec le js dans le navigateur. Par ailleurs, j’ai aucune idée de si Delphi utilise une version à jour de la norme.

L.geoJSON(waypoints, {
		filter : function (feature){ return feature.geometry.type==="Point"},
		pointToLayer: function (feature, latlng) {
	  if (feature.geometry.type === "Point") {
        return new L.circleMarker(latlng, geojsonMarkerOptions);
    }}}).addTo(map);

Si ça ne fonctionne toujours pas, est-ce que tu pourras me mettre un code complet stp ? Je serai obligé de faire des essais de mon côté.

+1 -0

Rebonjour, Je me replonge dans mon appli et ai changé d' environnement de développement (Nouvelle version). Je réutilise le script et le fichier GeoJson précédents sans aucune modification. Au moment de l’affichage de la carte, J’obtiens le message suivant(Attaché), puis la carte s’affiche sans les points ni les ligne et ce message apparaît(Attaché) 1er Message 2eme Message Merci de votre aide. Pierre

+0 -0

J’ai fini par trouver! C’est le second message qui m’a mis la puce à l’oreille. En fait le format °, ', " qui est différent dans le nouvel environnement. Il devient: *, ', minute décimale. J’ai donc changé la fonction qui convertit les degrés décimaux en chaîne pour obtenir le bon format. Tout fonctionne… Merci encore pour ton temps Pierre

Bonjour, Je reviens vers vous pour une nouvelle question. Certaines routes passent par l’antiméridien (Longitude 180°) mais leaflet et geodesic coupent le tracé en 2 parties. IMAGE

Je sais qu’il existe une options de Geodesic (wrap) qui mise à false empêche la coupure. J’ai essayé de la placer à divers endroits du code, sans succès. Auriez vous une idée ?

Pierre

+0 -0
Connectez-vous pour pouvoir poster un message.
Connexion

Pas encore membre ?

Créez un compte en une minute pour profiter pleinement de toutes les fonctionnalités de Zeste de Savoir. Ici, tout est gratuit et sans publicité.
Créer un compte