Chargement GeoJSON couches de serveur géographique à la Notice de la Carte basée sur le courant de la boîte englobante
Actuellement, j'ai plus de 25000 points pour ma carte. Lorsque je charge tous les points de la carte est extrêmement lent. Donc, je veux charger les données uniquement à un certain niveau de zoom et la boîte englobante(utilisateurs). Comment puis-je accomplir qu'avec mon code actuel?
var map = new L.Map('map', {center: new L.LatLng(54.0000, -125.0000), zoom: 5});
var googleLayer = new L.Google('ROADMAP');
map.addLayer(googleLayer);
function BoundingBox(){
var bounds = map.getBounds().getSouthWest().lng + "," + map.getBounds().getSouthWest().lat + "," + map.getBounds().getNorthEast().lng + "," + map.getBounds().getNorthEast().lat;
return bounds;
}
var geoJsonUrl ="http://localhost:8080/geoserver/Wells/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=Wells:bc_well_data_wgs&maxFeatures=25&outputFormat=text/javascript&format_options=callback:loadGeoJson";
var geojsonLayerWells = new L.GeoJSON();
function loadGeoJson(data) {
console.log(data);
geojsonLayerWells.addData(data);
};
$.ajax({
url: geoJsonUrl,
dataType : 'jsonp',
success: loadGeoJson
});
map.on('moveend', function(){
if(map.getZoom() >= 18){
map.removeLayer(geojsonLayerWells);
}
if(map.getZoom() < 18){
map.addLayer(geojsonLayerWells);
}
console.log(map.getZoom());
console.log(BoundingBox());
});
OriginalL'auteur mblais29 | 2014-08-07
Vous devez vous connecter pour publier un commentaire.
Voici comment je l'ai résolu, tout a changé autour de.
OriginalL'auteur mblais29
WFS ne pas avoir une notion de zoom levelor échelle, c'est-à WMS, bien qu'il supporte le chargement sous-ensemble de la base de données sur une bbox (voir la WFS exemples).
Qui dit serveur géographique ne prend pas en charge JSon pour WMS, voir http://docs.geoserver.org/latest/en/user/services/wms/outputformats.html#wms-output-formats
Qui pourrait être une bonne chose à contribuer.
Simone.
OriginalL'auteur simogeo
Cela fonctionne pour serveur géographique 2.6.2 avec Notice 0.7.3. BTW le suivant bbox numéros de SF de la ville a été obtenu par la Notice de la fonction native
Sans limitation: (retour beaucoup)
http://localhost:8080/geoserver/topp/ows?service=WFS&version=1.0.0&request=GetFeature&typeName=topp:states&maxFeatures=50&outputFormat=application/json
Avec la carte des limites de limitation (retour couvre actuellement)
http://localhost:8080/geoserver/topp/ows?service=wfs&version=1.0.0&request=GetFeature&typeName=topp:states&bbox=-122.42553591728209,37.77453948196016,-122.4133050441742,37.775319671408&outputFormat=application/json
OriginalL'auteur xjlin0
Votre code ok. Il suffit de passer la bbox dans l'url.
Si votre BoundingBox() la fonction donnant corriger bbox alors vous devriez obtenir les données de cette gamme. Je dirais que pour le test, l'url de serveur géographique de l'outil d'administration de la couche de prévisualisation, ajouter bbox calculer à partir de votre fonction et de voir le résultat.
OriginalL'auteur SSA
C'est ce que j'ai, lorsque je vérifie le nombre d'objets chargé, il dit 4000, ce qui signifie que son chargement tout en dehors de la boîte englobante....
OriginalL'auteur mblais29