<\/P>
Kürzlich habe ich ein wenig über einige der Visualisierungstools in der ArcGIS API for JavaScript gesprochen. Neuere Versionen haben Smart Mapping<\/A> eingeführt, das einen Teil der Vermutungen bei der Erstellung von Renderern basierend auf Ihren Daten übernimmt. Sie haben auch einige wirklich coole Funktionen eingeführt, die sich mit dem Mischen von Farben<\/A> basierend auf den Daten in Ihrer Karte befassen. Es kommt an den Punkt, an dem Entwickler kaum noch Ausreden für hässliche Karten haben werden<\/EM>.<\/P><\/P>Eines der Dinge, die ich letzte Woche auf der EsriUC<\/A> gesehen habe, war die Idee, Smart Mapping zu verwenden, um Ihren Renderer zu generieren, ein wenig damit zu experimentieren und es zu nutzen, um das JSON des Renderers zu erzeugen, das Sie später verwenden können, ohne die Smart Mapping-Tools erneut aufzurufen. Das ist völlig machbar, aber etwas unklar, wie man es genau macht. Schauen wir uns also ein paar Techniken an, die Sie verwenden könnten.<\/P><\/P>
function saveLocal(data, field) { var key = location.pathname + '-' + field; localStorage.setItem(key, JSON.stringify(data));}function getLocal(field) { var key = location.pathname + '-' + field; var data = localStorage.getItem(key); if (data) { return JSON.parse(data); } else { return null; }}<\/PRE><\/P>Wenn Sie dann Smart Mapping einrichten, könnten Sie im localStorage nach einem vorhandenen Renderer suchen und einfach diesen gespeicherten Renderer verwenden und Smart Mapping komplett umgehen.<\/P><\/P>function createRenderer(field) { \/\/_smart mapping-Funktionalität beginnt var data = getLocal(field); if (data) { console.log('Renderer aus localStorage laden'); layer.setRenderer(jsonUtils.fromJson(data)); layer.redraw(); createLegend(map, layer, field); } else { smartMapping.createClassedColorRenderer({ layer: layer, field: field, basemap: map.getBasemap(), classificationMethod: "quantile" }).then(function (response) { console.log('Renderer im localStorage speichern'); saveLocal(response.renderer.toJson(), field); layer.setRenderer(response.renderer); layer.redraw(); createLegend(map, layer, field); }); }}<\/PRE><\/P>Das ist ziemlich cool.<\/EM> Die Daten in diesem Beispiel sind nicht allzu kompliziert, aber man kann sich vorstellen, dass wenn man einen großen Datensatz hat, es eine Sekunde oder so dauern kann, bis Smart Mapping den Renderer generiert hat und diese Methode könnte Ihrer App eine Optimierung bringen. Hier ist eine
Angemeldete Mitglieder können Beiträge verfassen, Updates folgen und mehr. Neu hier? Registrieren Sie ein kostenloses Konto.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.