Suite

TypeError: jsonFeatures.map n'est pas une fonction utilisant la recherche de fusibles dans le dépliant js

TypeError: jsonFeatures.map n'est pas une fonction utilisant la recherche de fusibles dans le dépliant js


J'essaie d'implémenter la fonctionnalité de recherche de fusible dans une carte de dépliant, mais j'obtiens une TypeError : jsonFeatures.map n'est pas une fonction. Voici ma partie javascript du code :

var map = L.map('map', { zoomControl:false, maxZoom:35 }).fitBounds([[33.0505857631,-97.0891295315],[46.4513087069,-74.8430449085]]); var hash = new L.Hash(map); var additional_attrib = 'créé w. qgis2feuille par Géolique & contributeurs
'; var feature_group = new L.featureGroup([]); var raster_group = new L.LayerGroup([]); var basemap_0 = L.tileLayer("http://{s}.mqcdn.com/tiles/1.0.0/osm/{z}/{x}/{y}.png">

Quelques choses à dire.

1/ Vous fournissez à .indexFeatures() cluster_groupmvpdatasetJSON, qui est une couche Leaflet. indexFeatures() attend une FeatureCollection, vous devez donc plutôt transmettre exp_mvpdatasetJSON.

2/ L'attribution de feature.layer doit se faire pour chaque feature, il faut le faire dans la fonction pointToLayer qui sert de paramètre à L.geoJson() : créez le marqueur, attribuez-le à feature.layer, puis retournez le marqueur.

3/ Le plugin peut ne pas fonctionner correctement avec les groupes de cluster, il n'a pas été testé - c'est sur ma liste cependant…

Vous pouvez donc modifier votre code en suivant ces lignes :

var exp_mvpdatasetJSON = new L.geoJson(exp_mvpdataset,{ onEachFeature: pop_mvpdataset, pointToLayer: function (feature, latlng) { var marker = L.marker(latlng, { icon: L.icon({ iconUrl: feature.properties.icon_exp, iconSize : [50, 45], iconAnchor : [12, 12], popupAnchor : [0, -14] }) }); feature.layer = marker; return marker; }} );

J'espère que ça t'aidera, Antoine.