Comment utiliser l'API JS ESRI pour mapper les types spatiaux SQL Server sans ArcGIS Server

8

J'ai entendu parler de personnes utilisant l'API Javascript ESRI pour créer des webmaps avec des données spatiales à partir de SQL Server ou d'autres SGBDR. D'après ce que je peux dire, ils n'utilisent pas ArcGIS Server comme middleware. En particulier, j'ai récemment entendu parler d'une entreprise qui utilise une base de données SQL Server avec des types spatiaux et Entity Framework pour lier la base de données à l'application, mais ils utilisent ensuite l'API ESRI JS sur le frontal pour rendre les données.

C'est quelque chose qui m'intéresse vraiment car j'ai travaillé séparément avec SQL Server, Entity Framework, ASP.Net et l'API JS et je n'ai pas accès à ArcGIS Server. Quelqu'un connaît-il une architecture ou un flux de travail particulier pour utiliser simplement l'API JS comme frontal pour un backend non ESRI?

Brian
la source
1
La réponse courte est d'envoyer des données au format JSON à partir d'un service. Mais pour voir si cela est possible, vous devrez répondre à des questions telles que: Quel type de données souhaitez-vous afficher sur la carte? Combien de fonctionnalités? combien de couches?
Devdatta Tengshe
1
Une autre option consiste à utiliser Geoserver pour servir les données stockées dans MS SQL Server: docs.geoserver.org/2.1.3/user/data/sqlserver.html
Devdatta Tengshe
@DevdattaTengshe - Si je devais créer un service JSON, aurais-je besoin de ma structure JSON pour imiter la structure utilisée par l'API JS. Par exemple, aurais-je besoin de servir mes tables en tant FeatureLayerqu'objets? Maintenant je travaille sur un projet utilisant ArcGIS Online et l'API JS. Le problème est que je ne peux faire aucun traitement dans AGOL, donc tous les calculs doivent être effectués côté client. Je travaille avec seulement quelques couches, mais certaines d'entre elles pourraient avoir des centaines de milliers de fonctionnalités.
Brian
@DevdattaTengshe - J'ai entendu parler de Geoserver et j'aimerais vraiment l'essayer un jour. Je ne sais toujours pas comment utiliser Geoserver avec une application Web côté serveur utilisant quelque chose comme ASP.Net et Entity Framework. Je crains de rencontrer les mêmes limites avec Geoserver que je vois avec AGOL.
Brian
Oui, vous devrez imiter le format ERSI JSON pour une interopérabilité facile.
Devdatta Tengshe

Réponses:

5

Juste pour ajouter plus de détails, lorsque vous créez un service pour renvoyer JSON à partir de SQL Server, vous utilisez ensuite l'objet de collection d'entités pour créer une nouvelle couche sur la carte. À partir de javascript, vous devez prendre les attributs et la composante spatiale renvoyés par votre service et les formater au format géométrique Esri pour créer la collection d'entités.

Plus votre serveur retourne un format comme le format Esri, moins vous devez analyser le client. JSON est assez facile à analyser une fois que vous avez compris.

La collection d'entités affichée serait une couche graphique sur la carte. Vous pouvez avoir un Esri ou un autre fond de carte public en dessous. Un problème que vous aurez est la performance lorsque vous commencez à approcher des milliers d'entités, en particulier si elles ont beaucoup de sommets par géométrie. Les services d'entités sur le serveur ArcGIS renvoient un maximum de 1000 enregistrements par défaut.

En ce qui concerne les calculs, vous devez les faire avec SQL (il a des extensions spatiales) dans la base de données avant de les renvoyer au client. Si vous essayez d'afficher des centaines de milliers de fonctionnalités, vous devrez utiliser Geoserver ou UMN Mapserver et les renvoyer sous forme de WMS ou d'un service en mosaïque - vous ne pouvez pas afficher autant de graphiques dans le navigateur.

Découvrez cet exemple où un calque est créé à partir d'un flux de données Flickr. Aucun serveur ArcGIS impliqué - http://developers.arcgis.com/en/javascript/jssamples/fl_featureCollection.html

awesomo
la source
1
Je suis intéressé par la façon de créer un service qui renvoie JSON de SQL Server qui est bien formaté pour que l'API Esri JS puisse analyser.
MLowry
2
Ce lien vous aidera à créer un service qui renvoie Json arcgis.com/home/item.html?id=6d28a606369c43fd9a6f929541ae7c93
Gunner
@Gunner c'est un bon échantillon
awesomo