ArcGIS for JavaScript-Zoom zum Entfernen
Ich bin kürzlich während der Entwicklung auf ein Problem gestoßen, das heißt, nachdem die Karte in ArcGIS for JavaScript bis zu einem bestimmten Grad gezoomt wurde, werden einige Elemente der Karte automatisch entfernt, was es für Benutzer unmöglich macht vollständige geografische Informationen anzeigen. Dies ist ein sehr ärgerliches Problem, da Benutzer vollständige geografische Informationen sehen müssen, da sonst der Sinn der Verwendung der Karte verloren geht. In diesem Artikel werden wir die Ursachen dieses Problems untersuchen und einige Lösungen anbieten.
Ursache des Problems
In ArcGIS für JavaScript nimmt die Leistung der Karte ab, wenn die Anzahl der Features auf der Karte zunimmt. Wenn die Zoomstufe der Karte höher ist, werden immer mehr Features auf der Karte angezeigt. Dies führt dazu, dass die Anzahl der Features auf der Karte bei einer bestimmten Zoomstufe das Limit des Browsers überschreitet und der Browser automatisch hinzufügt Entfernen Sie einige Elemente aus der Karte. Bei diesen Features kann es sich um Beschriftungen, Linien oder Polygone auf der Karte handeln. Dieses Problem wird oft als „Zoom to Drop“ bezeichnet und ist auf Browsereinschränkungen zurückzuführen und wird nicht durch die ArcGIS for JavaScript-Engine verursacht.
Lösung
Es gibt verschiedene Möglichkeiten, dieses Problem zu lösen, abhängig von Ihren Anwendungsanforderungen und dem Kartendatenvolumen.
Die Optimierung von Kartenelementen ist der direkteste Weg, dieses Problem zu lösen. Sie können die Größe und Menge der Daten reduzieren, indem Sie:
Durch diese Methoden können Sie die Größe und Menge der Daten reduzieren und dadurch die Browser- und Serverleistung verbessern.
Wenn Sie Ihre Daten nicht optimieren können, können Sie erwägen, einige Ebenen auszublenden, wenn die Karte auf eine bestimmte Ebene gezoomt wird. Ein gutes Beispiel ist Google Maps, das unnötige Funktionen ausblendet, um die Kartenleistung zu verbessern, wenn der Benutzer auf die kleinste Zoomstufe zoomt. In ArcGIS for JavaScript kann dies mit dem folgenden Code erreicht werden:
// 隐藏地图图层 map.on("zoom-end", function() { if (map.getZoom() >= 10) { // 显示图层 map.getLayersVisibleAtScale(1048284).forEach(function(layer) { layer.show(); }); } else { // 隐藏图层 map.getLayersVisibleAtScale(1048284).forEach(function(layer) { layer.hide(); }); } });
In diesem Beispiel zeigen wir einige Layer, wenn sie auf eine bestimmte Ebene gezoomt werden. Es steht Ihnen frei, den Code entsprechend den tatsächlichen Anforderungen zu ändern.
Wenn Ihr Datensatz groß ist und nicht optimiert werden kann, können Sie die Verwendung eines gekachelten Kartendienstes in Betracht ziehen. Kacheln sind vorverarbeitete Bilder oder Karten, die bei Bedarf geladen und angezeigt werden können. Wenn der Benutzer daher auf eine bestimmte Ebene zoomt, werden nur die für diese Ebene erforderlichen Kacheln geladen, nicht der gesamte Datensatz der Karte.
Der Kachelkartendienst ist einer der am häufigsten verwendeten Datenquellentypen und solche Kartendienste werden in ArcGIS Online und ArcGIS Enterprise bereitgestellt.
Fazit
„Zum Entfernen zoomen“ ist ein sehr häufiges Problem, das jedoch nicht durch die ArcGIS for JavaScript-Engine verursacht wird. Befolgen Sie bei der Lösung dieses Problems besser die folgenden Richtlinien:
Bitte beachten Sie, dass die Leistung und Anforderungen jeder Kartenanwendung unterschiedlich sind. Sie müssen daher die beste Strategie basierend auf Ihren Anwendungsanforderungen auswählen. Ich hoffe, dieser Artikel ist hilfreich für Sie.
Das obige ist der detaillierte Inhalt vonArcgis für Javascript-Zoom zum Entfernen. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!