2009-09-23 6 views
3

Passer en revue une nouvelle exigence de développement de produit SIG et sa phase de collecte d'exigences. Cette application doit s'exécuter sur un bureau et une partie de l'application sur un appareil mobile qui peut ensuite se synchroniser avec le bureau ou le serveur. Ce produit traite des images, définit les limites, analyse à l'aide de couches, polygones, importation de fichiers de formes, utilise la journalisation GPS pour définir les limites et l'application pour entrer des enregistrements. Quel serait l'environnement de développement idéal? puisque l'une des principales exigences est la mise sur le marché de ce produit. J'ai beaucoup entendu parler de ESRI en tant qu'outil de mappage idéal et d'Oracle Spatial ou de SQL Server en tant que lecteurs de base de données. Comment puis-je analyser les bons outils pour ce développement impliquant WEB, application de bureau, plate-forme mobile et application côté serveur? Toutes les idées de personnes expérimentées en développement de produits!Quelle est la meilleure plate-forme de développement pour les applications SIG?

Répondre

5

Si cette application est pour Windows (bureau) et Windows Mobile, alors C# /. Net est un excellent choix de langue/plate-forme. Avec Mono, vous pouvez également (éventuellement) couvrir Mac, Linux et l'iPhone. Soit SQL Server ou Oracle fonctionnerait pour la base de données, bien que j'irais avec SQL Server (Oracle, pour tous ses avantages, est juste beaucoup plus d'un tracas à traiter). Comme le composant Web peut être ASP.Net, vous avez l'avantage distinct d'avoir tous les de votre code (même dans SQL Server) en C#, donc vous n'avez vraiment besoin de maîtriser qu'une seule langue.

+1

Cette réponse, bien qu'intéressante en termes de plateformes de développement, n'a vraiment rien à voir avec le développement d'applications SIG. –

+1

Daniel & MusicGenesis: Vous avez fourni de bonnes informations sur ce que je cherchais. Qu'en est-il de Java? Aussi toute entrée sur la technologie de synchronisation disponible pour gérer la synchronisation entre un périphérique et un serveur ou entre un ordinateur portable et un serveur capable de gérer beaucoup/beaucoup de données. Merci encore. – Oraaps

+0

@Oraps: Je ne peux pas parler pour ou contre Java, car j'ai très peu d'expérience en la matière. La synchronisation entre le serveur et l'appareil/l'ordinateur portable peut se faire très facilement en C# /. Net avec les services Web exécutés dans une application ASP.Net. L'application de l'appareil et l'application pour ordinateur portable peuvent, en fait, utiliser les mêmes services Web. – MusiGenesis

14

ESRI fournit certainement beaucoup de bons outils. En particulier, si vous avez besoin d'un appareil mobile, je me pencherais sur ESRI, car je ne suis pas au courant des alternatives qui sont vraiment fortes dans le monde mobile.

(Modifier. Quand je dis « mobile » ci-dessus, je suppose que vous vouliez dire des unités SIG mobiles, comme Trimble unités Si vous voulez dire vraiment faire du SIG mobile sur des choses comme l'iPhone, vous êtes probablement mieux d'utiliser la plate-forme Je sais que Apple a de très bons outils (sous NDA IIRC) que vous pouvez utiliser pour faire des applications géospatiales sur l'iPhone.Je ne sais pas à quoi ressemble le support sur d'autres appareils mobiles.)

À la fin de la base de données, Oracle Spatial, SQL Server 2008 et PostGIS sont tous des lecteurs. Cependant, si vous utilisez une solution ESRI, sachez qu'ESRI se positionne essentiellement comme une solution de bout en bout. Ainsi, tout accès à votre base de données passera probablement par la couche ArcSDE d'ESRI, ce qui signifiera que les avantages uniques que les différentes plates-formes de bases de données pourraient apporter à la table seront perdus.

En termes de rendu cartographique réel, je n'ai pas trouvé de solutions ESRI idéales. En particulier, une grande partie du code ArcObjects présente des problèmes dans un environnement fortement multithread (par exemple, le rendu de nombreuses cartes à la fois) qui ne sont tout simplement pas disponibles avec d'autres solutions de rendu. Une alternative consiste à utiliser des solutions ESRI pour des parties de votre système (par exemple, le support mobile, l'analyse) et à utiliser d'autres solutions pour d'autres parties.

Ma propre tendance serait de se pencher sur l'utilisation d'outils open-source pour autant de choses que possible. Certains outils pour se pencher sur les suivants:

  • PostGIS pour la base de données géospatiale
  • GDAL/OGR pour la conversion de données
  • GDAL pour l'imagerie quoi que ce soit à peu près liées
  • JTS ou GEOS pour la topologie (mathématiques de polygones, etc.)
  • MapServer pour le rendu
  • OpenLayers pour front-end web

Bien sûr, si le temps d'accès au marché est une contrainte majeure, alors l'une des principales choses à penser est ce que votre équipe déjà sait. Si votre équipe est familière avec les outils ESRI et non avec les alternatives open-source, vous pouvez choisir cette option simplement par hasard. Et, comme le souligne MusiGenesis, C#/.NET peut être une bonne plate-forme à explorer, en plus de tous ces outils. Il est certainement possible de faire le développement d'ArcObjects avec C#, et mon expérience est que c'est un environnement plus agréable pour le développement d'ArcObjects que le COM simple de C++.

+0

+1 pour une réponse réfléchie et utile. :) – MusiGenesis

1

Je suggère de faire une promenade à travers la pile de projets développés sous l'égide de OSGeo Foundation - OSGeo.org. Il existe une variété de projets Open Source disponibles pour diverses applications, plateformes de développement, etc.