Rapport de Mini-Projet en ArcGIS Engine



Documents pareils
Développer avec les technologies ESRI. ESRI Developer Network (EDN) Gaëtan LAVENU ESRI France Jérémie MAJEROWICZ ESRI France

Qu est-ce que ArcGIS?

ArcGIS Desktop Les nouveautés de la version 10. Gaëtan LAVENU

ArcGIS Mobile 9.3. Cédric Pesty Gael Simon. Conférence SIG 2008 Ateliers Techniques. S'il vous plait! Merci d'éteindre vos appareils portables

ArcGIS. for Mobile. Comprendre notre monde

Cours iguess. inotes v10.1

Configuration et optimisation d'arcgis Server Gaëtan LAVENU ESRI France Sylvain BARD-MAÏER ESRI France

ArcGIS. for Server. Sénégal. Comprendre notre monde

Programmation VBA/Excel. Programmation VBA. Pierre BONNET. Masters SMaRT & GSI - Supervision Industrielle P. Bonnet

Paginer les données côté serveur, mettre en cache côté client

Support de TD ArcGIS Introduction à l automatisation et au développement avec ArcGIS 10.1 JEAN-MARC GILLIOT e année ingénieur

Développer une stratégie SIG Entreprise efficace avec ESRI et ArcGIS

Didacticiel de mise à jour Web

ArcGIS Server / 9.4. Gaëtan LAVENU Jean-Marie DULISCOUET

Cadastre du bruit SIT-JURA. Connecteur Arcview9.x - MSAccess. Mode d emploi. Appel formulaire. Page 1 sur 15

Module d introduction Comment réaliser vos propres cartes avec ArcGIS Online

ArcGIS. for Server. Comprendre notre monde

Matérialiser les données d une BdD : créer une carte de densité de points par maillage

BIRT (Business Intelligence and Reporting Tools)

ArcGIS 10.1 for Server

Travaux Pratiques de Commande par ordinateur 1 TRAVAUX PRATIQUES

ArcGIS 10 Christophe Tourret Gaëtan Lavenu

Développer des Applications Internet Riches (RIA) avec les API d ArcGIS Server. Sébastien Boutard Thomas David

Les Géodatabases en 9.2

ArcScan Tutorial. Copyright Esri All rights reserved.

Evolutions technologiques : ArcGIS Desktop. Mehdi HUGUET Thierry BABELAERE

Didacticiel du service cartographique en cache

Mise en place d'un serveur d'application SIG au Conseil général de Seine-et-Marne

Intégration ESRI - SAP Geo-Enablement de l ERP SAP Exemple : GEO.e. Christophe Lapierre Enrique Yaptenco Professional Services - ESRI Suisse

Séminaire Partenaires Esri France 7-8 juin Paris La Road Map ArcGIS

Création d un service web avec NetBeans 5.5 et SJAS 9

Connexion entre une BD FileMaker Pro 10 et ArcGis 10.x sous Windows 7

Les outils actuels permettent-ils d automatiser la production de cartes? De quels outils dispose-t-on?

Gestion du cache dans les applications ASP.NET

Glossaire. base de données géographiques Voir géodatabase (GDB).

Guide Tenrox R8.7 de configuration de Microsoft Reporting Services

Séminaire Partenaires Esri France 7-8 juin Paris Les API ArcGIS pour les smartphones

Au niveau central Manuel (01/10/2012) Projet de Renforcement du Programme de Prévention du VIH JICA Madagascar

Formation VBA 3 Interagir

ArcGIS for INSPIRE SIG RAIL 2011

ALLIANCE TECHNOLOGIES MANAGEMENT

Guide d installation de ArcGIS server 9.3.1

Esri Maps for IBM Cognos

OUTIL DE TRAVAIL COLLABORATIF

Par Daniel FAIVRE WebMapper ... Publication de cartes pour Internet avec ArcGis

Exploiter les statistiques d utilisation de SQL Server 2008 R2 Reporting Services

Les nouveautés de FME 2014

ESPACE COLLABORATIF SHAREPOINT

Introduction de Windows Form

Projet de développement

Modélisation et Gestion des bases de données avec mysql workbench

INTRODUCTION GENERALE...1 LA CONNEXION ODBC :...1. CONNEXION AU TRAVERS D EXCEL(tm)...6. LOGICIEL QUANTUM GIS (Qgis)... 10

Programme TechDay Romandie

Visual Basic for Applications

Utilisation de JAVA coté Application serveur couplé avec Oracle Forms Hafed Benteftifa Novembre 2008

.NET - Classe de Log

Location Analytics. Astrid GLADYS Thierry BABELAERE Pierre TEYSSENDIER. SIG 2013 Conférence Francophone 2 & 3 Octobre Versailles Atelier Technique

Mise en place d'une chaîne de production raster multi-échelles

Travaux Pratiques sur les Systèmes d Information Géographique - SIG - Initiation à ArcGIS

Serveur d'application Client HTML/JS. Apache Thrift Bootcamp

La base de données dans ArtemiS SUITE

JACi400 Développement JACi400 Déploiement

Séminaire Partenaires Esri France 7-8 juin Paris Cloud Computing Stratégie Esri

Hébergement et configuration de services WCF. Version 1.0

Préparation à l examen EFA en Macro

Super HUD- Guide Utilisateur

ENDNOTE X2 SOMMAIRE. 1. La bibliothèque EndNote 1.1. Créer une nouvelle bibliothèque 1.2. Ouvrir une bibliothèque EndNote 1.3. Fermer une bibliothèque

Utiliser SQL Server 2008 R2 Reporting Services comme source de donne es pour Microsoft Excel

Programmation Visual Basic. Visite guidée d'un programme Visual Basic 6.0

MANUEL D UTILISATION DES OUTILS «MapCERN»

Formations 2015 Bureautique

ArcGIS Server 9.3 Partie 2. Les API d'accès à ArcGIS Server. Thomas DAVID Gaëtan LAVENU

RAPID Prenez le contrôle sur vos données

Once the installation is complete, you can delete the temporary Zip files..

Prise en main du logiciel de SIG MapInfo

Module.NET 3 Les Assemblys.NET

Environnements de développement (intégrés)

TP1 : Initiation à Java et Eclipse

arcopole Studio Version 3.3

Créer des documents interactifs

Le MSMQ. Version 1.0. Pierre-Franck Chauvet

Connexions à un projet CVS via Eclipse en accès local et distant. 15 Mai 2007

Déployer une application cliente avec le Framework.NET 3.5 Client Profile

SIG CELLULE DE CRISE. LIEU FORUM ESRI VERSAILLES NOM DE L INTERVENANT Olivier BOURGUIGNON - Arkema / DISIT DATE 3 OCT 2012

Comment IBM Maximo vous permet d'optimiser géographiquement vos actifs de production?

ArcGIS Desktop 9.3. Manuel HUBERT Gaëtan LAVENU

as Architecture des Systèmes d Information

Didacticiel des serveurs de bases de données

Gestionnaire de champs PRO

Gestion des documents associés

Tutoriel de formation SurveyMonkey

GUIDE Excel (version débutante) Version 2013

TUTORIEL CartoDB 11/03/15

TwinCAT 3 C++ Création de modules C++ sous TwinCAT 3 VERSION : 1.0 / PH

Introduction à Microsoft InfoPath 2010

27/11/12 Nature. SDK Python et Java pour le développement de services ACCORD Module(s)

Gestion des références bibliographiques. Comment simplifier la gestion des références bibliographiques?

Le langage C++ est un langage de programmation puissant, polyvalent, on serait presque tenté de dire universel, massivement utilisé dans l'industrie

Transcription:

Rapport de Mini-Projet en ArcGIS Engine Réalisée par : Asmae BENMESSAOUD 3ème Année Cycle d Ingénieur Géoinformation Année Universitaire 2010-

Sommaire 1

Introduction L analyse géographique et la visualisation spatiale améliorent le fonctionnement, la prise de décision et la résolution des problèmes, pour ces raisons et bien d autre les développeurs de logiciels ont pu concevoir des applications simples et spécialisées aillant la puissance de la technologie des systèmes d information géographique (SIG) pour notre expertise domaine. L ArcGIS Engine présente un outil très puissant de développement qui rassemble tout ce qu on a besoin pour développer et déployer des solutions SIG personnalisées. 2

I.Présentation de l ArcGIS Engine : I-1) Introduction d ArcGIS Engine : ArcGIS Engine est une nouvelle infrastructure de composants au sein de la gamme de produits ESRI ArcGIS, conçue pour intégrer des fonctionnalités spatiales à de nouvelles applications ou des applications existantes. ArcGIS Engine intègre les deux composants suivants : Le Kit de développement d'arcgis Engine, qui contient les composants et les outils de développement permettant de concevoir des solutions, La Licence de déploiement d'arcgis Engine, l'infrastructure indispensable pour exécuter les applications ArcGIS Engine. ArcGIS Engine constitue une gamme complète de composants logiciels clés, d outils et de ressources rassemblés permettant aux développeurs de concevoir des applications SIG et cartographiques personnalisées. Les développeurs peuvent étendre les bibliothèques d objets et contrôler intégralement l apparence et l utilisation des interfaces utilisateur de leurs applications. Les fonctionnalités d ArcGIS Engine peuvent être utilisées occasionnellement dans une application ou en constituer le 3

composant central. Les applications peuvent être déployées au sein de l infrastructure d ArcGIS Engine ou les développeurs peuvent intégrer des fonctionnalités SIG à d autres applications personnalisées ou commerciales telles que Microsoft Word ou Excel. I-2) Les fonctionnalités principales d ArcGIS Engine : *Création de cartes : Affichage des données, transparence des données multicouches, projections à la volée, Classification des données, Etiquetage de la symbologie, Mise en forme et impression *Interaction avec les cartes : Déplacement et zoom Identification, Hyperlien vers des applications ou adresses URL externes, Analyse de cartes, Opérations de sélection : sélection interactive, sélection par attribut, Opérations d analyse : mise en zone tampon, découpage, fusion, intersection, union, jointure spatiale. *Création de données (fichier de formes et géodatabase personnelle) : Edition de fichiers de formes et de géodatabase, Rectification d images Géocodage et événements, Segmentation dynamique Fichiers MXD en lecture et écriture. ArcGIS Engine permet : D intégrer une logique SIG à des applications industrielles personnalisées, 4

De concevoir et de déployer efficacement des applications SIG, D accéder à une logique SIG avancée à partir d applications simplifiées, D intégrer une logique et des cartes SIG à des applications commerciales telles que Microsoft Word et Excel, De concevoir des applications compatibles entre platesformes avec VB.NET, C++, ou Java. I-3) Conception d applications avec ArcGIS Engine: Les développeurs conçoivent des applications ArcGIS Engine dans l environnement de développement intégré de leur choix, tel que : Microsoft Visual Basic (VB) et Visual Studio.NET Eclipse, Sun ONE Studio et Borland JBuilder pour les développeurs Java Les développeurs enregistrent les composants du kit de développement d ArcGIS Engine dans leur environnement de développement intégré, Par exemple, un développeur VB peut concevoir une application SIG spécialisée en ajoutant à l application un contrôle de carte, un contrôle de table des matières et les barres d outils de son choix. L application terminée peut alors être installée sur n importe quel poste ArcGIS Engine Runtime (y compris les postes ArcGIS Desktop) à des fins de déploiement. I-4) Déploiement d applications ArcGIS Engine : Toutes les applications conçues avec le kit de développement 5

d ArcGIS Engine nécessitent ArcGIS Engine Runtime ou une application ArcGIS Desktop (ArcView, ArcEditor ou ArcInfo ) pour s exécuter correctement. Le créateur d une application peut fournir le logiciel ArcGIS Engine Runtime intégré au code exécutable ou demander à l utilisateur final d obtenir une licence pour le logiciel ArcGIS Engine Runtime directement auprès d ESRI. Le logiciel ArcGIS Engine Runtime standard fournit les fonctionnalités de base de tous les produits ArcGIS et peut être amélioré par : L extension Géodatabase Update pour un accès total en lecture/écriture à une géodatabase multiutilisateurs, L extension 3D pour la visualisation 3D avancée, L extension spatiale pour l analyse spatiale complexe. I I. Présentation de Mini-Projet: I I-1) Introduction : Dans le cadre de notre formation d une semaine avec Mr. BOUAZAOUI, qui était très intéressante pour nous, car on avait appris tous un bagage pour le développement des applications en ArcGIS Engine à travers : des cours théoriques, des exposés et ainsi des exercices quotidiens. À la fin de cette formation on avait été censé de faire une application qui constitue la continuité de dernier exercice qu on a fait sur la cartographie qualitatif et quantitatif mais nous 6

avons été conçue de refaire la cartographie qualitatif à travers la valeur unique et la cartographie quantitatif en utilisant le changement du couleur et de symbole, pratiquement c est comme ce qui existe sur ArcMap dans les propriétés des couches dans l onglet «Symbology». I I-1) L interface demandé par le professeur : Le professeur nous a proposé de faire une interface qui ressemble au schéma ci-dessous : *Le schéma proposé : 7

III. Application : À l exécution de mini-projet vous trouvez la page suivante : 8

Pour passer à faire une cartographie on fait : On aura l interface suivante: 9

Pour faire une cartographie qualitatif on choisit une couche sous forme des points et on clique sur le bouton «Valeur Unique» on obtient : 10

Sur la Map on trouve : Pour une couche sous format polygone comme «région» on obtient : Sur la Map on a : 11

Pour une couche sous format line comme «les réseaux hydrauliques» on a : Sur la carte on avait : 12

Pour la réalisation de cette première étape on a utilisé deux fonctions principales dans le module «valeur_unique_point» et «valeur_unique_ fil» et selon la forme de notre couche, on les a appelés dans le bouton valider par le code suivant: Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Form2.DataGridView1.Rows.Clear() If Rechercher_Layer_byname_in_carte(Form2.cmb1.Text).FeatureClass.ShapeType = ESRI.ArcGIS.Geometry.esriGeometryType.esriGeometryPoint Then valeur_unique_point(rechercher_layer_byname_in_carte(form2.cmb1.text), ComboBox1.Text, 50) ElseIf Rechercher_Layer_byname_in_carte(Form2.cmb1.Text).FeatureClass.ShapeType = ESRI.ArcGIS.Geometry.esriGeometryType.esriGeometryPolygon Then valeur_unique_fil(rechercher_layer_byname_in_carte(form2.cmb1.text), ComboBox1.Text, 50) Else valeur_unique_line(rechercher_layer_byname_in_carte(form2.cmb1.text), ComboBox1.Text, 50) End If decl = False End Sub 13

Pour la cartographie qualitatif suivant la couleur on choisit la couche et on clique sur le bouton «couleur», on choisit le champ, la classe et a couleur : Et sur la Map on obtient : 14

Pour une autre type de format de couche polygone par exemple on a même la possibilité de modifier la couleur en faisant un double clique sur la couleur afficher sur la DataGrid: La partie la plus intéressante dans le code de cette deuxième partie est celle qui existe sur le bouton OK où on modifie la couleur on a fait : Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click Dim min As Integer Dim max As Integer Dim pgeolayer As IGeoFeatureLayer pgeolayer = Rechercher_Layer_byname_in_carte(Form2.cmb1.Text) 'Find the selected field in the feature layer Dim featureclass As IFeatureClass = m_featurelayer.featureclass Dim field As IField = featureclass.fields.field(featureclass.findfield(frm_couleur.combobox1.te)) 'Get a feature cursor Dim cursor As ICursor cursor = m_featurelayer.search(nothing, False) 'Create a DataStatistics object and initialize properties Dim datastatistics As IDataStatistics = New DataStatisticsClass datastatistics.field = field.name datastatistics.cursor = cursor 'Get the result statistics Dim statisticsresults As IStatisticsResults statisticsresults = datastatistics.statistics 15

'Set the values min min and max values min = statisticsresults.minimum max = statisticsresults.maximum 'Create a new ClassBreaksRenderer and set properties m_classbreaksrenderer = New ClassBreaksRenderer m_classbreaksrenderer.field = frm_couleur.combobox1.selecteditem m_classbreaksrenderer.breakcount = Convert.ToInt32((frm_couleur.ComboBox2.Text)) + 1 m_classbreaksrenderer.minimumbreak = Convert.ToDouble(min) 'Calculate the class interval by a simple mean value Dim interval As Double interval = (Convert.ToDouble(max + 1) m_classbreaksrenderer.minimumbreak) / m_classbreaksrenderer.breakcount 'Get the color ramp Dim colorramp As IColorRamp colorramp = m_stylegalleryitem.item 'Set the size of the color ramp and recreate it colorramp.size = Convert.ToInt32(frm_couleur.ComboBox2.Text) + 2 colorramp.createramp(false) Dim i As Integer, currentbreak As Double Dim simplefillsymbol As ISimpleFillSymbol Dim smarker As ISimpleMarkerSymbol Dim simpleline As ISimpleLineSymbol 'Get the enumeration of colors from the color ramp Dim enumcolors As IEnumColors = colorramp.colors enumcolors.reset() currentbreak = m_classbreaksrenderer.minimumbreak ' test de shapetype If m_featurelayer.featureclass.shapetype = ESRI.ArcGIS.Geometry.esriGeometryType.esriGeometryPoint Then For i = 0 To m_classbreaksrenderer.breakcount - 1 'Set class break m_classbreaksrenderer.break(i) = currentbreak 'Create simple marker symbol and set color smarker = New SimpleMarkerSymbol smarker.style = esrisimplemarkerstyle.esrismscircle smarker.size = 5 smarker.color = enumcolors.next() 'Add symbol to renderer m_classbreaksrenderer.symbol(i) = smarker currentbreak += interval addcontrol(smarker, i, m_classbreaksrenderer.label(i)) Next i ElseIf m_featurelayer.featureclass.shapetype = ESRI.ArcGIS.Geometry.esriGeometryType.esriGeometryPolygon Then For i = 0 To m_classbreaksrenderer.breakcount - 1 'Set class break m_classbreaksrenderer.break(i) = currentbreak 'Create simple fill symbol and set color simplefillsymbol = New SimpleFillSymbolClass simplefillsymbol.color = enumcolors.next() 'Add symbol to renderer ' m_classbreaksrenderer.symbol(i) = simplefillsymbol 16

m_classbreaksrenderer.symbol(i) = simplefillsymbol currentbreak += interval addcontrol(simplefillsymbol, i, m_classbreaksrenderer.label(i)) Next i 'Form1.AxMapControl1.ActiveView.Refresh() Else For i = 0 To m_classbreaksrenderer.breakcount - 1 'Set class break m_classbreaksrenderer.break(i) = currentbreak 'Create simple fill symbol and set color simpleline = New SimpleLineSymbol simpleline.color = enumcolors.next() simpleline.style = esrisimplelinestyle.esrislssolid simpleline.width = 5 'Add symbol to renderer ' m_classbreaksrenderer.symbol(i) = simplefillsymbol m_classbreaksrenderer.symbol(i) = simpleline currentbreak += interval addcontrol(simpleline, i, m_classbreaksrenderer.label(i)) Next i End If If pgeolayer Is Nothing Then Exit Sub ''Set the new renderer pgeolayer.renderer = m_classbreaksrenderer Form1.AxMapControl1.ActiveView.ContentsChanged() ''Refresh the display Form1.AxMapControl1.Refresh(esriViewDrawPhase.esriViewGeography, pgeolayer, Nothing) ''Hide the form Me.Hide() End Sub 17

La troisième partie est un petit peu où on a trouvé des problèmes car on doit faire une cartographie quantitatif par un symbole gradué et on a trois types de couche différentes comme on a déjà présenté : on a des couches sous formats : point, ligne et polygone, mais heureusement on a pu arriver enfin à réaliser notre but et on a comme une première interface : Et sur la Map on a : 18

Pour une couche sous format line on choisit le nombre de classe, la taille ; et le nouveau symbole : On clique sur OK on obtient : 19

On valide notre choix par : Sur la Map on avait le résultat suivant : 20

Pour la couche région on a suivis les mêmes démarches et on avait comme résultat : 21

Le code le plus intéressant dans cette deuxième partie se résume dans les deux fonctions qu on a ajoutées dans le module : «symbol_gradué_point» et «symbol_gradué_line», ont les a appelés dans Le bouton valider de la forme «frm_symbol» par la syntaxe suivante : Private Sub Button1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Select Case Rechercher_Layer_byname_in_carte(Form2.cmb1.Text).FeatureClass.ShapeType Case esrigeometrytype.esrigeometrypoint symbol_gradué_point(combobox2.text, Rechercher_Layer_byname_in_carte(Form2.cmb1.Text), ComboBox1.Text, ComboBox3.Text, ComboBox4.Text) Case esrigeometrytype.esrigeometrypolyline symbol_gradué_line(combobox2.text, Rechercher_Layer_byname_in_carte(Form2.cmb1.Text), ComboBox1.Text, ComboBox3.Text, ComboBox4.Text) Case esrigeometrytype.esrigeometrypolygon symbol_gradué_point(combobox2.text, Rechercher_Layer_byname_in_carte(Form2.cmb1.Text), ComboBox1.Text, ComboBox3.Text, ComboBox4.Text) End Select decl = False End Sub Aussi le code de l affichage dans la DataGrid n était pas facile à réaliser on a utilisé deux autre fonctions dans le module : Private Function PreviewImage() As Image 'Get and set the style class Dim symbologystyleclass As ISymbologyStyleClass symbologystyleclass = frmsymbol.axsymbologycontrol1.getstyleclass(frmsymbol.axsymbologycontrol1.s tyleclass) 'Preview an image of the symbol Dim picture As stdole.ipicturedisp picture = symbologystyleclass.previewitem(galleryitem, 70, 30) Return System.Drawing.Image.FromHbitmap(New System.IntPtr(picture.Handle)) End Function Private Function PreviewImageline() As Image Dim image As System.Drawing.Image 'Get and set the style class Dim symbologystyleclass As ISymbologyStyleClass symbologystyleclass = frmsymbol.axsymbologycontrol1.getstyleclass(esrisymbologystyleclass.esristy leclasslinesymbols) 'Preview an image of the symbol 22

Dim picture As stdole.ipicturedisp picture = symbologystyleclass.previewitem(galleryitem, 70, 30) image = System.Drawing.Image.FromHbitmap(New System.IntPtr(picture.Handle)) Return image End Function et pour les relier à l affichage sur la DataGrid on les a appeler dans deux autre fonctions qui sont : Public Sub addcontrol2(byval jsy As ISymbol, ByVal i As Integer, ByVal str As String) Form2.DataGridView1.Rows.Add() Form2.DataGridView1.Rows(i).Cells(0).Value = PreviewImage() Form2.DataGridView1.Rows(i).Cells(1).Value = str Form2.DataGridView1.Rows(i).Cells(2).Value = str End Sub Public Sub addcontrol3(byval jsy As ISymbol, ByVal i As Integer, ByVal str As String) Form2.DataGridView1.Rows.Add() Form2.DataGridView1.Rows(i).Cells(0).Value = PreviewImageline() Form2.DataGridView1.Rows(i).Cells(1).Value = str Form2.DataGridView1.Rows(i).Cells(2).Value = str End Sub Conclusion A la fin de ce Mini-Projet et on guide de conclusion il parait crucial à nos yeux que l ArcGIS Engine permet d élaborer une vaste gamme d applications SIG, et d incorporer le SIG dans une application quelconque. Certains départements SIG souhaitent mettre au point des visionneuses SIG spécialisées avec des outils adaptés à leurs utilisateurs. Par exemple, un service administratif municipal peut avoir besoin d une série d applications de rapports fonciers spécialisés, basés sur des informations de la base de données SIG, qui les intègrent à des commandes de 23

travaux auprès d entreprises à des fins d autorisations, d imposition, de revues de planification, etc. Application foncière municipale avec ArcGIS Engine 24