Verwendung der ESRI JS-API zum Zuordnen von räumlichen SQL Server-Typen ohne ArcGIS Server


8

Ich habe von Leuten gehört, die die ESRI-Javascript-API verwenden, um Webmaps mit räumlichen Daten von SQL Server oder anderen RDBMS zu erstellen. Soweit ich weiß, verwenden sie ArcGIS Server nicht als Middleware. Insbesondere habe ich kürzlich von einem Unternehmen gehört, das eine SQL Server-Datenbank mit räumlichen Typen und Entity Framework verwendet, um die Datenbank mit der App zu verknüpfen, aber dann die ESRI JS-API im Front-End zum Rendern der Daten verwendet.

Dies interessiert mich wirklich, da ich separat mit SQL Server, Entity Framework, ASP.Net und der JS-API gearbeitet habe und keinen Zugriff auf ArcGIS Server habe. Kennt jemand eine bestimmte Architektur oder einen bestimmten Workflow für die einfache Verwendung der JS-API als Frontend für ein Nicht-ESRI-Backend?


1
Die kurze Antwort besteht darin, Daten als JSON von einem Dienst zu senden. Um zu sehen, ob dies möglich ist, müssen Sie folgende Fragen beantworten: Welche Art von Daten möchten Sie auf der Karte anzeigen? Wie viele Funktionen? wie viele schichten
Devdatta Tengshe

1
Eine andere Möglichkeit ist die Verwendung von Geoserver, um in MS SQL Server gespeicherte Daten bereitzustellen
Devdatta Tengshe

@DevdattaTengshe - Wenn ich einen JSON-Dienst erstellen würde, würde ich meine JSON-Struktur benötigen, um die von der JS-API verwendete Struktur nachzuahmen. Muss ich zum Beispiel meine Tabellen als FeatureLayerObjekte bereitstellen? Jetzt arbeite ich an einem Projekt mit ArcGIS Online und JS API. Das Problem ist, dass ich in AGOL keine Verarbeitung durchführen kann, daher müssen alle Berechnungen clientseitig durchgeführt werden. Ich arbeite mit nur wenigen Ebenen, aber einige von ihnen könnten Hunderttausende von Funktionen haben.
Brian

@ DevdattaTengshe - Ich habe von Geoserver gehört und würde es gerne eines Tages ausprobieren. Ich bin mir immer noch nicht sicher, wie ich Geoserver mit einer serverseitigen Webanwendung verwenden würde, die so etwas wie ASP.Net und Entity Framework verwendet. Ich befürchte, dass ich mit Geoserver an die gleichen Grenzen stoßen würde, die ich mit AGOL sehe.
Brian

Ja, Sie müssen das ERSI JSON-Format nachahmen, um eine einfache Interoperabilität zu gewährleisten.
Devdatta Tengshe

Antworten:


5

Um weitere Details hinzuzufügen, würden Sie beim Erstellen eines Dienstes zur Rückgabe von JSON von SQL Server das Feature-Auflistungsobjekt verwenden, um einen neuen Layer auf der Karte zu erstellen. Aus Javascript würden Sie die Attribute und die räumliche Komponente, die von Ihrem Dienst zurückgegeben wurden, in das Esri-Geometrieformat formatieren, um die Feature-Sammlung zu erstellen.

Je näher Ihr Server ein Format wie das Esri-Format zurückgibt, desto weniger Analyse müssen Sie auf dem Client durchführen. JSON ist ziemlich einfach zu analysieren, sobald Sie den Dreh raus haben.

Die angezeigte Feature-Sammlung wäre eine grafische Ebene auf der Karte. Sie könnten einen Esri oder eine andere öffentliche Basiskarte darunter haben. Ein Problem, das Sie haben werden, ist die Leistung, wenn Sie sich Tausenden von Features nähern - insbesondere, wenn sie viele Scheitelpunkte pro Geometrie haben. Feature-Services auf dem ArcGIS-Server geben standardmäßig maximal 1000 Datensätze zurück.

Berechnungen sollten mit SQL (mit räumlichen Erweiterungen) in der Datenbank durchgeführt werden, bevor sie an den Client zurückgegeben werden. Wenn Sie jedoch versuchen, Hunderttausende von Funktionen anzuzeigen, müssen Sie Geoserver oder UMN Mapserver verwenden und diese als WMS oder gekachelten Dienst zurückgeben. Sie können nicht so viele Grafiken im Browser anzeigen.

Schauen Sie sich dieses Beispiel an, in dem eine Ebene aus einem Flickr-Datenfeed erstellt wird. Kein ArcGIS-Server beteiligt - http://developers.arcgis.com/de/javascript/jssamples/fl_featureCollection.html


1
Ich bin daran interessiert, wie ein Dienst erstellt wird, der JSON von SQL Server zurückgibt, der gut formatiert ist, damit die Esri JS-API ihn analysieren kann.
MLowry

2
Dieser Link hilft Ihnen beim Erstellen eines Dienstes, der Json arcgis.com/home/item.html?id=6d28a606369c43fd9a6f929541ae7c93
Gunner

@ Gunner, das ist eine schöne Probe
awesomo

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.