Suite

WMTS : Convertir la géolocalisation (lat, long) en index de tuiles, à un niveau de zoom donné ?

WMTS : Convertir la géolocalisation (lat, long) en index de tuiles, à un niveau de zoom donné ?


Je voulais savoir comment obtenir les indices (x,y) d'une tuile WMTS pour une géolocalisation donnée (latitude, longitude) et un niveau de zoom.

Par exemple, j'ai un POI situé à (48.675, 2.7), je veux obtenir la tuile open-street-map correspondante pour le zoom 10.

Puis-je faire le calcul ? Ai-je besoin d'un webservice ? Précision : je dois le faire par programmation.


La page wiki OSM est parfaite : http://wiki.openstreetmap.org/wiki/Slippy_map_tilenames#Lon… 2Flat._to_tile_numbers_2

Voici la réponse extraite (en pseudo code) pour une référence rapide.

Étant donné la longitude/latitude/zoomer sur les numéros de tuile :

n = 2 ^ zoom xtile = n * ((lon_deg + 180) / 360) ytile = n * (1 - (log(tan(lat_rad) + sec(lat_rad)) / π)) / 2

Noter queJournal()dans ce pseudo-code fait référence au log naturel (souvent "ln()" dans la syntaxe mathématique courante, mais souvent "log()" dans de nombreux langages de programmation).

Numéros de tuile donnés à la longitude/latitude :

n = 2 ^ zoom lon_deg = xtile / n * 360.0 - 180.0 lat_rad = arctan(sinh(π * (1 - 2 * ytile / n))) lat_deg = lat_rad * 180.0 / π

MISE À JOUR : Firestore ne prend pas en charge les requêtes GeoPoint réelles pour le moment. Par conséquent, bien que la requête ci-dessous s'exécute avec succès, elle ne filtre que par latitude, pas par longitude et renverra donc de nombreux résultats qui ne sont pas à proximité. La meilleure solution serait d'utiliser des géohachages. Pour apprendre à faire quelque chose de similaire vous-même, regardez cette vidéo.

Cela peut être fait en créant une zone de délimitation inférieure à supérieure à la requête. Quant à l'efficacité, je ne peux pas en parler.

Notez que la précision du décalage lat/long pour

1 mile devrait être examiné, mais voici un moyen rapide de le faire :

Version SWIFT 3.0

MISE À JOUR : Firestore ne prend pas en charge les requêtes GeoPoint réelles pour le moment. Ainsi, bien que la requête ci-dessous s'exécute avec succès, elle ne filtre que par latitude, pas par longitude et renverra donc de nombreux résultats qui ne sont pas à proximité. La meilleure solution serait d'utiliser des géohachages. Pour apprendre à faire quelque chose de similaire vous-même, regardez cette vidéo.

(Permettez-moi d'abord de m'excuser pour tout le code de cet article, je voulais juste que tous ceux qui liraient cette réponse puissent facilement reproduire la fonctionnalité.)

Pour répondre au même problème que le PO, j'ai d'abord adapté la bibliothèque GeoFire pour qu'elle fonctionne avec Firestore (vous pouvez en apprendre beaucoup sur les éléments géographiques en consultant cette bibliothèque). Ensuite, j'ai réalisé que cela ne me dérangeait pas vraiment si les emplacements étaient retournés dans un cercle exact. Je voulais juste un moyen d'obtenir des emplacements « à proximité ».

Je ne peux pas croire combien de temps il m'a fallu pour réaliser cela, mais vous pouvez simplement effectuer une double requête d'inégalité sur un champ GeoPoint en utilisant un coin SW et un coin NE pour obtenir des emplacements dans une boîte englobante autour d'un point central.

J'ai donc créé une fonction JavaScript comme celle ci-dessous (il s'agit essentiellement d'une version JS de la réponse de Ryan Lee).

La fonction ci-dessus ajoute également une propriété .distanceFromCenter à chaque donnée de localisation renvoyée afin que vous puissiez obtenir le comportement de type cercle en vérifiant simplement si cette distance se situe dans la plage souhaitée.

J'utilise deux fonctions util dans la fonction ci-dessus, voici donc le code pour celles-ci également. (Toutes les fonctions util ci-dessous sont en fait adaptées de la bibliothèque GeoFire.)

boundingBoxCoordinates() : (Il y a aussi d'autres utilitaires utilisés ici que j'ai collés ci-dessous.)


Échantillons WPF

### Description Cet exemple de démarrage rapide vous guidera tout au long du processus de création d'un exemple d'application et vous aidera à vous familiariser avec la création de cartes avec l'interface utilisateur ThinkGeo. Cet exemple de projet prend en charge ThinkGeo UI 12.0.0.0 et versions ultérieures et vous montrera comment créer une application WPF à l'aide de ThinkGeo UI Desktop pour le contrôle WPF.

Vidéo de démarrage rapide : - [Démarrage rapide ThinkGeo UI WPF dans le code VS - Partie 1 - Carte de base] (https://youtu.be/1PkOsPyXeUM) - [Démarrage rapide ThinkGeo UI WPF dans le code VS - Partie 2 - Ajout d'un fichier ShapeFile] ( https://youtu.be/7U31kP1E_fs)

### À propos du code ```cSharp ShapeFileFeatureLayer capitalLabelLayer = new ShapeFileFeatureLayer(@“../../Data/WorldCapitals.shp”) GeoFont font = new GeoFont(“Arial”, 9, DrawingFontStyles.Bold) GeoSolidBrush txtBrush = new GeoSolidBrush(GeoColor.StandardColors.Maroon) TextStyle textStyle = new TextStyle(« CITY_NAME », font, txtBrush) textStyle.XOffsetInPixel = 0 textStyle.YOffsetInPixel = -6 capitalLabelLayer.ZoomLevelSet.ZoomLevelTexte01.DefaultITYText_Style = 0 textStyle.YOffsetInPixel = -6 capitalLabelLayer.ZoomLevelSet.ZoomLevelText01.DefaultITYText_Style = "Arial", 8, DrawingFontStyles.Italic, GeoColor.StandardColors.Black, 3, 3) capitalLabelLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level05

capitalLabelLayer.ZoomLevelSet.ZoomLevel06.DefaultTextStyle = textStyle ``` ### Obtenir de l'aide

### À propos de ThinkGeo ThinkGeo est une société SIG (Systèmes d'Information Géographique) fondée en 2004 et située à Frisco, TX. Nos clients appartiennent à plus de 40 secteurs, notamment l'agriculture, l'énergie, les transports, le gouvernement, l'ingénierie, le développement de logiciels et la défense.

Exemple de démarrage rapide pour Wpf

Le Guide de démarrage rapide de Map Suite WPF vous guidera tout au long du processus de création d'un exemple d'application et vous aidera à vous familiariser avec Map Suite. Ce guide de démarrage rapide prend en charge Map Suite 10.0.0.0 et versions ultérieures et vous montrera comment créer une application WPF à l'aide des composants Map Suite WPF.

Exemple de visionneuse de cartes marines pour Wpf

ThinkGeo Nautical Charts est un package Nuget autonome qui fonctionne avec les produits ThinkGeo 10.X Desktop/Web. Il lit et affiche les cartes électroniques de navigation S-57 (ENC) de l'Organisation hydrographique internationale (OHI), il lit également les informations de style définies dans un fichier S-52.

Cet exemple est écrit pour WPF, mais le package de cartes marines fonctionne également pour le projet Web. Téléchargez et ouvrez-le dans Visual Studio, appuyez sur F5 et Bang, vous êtes prêt à partir. Après avoir lancé la visionneuse de cartes, utilisez Fichier → Ouvrir pour charger une donnée S-57 (elle peut être téléchargée sur le site Web de la NOAA), les cartes marines apparaîtront alors sur la carte (elle génère un fichier d'index la première fois que les données est chargé).

ThinkGeo utilise un style par défaut qui peut être facilement modifié. La visionneuse de cartes marines offre la possibilité de basculer la carte entre 5 modes : jour lumineux, jour noir, jour blanc, crépuscule et nuit. Il dispose de 3 modes verbeux de « All », « Standard » et « Base ». Il peut changer les limites entre la ligne pointillée et les triangles, il peut afficher/masquer différents libellés, afficher différentes langues, etc. Si vous êtes un développeur, creusez dans le code et vous verrez que c'est aussi simple que de créer un calque et de configurer les propriétés comme suit, et il peut faire plus que ce qu'il montre dans cet exemple

Exemple de suivi de véhicule pour Wpf

L'exemple de modèle de suivi des véhicules vous donne une longueur d'avance sur votre prochain projet de suivi. Avec un exemple de code fonctionnel à partir duquel vous pouvez vous inspirer, vous pouvez passer plus de temps à mettre en œuvre les fonctionnalités qui vous intéressent et moins de temps à réfléchir à la manière d'accomplir les fonctionnalités de base d'un système de suivi.

Afficher l'échantillon de lignes iso pour Wpf

Dans cet exemple, nous montrons comment vous pouvez utiliser Map Suite pour ajouter des isolignes (communément appelées courbes de niveau) à votre application .NET. Les isolignes sont un moyen de visualiser les ruptures entre différents groupes de données telles que les niveaux d'altitude, les propriétés du sol ou à peu près tout ce que vous pouvez imaginer. Cet exemple montre également les différentes étapes de la création d'isolignes, y compris la collecte de données ponctuelles, la création d'une grille à l'aide d'une interpolation et enfin, la sélection de vos niveaux de rupture d'isoligne. Nous nous sommes également penchés rapidement sur des options plus avancées telles que la génération d'isolignes à la volée.

Pour rassembler tout cela, consultez notre [vidéo d'instructions](https://www.youtube.com/watch?v=eejtCTftpzo) qui vous guidera tout au long du processus de configuration et d'utilisation des isolignes dans Map Suite.

Veuillez noter que vous aurez besoin de la version 5.0.87.0 ou plus récente de Map Suite pour utiliser les isolignes. Pour plus d'informations sur la mise à niveau, consultez le [Guide des versions quotidiennes de Map Suite] (http://wiki.thinkgeo.com/wiki/map_suite_daily_builds_guide).

À partir de la version 6.0.187.0, l'échantillon a été mis à jour pour que les polygones puissent également être renvoyés en tant que résultats IsoLines. Vous avez besoin de la version 6.0.187.0 ou plus récente de Map Suite pour utiliser cet exemple.

Découvrez comment utiliser les superpositions pour créer votre carte ou ajouter des fonds de carte existants à votre application. L'exemple peut afficher les quatre fonds de carte suivants :

Il peut afficher différents styles de cartes en définissant le type de carte. Remarque : vous devez disposer de la clé API Bing Maps et de la clé API Google Maps pour pouvoir utiliser ces deux fonds de carte.

Éditeur SIG Map Suite

Map Suite GIS Editor pour Windows vous permet de concevoir des cartes époustouflantes, d'effectuer des géo-analyses et de visualiser vos données. Assez puissant pour les techniciens SIG professionnels mais suffisamment accessible pour presque tous ceux qui ont besoin de créer une carte. L'éditeur SIG est conçu comme une solution à application unique pour tous vos besoins de visualisation SIG. Il est désormais open source et gratuit. Vous pouvez utiliser Map Suite GIS Editor pour : - Créer rapidement des cartes à l'aide d'outils simples et intuitifs - Visualiser les données, les statistiques et les tendances géographiquement - Concevoir, styliser et étiqueter des cartes riches et détaillées - Intégrer des données provenant de diverses sources, y compris les services de cartes Web - Dessinez directement sur la carte, modifiez et créez des données d'entités - Préparez vos cartes pour la publication avec des titres, des légendes et des annotations Vous pouvez faire tout cela sans parcourir des piles de barres d'outils cryptiques ou parcourir des menus imbriqués. L'interface de barre de ruban simple de l'éditeur SIG met à votre disposition toute sa gamme d'outils SIG d'une manière facile à comprendre. Les assistants simplifient les opérations de géotraitement, de géocodage et de re-projection par lots. Et avec le référentiel de données intégré, vous pouvez garder toutes vos données à portée de main, quel que soit l'endroit où elles se trouvent.

Vous recherchez un éditeur SIG personnalisé ou des plug-ins personnalisés ? Veuillez contacter [email protected] pour plus de détails.

Le « Comment puis-je ? » la collection d'échantillons est un ensemble complet contenant des dizaines d'échantillons interactifs. Disponibles en C#, ces exemples sont conçus pour atteindre tous les points forts de Map Suite, de la simple ajout d'une couche à une carte à l'exécution de requêtes spatiales et à l'application d'un style thématique. Considérez cette collection comme votre « encyclopédie » de toutes les bases de Map Suite et un excellent point de départ pour les nouveaux utilisateurs.

### À propos de ThinkGeo ThinkGeo est une société SIG (Systèmes d'Information Géographique) fondée en 2004 et située à Frisco, TX. Nos clients appartiennent à plus de 40 secteurs, notamment l'agriculture, l'énergie, les transports, le gouvernement, l'ingénierie, le développement de logiciels et la défense.

Exemple de style d'image pour Wpf

Exemple de carte tactile pour Wpf

Map Suite WPF Edition prend en charge les événements tactiles. Cet exemple montre comment ajouter un marqueur à mapper par événement MapTap.

Aperçu avant impression pour Wpf

Dans cet exemple, nous vous montrons comment ajouter une prise en charge d'impression robuste à vos applications Map Suite pour les environnements de bureau, WPF, Web ou de services. À l'aide du code de cet exemple, vous pourrez créer une interface d'aperçu avant impression qui permet à vos utilisateurs d'organiser de manière interactive des éléments (tels qu'une carte, une ligne d'échelle, des étiquettes, une grille de données ou une image) sur une page virtuelle avant d'imprimer le résultat sur une imprimante, l'exportation vers un PDF ou vers une image bitmap. Les cartes sont imprimées à l'aide de graphiques vectoriels, vous pouvez donc être sûr que la sortie aura fière allure sur n'importe quoi, d'un PDF à un grand traceur. Le système d'impression comprend également des classes de création de rapports de bas niveau qui facilitent la génération de rapports dans l'environnement Web ou de services.

Pour vous aider à comprendre l'exemple, ainsi que le nouveau système d'impression de Map Suite sur lequel il est basé, consultez notre [vidéo d'instructions] (http://download.thinkgeo.com/Videos/Wiki/MapSuitePrintingSystemIntroduction.wmv) qui vous présentera tous ces concepts et vous guidera à travers l'exemple de solution.

Veuillez noter que vous aurez besoin de la version 5.0.102.0 ou plus récente de Map Suite pour utiliser les nouvelles fonctionnalités d'impression. Pour plus d'informations sur la mise à niveau, consultez le [Guide des versions quotidiennes de Map Suite] (http://wiki.thinkgeo.com/wiki/map_suite_daily_builds_guide).

Remarque : les utilisateurs de Map Suite Web, Silverlight et Services Editions n'auront pas accès à l'interface interactive de mise en page par glisser-déposer illustrée ici. Cependant, ces éditions peuvent toujours être utilisées pour concevoir par programmation des mises en page dans le code, puis les exporter vers une imprimante.

Création d'un exemple de couche 3D pour Wpf

Ce projet montre comment créer des bâtiments 3D simulés sur le contrôle de carte WPF et OsmBuildingOnlineServiceFeatureLayer.

Exemple d'explorateur de données de routage pour Wpf

Il s'agit d'un exemple de visionneuse de données de routage simple qui montre comment utiliser RoutingEngine pour obtenir l'itinéraire le plus court ou le plus rapide dans vos applications SIG Map Suite.

1. Charger les données rtg : Cliquez sur le menu "Fichier→Charger” accédez à un fichier rtg. Vous avez également besoin d'un fichier de formes pour le fichier source de routage dans le même dossier, sinon il affichera le message "Impossible de trouver le fichier shp dans le même dossier où vous avez sélectionné". 2. Démarrer le routage :

Ce RoutingEngine prend en charge le routage dans tous les contrôles Map Suite tels que WinForms, Web, MVC et WebApi.

Exemple de carte ThinkGeo Cloud pour Wpf

Cet exemple montre comment afficher les cartes ThinkGeo Cloud dans vos applications SIG Map Suite. Il vous montrera comment utiliser XYZFileBitmapTileCache pour améliorer les performances du rendu des cartes. ThinkGeoCloudMapsOverlay utilise le ThinkGeo Cloud XYZ Tile Server comme serveur de tuiles de carte raster. Il prend en charge 5 styles de carte différents : - Clair - Sombre - Aérien - Hybride - TransparentBackground

La prise en charge de ThinkGeo Cloud Maps fonctionnerait dans tous les contrôles Map Suite tels que Wpf, Web, MVC, WebApi, Android et iOS.

Afficher un exemple de fichier CAO pour WinForms

Cet exemple montre comment vous pouvez lire les données d'un fichier CAO (*.dwg, *.dxf) dans vos applications SIG Map Suite, et comment les rendre avec un style intégré CAO ainsi qu'un style personnalisé. Ce support de fichier Cad fonctionnerait dans tous les contrôles Map Suite tels que Wpf, Web, MVC et WebApi.

Zoom sur l'échantillon Wpf complet pour Wpf

Il s'agit d'un projet simple qui montre comment définir l'étendue actuelle en fonction d'un ensemble de couches. Vous pouvez utiliser cette technique pour la tâche courante consistant à définir la carte dans son intégralité. Au lieu d'avoir à définir manuellement l'étendue complète, vous pouvez transmettre toutes les couches sur lesquelles vous souhaitez que l'étendue complète soit basée.

Placer un échantillon de géocodage inversé du monde de recherche pour Wpf

Dans cet exemple, nous montrons comment vous pouvez utiliser Map Suite [World Reverse Geocoding SDK](https://thinkgeo.com/gisserver#feature) pour transformer un emplacement géographique en adresses significatives. Il est livré avec un ensemble optimisé de couverture mondiale des villes et villages, mais toutes les données personnalisées peuvent également être prises en charge.

==== ### Quelles zones le World Reverse Geocoding couvre-t-il ?

Échantillons de construction-ForWpf

Dans ce projet WPF, nous montrons comment utiliser `BuildingOverlay`, `BuildingStyle` et `OsmBuildingOnlineServiceFeatureLayer`.

Ce référentiel contient trois projets. - BuildingOverlay représente une superposition spécifique à WPF qui simule le rendu du bâtiment 2.5D. - BuildingStyle représente un style de construction compatible avec les autres produits tels que WPF, WinForms et Web. - OsmBuildingOnlineServiceFeatureLayer représente la source de données en ligne de la couche d'entités.

Exemple de performance-ForWpf

Il s'agit d'un exemple de bureau WPF pour le test des performances de dessin du produit MapSuite. Lors de l'exécution de l'échantillon, 16 000 éléments de forme rectangulaire seront rendus au début, ces éléments seront répartis en 4 couches en moyenne. Après avoir cliqué sur le bouton Démarrer, l'exemple d'application mettra à jour le nombre de 1600 entités de forme rectangulaire par 1000 millisecondes, le coût du temps de dessin des entités s'affichera dans le pied de page de l'application. Le client peut modifier le taux de mise à jour, mettre à jour le nombre de fonctionnalités et activer ou désactiver les couches. ==== ### Points clés - La forme rectangulaire est ajoutée à un InMemoryFeatureLayer, le calque utilise un ValueStyle pour dessiner la forme. Le ValueStyle a 4 comptes de ValueItems dont l'ID d'élément est compris entre 0 et 3 et l'élément AreaStyle utilise 4 couleurs de remplissage différentes. La forme a également une valeur de colonne de 0 à la première fois, le ValueStyle utilisera cette valeur pour dessiner la forme à l'aide du AreaStyle correspondant.

- Dans chaque mise à jour, l'application choisira au hasard 1 600 caractéristiques parmi toutes les caractéristiques valides pour modifier leurs valeurs de colonne. La valeur de la colonne sera modifiée en 0, 1, 2 ou 3 de manière circulaire.

- Le CustomLayerOverlay sera utilisé dans la mise à jour, l'application créera un nouveau InMemoryFeatureLayer et l'ajoutera à cette superposition lors de la mise à jour, tous les 1 600 éléments déterminés seront ajoutés à la couche. La superposition précédente sera supprimée si elle existe dans la carte, puis une nouvelle superposition sera ajoutée à la carte. Avant de supprimer la superposition précédente, toutes les ressources (y compris toutes les tuiles de calque et les images d'arrière-plan) de la superposition seront dessinées sur une GeoImage, puis définiront la GeoImage sur l'image d'arrière-plan de la nouvelle superposition. Nous faisons cela pour nous assurer que seulement 1 600 éléments seraient affichés à chaque mise à jour et que les éléments mis à jour précédemment s'afficheraient correctement sur la carte.

- Le client peut cocher ou décocher les couches dans la liste de droite du formulaire de candidature, l'application ne choisira que les entités qui se trouvent dans les couches cochées lors de la mise à jour, et les couches non cochées seront masquées dans la carte.

Exemple de style de filtre pour Wpf

Ce projet explique comment appliquer le FilterStyle à l'affichage d'un calque. En utilisant ce style, la carte filtrera les entités interrogées à partir du fichier source en vérifiant si une valeur de colonne spécifiée correspond à la condition d'entrée. Cet effet peut être appliqué à tous les produits Map Suite.

Retarder l'échantillon de dessin pour Wpf

Ce projet WPF montre comment utiliser la fonctionnalité Retarder le dessin de carte pour contrôler si la couche est redessinée ou non après un délai spécifié. Cette option est très utile pour quiconque souhaite faire quelque chose avant d'actualiser réellement la carte - comme éditer les éléments, ajouter une animation, etc.

Voir cet exemple sur Github # Exemple de style d'annotation pour Wpf

Dans ce projet, vous verrez comment utiliser AnnotationStyle pour afficher et modifier une entité en fonction de la valeur d'une propriété spécifique dans sa source de données.

Protected override void DrawCore (fonctionnalités IEnumerable<Feature>, canevas GeoCanvas, Collection<SimpleCandidate> labelsInThisLayer, Collection<SimpleCandidate> labelsInAllLayers) <

### À propos de ThinkGeo ThinkGeo est une société SIG (Systèmes d'Information Géographique) fondée en 2004 et située à Frisco, TX. Nos clients appartiennent à plus de 40 secteurs, notamment l'agriculture, l'énergie, les transports, le gouvernement, l'ingénierie, le développement de logiciels et la défense.

Hello World Sample pour Wpf

Cet exemple vous montre comment commencer à créer votre première application avec Map Suite Desktop pour Wpf 10.0.0.

Exemple de démo Usgs pour Wpf

Cet exemple montre comment vous pouvez lire les données d'un fichier DEM dans vos applications SIG Map Suite et comment les rendre avec le style de valeur intégrée DEM ainsi qu'un style personnalisé. Cette prise en charge du fichier DEM fonctionnerait dans tous les contrôles Map Suite tels que Wpf, Web, Android et iOS.

Exemple d'événements tactiles pour Wpf

Cet exemple montre comment tirer parti de l'écran tactile pour manipuler cette carte avec les doigts. Découvrez comment la carte peut être déplacée, zoomée, dézoomée ou pivotée à l'aide de deux doigts. De plus, des marqueurs peuvent être ajoutés et des formes peuvent être ajoutées et modifiées en appuyant sur l'écran.

L'exemple de code rend cette implémentation simple.

Exemple de couche Wmts pour Wpf

Ce projet montre comment consommer les données d'un serveur WMTS à l'aide de WmtsLayer. Vous trouverez le code assez simple, tout comme l'affichage d'un fichier de formes, tandis qu'en coulisses, nous demandons des tuiles au serveur de manière asynchrone et efficace, et les cousons dans une carte appropriée.

Voir cet exemple sur Github # Reproject Wmts Sample for Wpf

### Description Dans le projet d'aujourd'hui, nous montrons comment créer votre propre classe de projection qui permet de projeter une couche WMTS à partir de n'importe quelle projection interne vers n'importe quelle projection externe.

### À propos du code ```cSharp wmtsLayer = new WmtsLayer() wmtsLayer.WmtsSeverEncodingType = ThinkGeo.MapSuite.Layers.WmtsSeverEncodingType.Kvp wmtsLayer.ServerUris.Add(new Uri(“https://basearc.nationalmap /rest/services/USGSImageryOnly/MapServer/WMTS")) wmtsLayer.ActiveLayerName = "USGSImageryOnly" wmtsLayer.ActiveStyleName = "default" wmtsLayer.TileMatrixSetName = "GoogleMapsCompatible" wmtsLayer.OutputFormat" = "Projection4imagepng/new 3857, 4326) wmtsLayer.ProjectedTileCache = new FileBitmapTileCache ("WmtsProjectedTileCache", "USGSImageryOnly-4326") wmtsLayer.TileCache = new FileBitmapTileCache ("WmtsTileCache", "USGSImagery GettingOnly-3857")

### À propos de ThinkGeo ThinkGeo est une société SIG (Systèmes d'Information Géographique) fondée en 2004 et située à Frisco, TX. Nos clients appartiennent à plus de 40 secteurs, notamment l'agriculture, l'énergie, les transports, le gouvernement, l'ingénierie, le développement de logiciels et la défense.

Échantillon de statistiques de tremblement de terre pour Wpf

L'exemple de modèle Earthquake Statistics est un système de rapport statistique pour les tremblements de terre qui se sont produits au cours des dernières années aux États-Unis. Il peut vous aider à générer des infographies et à analyser les zones gravement touchées, ou utilisé comme preuve à l'appui lors de la recommandation de mesures pour minimiser les dommages lors de futurs séismes.

Afficher un exemple de légende pour Wpf

Dans le projet d'aujourd'hui, nous apprenons à afficher une légende simple à l'aide du nouveau LegendAdornmentLayer amélioré. Le LegendAdornmentLayer amélioré a été ajouté à Map Suite 5.0 et fournit une API facile à utiliser pour créer des ornements de légende. Le LegendAdornmentLayer fait partie de Map Suite Core qui vous permet d'accéder à cette puissante fonctionnalité sur tous les produits Map Suite.

Exemple de rotation d'événements pour Wpf

Cet exemple montre comment profiter d'un écran tactile, pour jouer avec la carte avec les doigts. Vous verrez que nous pouvons déplacer la carte avec un doigt, zoomer/dézoomer ou faire pivoter une carte avec 2 doigts. De plus, nous pouvons ajouter un marqueur et suivre/modifier une forme (point, ligne ou polygones) en appuyant sur l'écran. Et le marqueur/popup/label ne tournera pas avec la carte. Il est simple à utiliser et en vérifiant le code, vous verrez qu'il est très simple à mettre en œuvre avec Map Suite ! Il est disponible dans la version 8.0.48.0 ou ultérieure.

Exemple d'extracteur MBtiles pour WPF

L'extracteur MBTiles vous permet de créer de nouveaux sous-ensembles plus petits à partir de la base de données MBTiles. Vous spécifiez simplement la zone de délimitation en suivant une forme de rectangle sur la carte pour la nouvelle zone, puis cela créera une nouvelle base de données SQLite pour ces régions.

* Le format .MBTile peut être pris en charge dans tous les contrôles Map Suite tels que Wpf, Web, MVC, WebApi, Android et iOS.

Afficher un exemple de légende pour Wpf

Dans le projet d'aujourd'hui, nous apprenons à afficher une légende simple à l'aide du nouveau LegendAdornmentLayer amélioré. Le LegendAdornmentLayer amélioré a été ajouté à Map Suite 5.0 et fournit une API facile à utiliser pour créer des ornements de légende. Le LegendAdornmentLayer fait partie de Map Suite Core qui vous permet d'accéder à cette puissante fonctionnalité sur tous les produits Map Suite.

Exemple d'étiquettes déplaçables pour Wpf

Dans ce projet WPF, vous apprendrez à placer des étiquettes d'un fichier de formes dans un SimpleMarqueurSuperposition. En utilisant le DragMode propriété de la SimpleMarqueurSuperposition, l'utilisateur peut ensuite faire glisser les étiquettes pour les placer à l'emplacement souhaité pour l'effet d'étiquetage le plus agréable. Ce projet sera complété plus tard pour montrer comment enregistrer l'état des étiquettes glissées depuis le SimpleMarqueurSuperposition et les recharger.

Échantillon de remplacement de couleur pour Wpf

Dans le projet WPF d'aujourd'hui, nous vous montrons comment remplacer une couleur spécifique dans une image raster, avec l'avantage du nouveau mappage des couleurs API ajouté. Pour l'exemple, dans ce projet, le lac en vert peut être remplacé par du bleu.

Exemple de sélection de site pour Wpf

L'exemple de modèle de sélection de site vous permet d'afficher, de comprendre, d'interpréter et de visualiser des données spatiales de plusieurs manières qui révèlent des relations, des modèles et des tendances. Dans l'exemple illustré, l'utilisateur peut appliquer les fonctionnalités du SIG pour analyser les données spatiales afin de choisir efficacement un site approprié pour un nouveau point de vente.

Exemple de mini-carte pour Wpf

Ce projet montre comment créer une simple mini-carte pour donner une référence de l'endroit où vous vous trouvez lorsque vous avez zoomé. Quant à la MiniMapAdormentLayer hérite de AdornmentLayer.

Échantillon de déclinaison magnétique pour Wpf

Dans le projet WPF d'aujourd'hui, nous vous montrons comment ajouter la déclinaison magnétique ou la variation magnétique à la carte, elle est conçue comme un AdormentCouche, qui est utilisé pour montrer l'angle sur le plan horizontal entre le nord magnétique (la direction dans laquelle l'extrémité nord d'une aiguille de boussole, correspondant à la direction des lignes de champ magnétique de la Terre) et le nord géographique (la direction le long d'un méridien vers le pôle Nord géographique). Cet angle varie en fonction de la position de chacun à la surface de la Terre et au cours du temps. Voir

Construire un exemple 3D pour Wpf

Ce projet montre comment créer des bâtiments 3D simulés sur le contrôle de carte WPF et Shapefile.

Exemple de réseau d'amis pour Wpf

Dans ce projet WPF, nous montrons comment créer un réseau d'amis en utilisant un point avec un symbole de cercle. C'est une combinaison de PointStyle et TextStyle, y compris une description avec un masque qui maintient les étiquettes dans le même calque. Il était à l'origine requis par un client sur [http://community.thinkgeo.com/t/label-on-a-circle-with-lot-of-points/8193/6](http://community.thinkgeo. com/t/label-on-a-circle-with-lot-of-points/8193/6), c'est une solution avec de nombreuses applications.

Combiner l'échantillon de superposition pour Wpf

Dans le projet Wpf d'aujourd'hui, nous montrons une technique consistant à utiliser une FeatureSource commune pour deux superpositions différentes. À partir d'un fichier de formes physique représentant des villes, un LayerOverlay standard est utilisé pour les niveaux de zoom supérieurs, tandis qu'un FeatureSourceMarkerOverlay est utilisé pour les niveaux de zoom inférieurs. FeatureSourceMarkerOverlay est une superposition spécifique à Wpf offrant des fonctionnalités pour une meilleure expérience utilisateur, telles que les info-bulles et ImageSource.

Exemple de carte démographique des États-Unis pour Wpf

L'exemple de modèle de démographie et de style de vie vous donne une longueur d'avance sur votre projet de statistiques, qui comprend des détails sur la race, l'âge, le sexe, l'utilisation des terres, etc. pour tous les États des États-Unis. est, ou comme base pour ajouter vos propres notes et couches de carte.

Exemple de statistiques d'altitude pour WPF

Cette Goûter montre les données d'altitude d'une route sous la forme d'une ligne [graphique][1].

- SDK d'élévation - prend en charge les données d'altitude de requête par points, ligne et polygone sur la base des données source d'altitude [SRTM][2] et Ned13. - Pour le point - Créer une zone tampon et agréger tous les points dans la zone tampon pour créer une moyenne pour l'élévation du point. - Pour la ligne - Il existe deux façons d'obtenir les données d'altitude de la ligne. Tout d'abord, obtenez les points sur la ligne en définissant la distance d'intervalle. L'autre, consiste à prendre les points en fixant le nombre de points à récupérer. Interrogez ensuite les données d'altitude du point. - Pour polygone - En définissant la distance d'intervalle, découpez le polygone sur les grilles et obtenez tout le centre des grilles où se trouve le polygone. Maintenant, déterminez si les points centraux sont à l'intérieur de la surface ou à l'intérieur de la surface (utilisez la méthode de longueur d'arc améliorée).

Échantillon UTM de référence locale pour Wpf

Le but de cet exemple WPF est de se familiariser avec le concept de datum et de décalage de datum dans les coordonnées UTM et géographiques. À l'aide de données locales, vous devrez peut-être appliquer une transformation de datum à vos données pour passer d'un datum ancien à un datum plus récent. On prend ici l'exemple de l'Australie qui est allée changer son datum (de AGD84 à GDA94) pour ses besoins de cartographie. Nous montrons comment appliquer la transformation de datum à la fois dans le système de coordonnées longitude/latitude et dans les systèmes UTM locaux (AMG basé sur AGD84 et MGA basé sur GD94).

Voir le code et noter les commentaires dans le Déplacer la souris événement où toute la logique de projection a lieu. Notez que la correction est d'environ 200 mètres. Une fois que vous aurez compris le cas de l'Australie, vous pourrez appliquer les mêmes principes pour vos propres datums en UTM.

Échantillon d'étiquetage multi-lignes pour Wpf

Exemple de couche de caractéristiques de cluster pour Wpf

L'exemple montre comment utiliser ClusterFeatureLayer pour restituer les données de colonne spécifiées sous forme de graphique à secteurs. Permet aux utilisateurs de comparer les données visuellement.

Google Map vers un échantillon géodésique pour Wpf

Dans ce projet Wpf, nous montrons une astuce pour obtenir l'étendue actuelle de la carte avec Google Map en tant qu'image et l'afficher sur une carte en degrés décimaux. Vous pouvez être dans une situation où vous souhaitez les détails et la précision de Google Map, en particulier la vue satellite, mais souhaitez l'afficher sur votre carte en degrés décimaux. Dans cet exemple, vous verrez comment obtenir l'image Google Map et créer le fichier mondial d'accompagnement pour les degrés décimaux. Notez que nous réalisons une transformation affine sur l'image pour aller en géodésique comme illustré dans le cas 3

Exemple de couche d'entités de format d'échange GPS pour Wpf

Cet exemple montre comment lire le fichier GPS EXchange Format (*.gpx) avec Map Suite. GPX (GPS Exchange Format) est un format de données XML léger pour l'échange de données GPS (waypoints, itinéraires et tracés) entre les applications et les services Web sur Internet. Vous trouverez plus d'informations ici. Map Suite prend désormais en charge les schémas GPX 1.0 et 1.1. Cet exemple fonctionne avec la version 7.0.275.0 ou ultérieure de la branche de développement de Map Suite.

Exemple de superposition de marqueurs dynamiques pour Wpf

Dans le projet WPF d'aujourd'hui, nous vous montrons comment récupérer des données à partir d'un service REST et les afficher sous forme de marqueurs avec différents styles en fonction de ses attributs. Vous pouvez cliquer sur n'importe quel marqueur pour appeler un service WCF qui renvoie les données du serveur. Une fenêtre contextuelle affiche un graphique avec des informations. Tous les marqueurs et informations associées sont mis à jour dynamiquement après un intervalle de temps spécifique.

Voir cet exemple sur Github # Exemple d'aperçu avant impression pour Wpf

### Description Dans cet exemple, nous vous montrons comment ajouter une prise en charge d'impression robuste à vos applications Map Suite pour le WPF. En utilisant le code de cet exemple, vous pourrez créer une interface d'aperçu avant impression qui permet à vos utilisateurs d'organiser de manière interactive des éléments (tels qu'une carte, une ligne d'échelle, des étiquettes, une grille de données ou une image) sur une page virtuelle avant d'imprimer le résultat sur une imprimante, exportant vers une image bitmap. Les cartes sont imprimées à l'aide de graphiques vectoriels, vous pouvez donc être sûr que la sortie aura fière allure sur n'importe quoi.

### À propos du code ```cSharp Map1.ZoomLevelSet = new PrinterZoomLevelSet(Map1.MapUnit, PrinterHelper.GetPointsPerGeographyUnit(Map1.MapUnit))

PrinterInteractiveOverlay printerOverlay = new PrinterInteractiveOverlay()

Map1.InteractiveOverlays.Add ("PrintPreviewOverlay", printerOverlay) Map1.InteractiveOverlays.MoveToBottom ("PrintPreviewOverlay")

PagePrinterLayer pagePrinterLayer = new PagePrinterLayer(PrinterPageSize.AnsiA, PrinterOrientation.Portrait) pagePrinterLayer.Open() printerOverlay.PrinterLayers.Add(“PageLayer”, pagePrinterLayer) ``` ### Obtenir de l'aide

### À propos de ThinkGeo ThinkGeo est une société SIG (Systèmes d'Information Géographique) fondée en 2004 et située à Frisco, TX. Nos clients appartiennent à plus de 40 secteurs, notamment l'agriculture, l'énergie, les transports, le gouvernement, l'ingénierie, le développement de logiciels et la défense.

Exemple de cartes ThinkGeo MBtiles pour WPF

Cet exemple montre comment vous pouvez dessiner la carte avec des tuiles vectorielles enregistrées dans *.MBTiles dans vos applications SIG Map Suite, avec n'importe quel style de [StyleJSON (Mapping Defination Grammar)](https://wiki.thinkgeo.com/wiki /thinkgeo_stylejson). Il vous montrera comment utiliser XyzFileBitmapTileCache pour améliorer les performances du rendu des cartes. Il prend en charge 3 styles de carte par défaut intégrés et plus de styles awasome à partir du fichier StyleJSON que vous avez transmis, par 'Custom': - Light - Dark - TransparentBackground - Custom

Si vous voulez le fichier *.mbtile de n'importe quelle région du monde, ou si vous avez besoin de créer un fichier *.mbtile basé sur vos propres données, telles que le fichier de forme, Oracle, MsSql et plus, veuillez contacter [email protected] .

* Le format .MBTile peut être pris en charge dans tous les contrôles Map Suite tels que Wpf, Web, MVC, WebApi, Android et iOS.

Échantillon de carte en quatre couleurs pour Wpf

Toute carte peut être colorée en utilisant quatre couleurs de manière à ce que les régions adjacentes reçoivent des couleurs différentes. L'exemple découvre comment utiliser ShapeFileFeatureLayer pour obtenir quatre fonctionnalités de couleur, puis utiliser ValueStyle pour restituer la carte à quatre couleurs.

À l'heure actuelle, la carte à quatre couleurs ne prend en charge que les polygones et ne prend pas en charge les points et les lignes.

Niveau d'élévation de l'échantillon de ligne pour Wpf

Dans cet exemple, nous montrons comment vous pouvez utiliser Map Suite [Elevation SDK](https://thinkgeo.com/gisserver#feature) pour obtenir les valeurs d'altitude d'une ligne spécifique pour votre application .NET. Il vous permet de personnaliser votre requête pour obtenir des données aussi détaillées que vous en avez besoin. Dessinez des profils d'altitude pour votre randonnée à pied ou à vélo, contrôlez la granularité de la réponse, des exemples de valeurs d'altitude à des intervalles contrôlables le long d'un itinéraire doivent être affichés.

Exemple de projection de paramètres personnalisés pour Wpf

Dans le projet Wpf d'aujourd'hui, nous en apprenons plus sur la projection et comment gérer un cas particulier où les informations de projection dans le fichier PRJ d'un fichier de formes ne se trouvent pas en tant que code EPSG ou ESRI sur le site Web de référence spatiale (www.spatial-reference. org). La stratégie dans ce cas est de construire une chaîne proj4 basée sur les paramètres trouvés dans le fichier PRJ. Notez que vous devez porter une attention particulière aux paramètres de fausses abscisse ou nord car ils sont toujours exprimés en mètres même si la projection est dans une autre unité telle que les pieds. Pour cet exemple, nous montrons comment convertir la projection locale dans Lambert Conformal Conic avec des paramètres régionaux spécifiques en géodésique (WGS84) pour correspondre au World Map Kit.

Voir cet exemple sur Github # Exemple de style de rupture de classe pour Wpf

Dans ce projet, vous verrez comment utiliser le ClassBreakStyle pour regrouper et afficher des fonctionnalités par valeurs. ClassBreakStyle est une technique utile car elle vous permet de regrouper diverses fonctionnalités par les valeurs spécifiées, puis applique un style différent aux groupes de fonctionnalités.

### À propos du code Utilisez un ClassBreakStyle pour colorer chaque état différemment en fonction de la plage dans laquelle se situe sa population. Cette valeur se trouve dans les états ShapeFile DBF dans la colonne nommée « POP1990 ».

ClassBreakStyle statesStyle = new ClassBreakStyle ("POP1990") statesStyle.ClassBreaks.Add(

) Ajoutez stateStyle à StatesLayer et appliquez le style à tous les niveaux de zoom. StatesLayer.ZoomLevelSet.ZoomLevel01.CustomStyles.Add(statesStyle) statesLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20 ``` ### Obtenir de l'aide [ThinkGeo Desktop for Wpf Wiki Resources](http://wiki.thinkgeo.com wiki/thinkgeo_desktop_for_wpf) [Description du produit ThinkGeo Desktop pour Wpf](https://thinkgeo.com/ui-controls#desktop-platforms) [Site de la communauté ThinkGeo](http://community.thinkgeo.com/) [Site Web ThinkGeo ](http://www.thinkgeo.com) ### À propos de ThinkGeo ThinkGeo est une société SIG (Systèmes d'Information Géographique) fondée en 2004 et située à Frisco, Texas. Nos clients appartiennent à plus de 40 secteurs, notamment l'agriculture, l'énergie, les transports, le gouvernement, l'ingénierie, le développement de logiciels et la défense. ==== Exemple de couche de repos Arc GIS Server pour WPF ==== Dans ce projet basé sur wpf, nous allons démontrer le nouvel ArcGISServerRestLayer publié avec Map Suite 9.0. Cette couche offre aux développeurs un outil simple et puissant pour accéder à leurs cartes qui résident sur ArcGIS Server. Cette nouvelle couche utilise [ArcGIS Server REST API ](http://resources.arcgis.com/en/help/arcgis-rest-api/). Désormais, la dernière version de Map Suite Core peut le prendre en charge. Pour exécuter ce projet, vous aurez besoin de Development Build 9.0.443.0 ou version ultérieure. Veuillez vous référer à [Wiki](http://wiki.thinkgeo.com/wiki/map_suite_desktop_for_wpf) pour les détails. Voir cet exemple sur Github ==== Exemple d'impression de carte à grande échelle pour Wpf ==== Ce projet WPF est le deuxième de notre série d'exemples sur l'impression. Veuillez vous référer à [Wiki](http://wiki.thinkgeo.com/wiki/map_suite_desktop_for_wpf) pour plus de détails. Voir cet exemple sur Github ==== Étiquetage des lignes de vol Exemple pour Wpf ==== Cet exemple montre comment décaler les lignes de vol en forme d'arc de sorte que plusieurs d'un point à un autre soient visibles, puis affiche des étiquettes contextuelles fournissant des informations sur les vols que les lignes représentent . Veuillez vous référer à [Wiki](http://wiki.thinkgeo.com/wiki/map_suite_desktop_for_wpf) pour les détails. Voir cet exemple sur Github ==== Exemple de style de valeur par défaut pour Wpf ==== Dans le projet Wpf d'aujourd'hui, nous démontrons l'extensibilité de l'API ThinkGeo en créant un style personnalisé. Héritage de ValueStyle, nous créons un style de valeur par défaut qui gère le dessin des entités qui n'ont pas de valeur définie dans le ValueStyle. Ici, nous utilisons une couche basée sur des points avec Style de point. Notez que la valeur par défaut ValueStyle fonctionnerait également avec des couches basées sur des lignes et des polygones. Veuillez vous référer à [Wiki](http://wiki.thinkgeo.com/wiki/map_suite_desktop_for_wpf) pour les détails. Voir cet exemple sur Github ==== Clipping On Line Layer Sample for Wpf ==== Ce projet Wpf complète la série de projets dédiés au géotraitement de clipping. Nous avons déjà vu comment effectuer un découpage sur une couche basée sur des polygones dans « Découpage » et sur une couche de points dans « Découpage sur une couche de points ». Ici, nous montrons comment effectuer le découpage géographique sur une couche basée sur des lignes.Comme pour la même opération sur une couche basée sur des polygones, la fonction géométrique clé est GetIntersection. On appréciera également l'opération de création d'une couche à partir de zéro car en plus de l'opération géométrique elle-même, le géotraitement consiste également à créer une couche résultat à partir des couches d'origine, la couche de découpage et la couche découpée. Veuillez vous référer à [Wiki](http://wiki.thinkgeo.com/wiki/map_suite_desktop_for_wpf) pour les détails. Voir cet exemple sur Github ==== Graticule With Google Projection Sample for Wpf ==== Dans ce projet Wpf, nous explorons plus de fonctionnalités du RéticuleOrnementCouche, qui affiche les méridiens et les parallèles à divers intervalles en fonction du niveau de zoom. Étant nativement en géodésie, RéticuleOrnementCouche peut être réglé sur n'importe quelle projection. Dans l'exemple de ce projet, vous avez le graticule affiché avec World Map Kit dans Spherical Mercator (projection Google Map). Notez également avec quelle facilité vous pouvez modifier l'apparence avec des propriétés telles que RéticuleLigneStyle et Police de texte du graticule. Veuillez vous référer à [Wiki](http://wiki.thinkgeo.com/wiki/map_suite_desktop_for_wpf) pour les détails. Voir cet exemple sur Github ==== Modifier l'attribut d'un exemple de fichier de formes pour Wpf ==== Le but de cet exemple de Wpf est de montrer comment modifier les attributs d'une caractéristique d'un fichier de formes. Cet exemple est utile pour quiconque souhaite actualiser la partie attributs de ses données en cliquant simplement sur l'entité souhaitée sur la carte et en mettant à jour ses attributs dans une zone de texte. Vous trouverez la partie édition du code dans le Touche Bas événement de la zone de texte. Veuillez vous référer à [Wiki](http://wiki.thinkgeo.com/wiki/map_suite_desktop_for_wpf) pour les détails. Voir cet exemple sur Github ==== Afficher l'exemple de données Oracle pour Wpf ==== Découvrez comment utiliser OracleFeatureLayer pour créer votre carte. Utilisez les données Oracle pour rendre la carte. Veuillez vous référer à [Wiki](http://wiki.thinkgeo.com/wiki/map_suite_desktop_for_wpf) pour les détails. Voir cet exemple sur Github ==== Exemple de recherche de route adjacente pour Wpf ==== Ce projet WPF montre comment obtenir un itinéraire entre deux routes adjacentes, même si elles ne se coupent pas dans une tolérance autorisée. Il est basé sur le module Map Suite Geometry Topology et ne nécessite pas l'extension de routage Map Suite. Veuillez vous référer à [Wiki](http://wiki.thinkgeo.com/wiki/map_suite_desktop_for_wpf) pour les détails. Voir cet exemple sur Github ==== NOAA Globel Weather Station Layer Sample for Wpf ==== Ce projet WPF, montre comment interroger et afficher les données de la station météo NOAA en temps réel directement en tant que Couche, qui vous permet d'afficher des données de stations météo mises à jour du monde entier en haut de vos cartes. Les données de la station météo proviennent de la NOAA et sont actualisées toutes les 15 minutes en arrière-plan. Comme ces classes sont héritées de la FeatureSource et Couche d'entités, de nombreuses propriétés peuvent être interrogées et peuvent être utilisées pour créer une variété de cartes ou d'analyses des modèles météorologiques actuels. Cette fonctionnalité peut être appliquée à tous les produits Map Suite. Veuillez vous référer à [Wiki](http://wiki.thinkgeo.com/wiki/map_suite_desktop_for_wpf) pour les détails. Voir cet exemple sur Github ==== Exemple de cache de tuile bitmap SQLite pour Wpf ==== Cet exemple montre comment vous pouvez mettre en cache les images de tuile dans la base de données SQLite. Veuillez vous référer à [Wiki](http://wiki.thinkgeo.com/wiki/map_suite_desktop_for_wpf) pour les détails. Voir cet exemple sur Github ==== Exemple de superposition en mosaïque Wmts pour Wpf ==== Ce projet montre comment consommer les données d'un serveur WMTS à l'aide de WmtsOverlay. Vous trouverez le code assez simple, tandis que dans les coulisses, nous demandons des tuiles au serveur de manière asynchrone et efficace, et les cousons dans une carte appropriée. Cette classe est introduite à partir de la version 6.0.187.0, outre ce WmtsOverlay, nous avons également WmtsLayer disponible. Veuillez vous référer à [Wiki](http://wiki.thinkgeo.com/wiki/map_suite_desktop_for_wpf) pour les détails. Voir cet exemple sur Github ==== Afficher un exemple de fichier GeoDatabase pour Wpf ==== Cet exemple montre comment vous pouvez lire des données à partir d'une FileGeodatabase ESRI, et vous trouverez le code aussi simple que de consommer n'importe quelle autre source de données dans Map Suite. Veuillez vous référer à [Wiki](http://wiki.thinkgeo.com/wiki/map_suite_desktop_for_wpf) pour les détails. Voir cet exemple sur Github ==== Exemple de styles de densité de points multiples pour Wpf ==== Cet exemple examine en détail le DotDensityStyle. Vous pouvez combiner différents DotDensityStyles sur une FeatureLayer en utilisant différentes colonnes. Les données démographiques sont généralement bien adaptées pour être utilisées avec ce type de style. Ici, chaque point d'une certaine couleur représente 100 000 personnes du même groupe d'âge par état. Utilisation de plusieurs DotDensityStyles, la dimension de la démographie des groupes d'âge est ajoutée à la représentation de la densité de population. Notez que le Rapport PointVersValeur est utilisé pour définir le nombre de personnes qu'un point va représenter. Par exemple, si vous voulez qu'un point représente 100 000 personnes, vous le définissez sur 0,00001 (1 / 100000). Si vous voulez que ce soit 500 000 personnes, vous le définissez sur 0,000002 (1 / 500000). Veuillez vous référer à [Wiki](http://wiki.thinkgeo.com/wiki/map_suite_desktop_for_wpf) pour les détails. Voir cet exemple sur Github ==== BackgroundMapSwitchingSample-ForWpf ==== Cet exemple vous montre comment utiliser ces quatre types de cartes différents comme arrière-plan dans Map Suite Desktop (WPF) Edition. - Cartes Cloud ThinkGeo - Ouvrir la carte des rues - Cartes Bing - Google Maps Voir cet exemple sur Github ==== Mettre en surbrillance au survol de la souris Exemple pour Wpf ==== Dans ce projet WPF, nous vous montrons comment mettre en évidence une fonctionnalité lorsque l'utilisateur passe le pointeur de la souris dessus. Cet effet peut être réalisé dans Map Suite en utilisant une minuterie et en effectuant des requêtes spatiales en fonction de l'emplacement du pointeur de la souris. Cet exemple fonctionne avec des entités basées sur des zones, mais la même chose pourrait être accomplie avec des entités basées sur des points ou des lignes simplement en utilisant différentes requêtes spatiales. Veuillez vous référer à [Wiki](http://wiki.thinkgeo.com/wiki/map_suite_desktop_for_wpf) pour les détails. Voir cet exemple sur Github # Exemple de point de cluster pour Wpf ### Description ClusterPointStyle est intégré aux styles ThinkGeo's. Dans ce projet, vous verrez comment utiliser le ClusterPointStyle pour regrouper diverses fonctionnalités en une seule. Parfois, la carte peut avoir trop de fonctionnalités qui sont empilées les unes sur les autres, ce qui rend la carte illisible à des niveaux de zoom plus élevés. Le clustering est une technique utile car il vous permet de regrouper diverses caractéristiques en un seul symbole étiqueté avec le nombre de toutes les caractéristiques. Veuillez vous référer à [Wiki](http://wiki.thinkgeo.com/wiki/thinkgeo_desktop_for_wpf) pour les détails. ![Screenshot](https://github.com/ThinkGeo/ClusterPointSample-ForWpf.NETCore/blob/master/Screenshot.gif) ### À propos du code ```cSharp ClusterPointStyle clusterPointStyle = new ClusterPointStyle() clusterPointStyle.MinimumFeaturesPerCellToCluster = 1 clusterPointStyle.DefaultTextStyle = TextStyle.CreateSimpleTextStyle(« FeatureCount », « Arail », 10, DrawingFontStyles.Regular, GeoColors.Black) ClusterPointStyle_DrawingClusteredFeature privé vide ClusterPointStyle_DrawingClusteredFeature(objet expéditeur, DrawingClusteredFeatureClusterPointStyleEventArgs e) < classBreakStyle = classBreakStyle ?? GetClassBreakStyle(“FeatureCount”) e.Styles.Add(classBreakStyle) >private ClassBreakStyle GetClassBreakStyle(string columnName) < ClassBreakStyle classBreakStyle = new ClassBreakStyle() classBreakStyle.ColumnName = columnName PointStylerush point. GeoColor.FromArgb(250, 100, 200, 100)), new GeoPen(GeoColor.FromArgb(100,120, 200, 120), 5)) classBreakStyle.ClassBreaks.Add(new ClassBreak(1, pointStyle1)) PointStyle pointStyle2 = nouveau PointStyle (PointSymbolType.Circle, 15, nouveau GeoSolidBrush(GeoColor.FromArgb(250, 222, 226, 153)), nouveau GeoPen(GeoColor.FromArgb(100 222, 226, 153), 8)) classBreakStyle.ClassBreaks.Add(nouveau ClassBreak (2, pointStyle2)) PointStyle pointStyle3 = nouveau PointStyle(PointSymbolType.Circle, 25, nouveau GeoSolidBrush(GeoColor.FromArgb(250, 255, 183, 76)), nouveau GeoPen(GeoColor.FromArgb(100,255, 183, 76), 10 )) classBreakStyle.ClassBreaks.Add(new ClassBreak(5, pointStyle3)) PointStyle pointStyle4 = new PointStyle(PointSy mbolType.Circle, 35, nouveau GeoSolidBrush(GeoColor.FromArgb(250, 243, 193, 26)), nouveau GeoPen(GeoColor.FromArgb(100,243, 193, 26), 15)) classBreakStyle.ClassBreaks.Add(nouveau ClassBreak(10 , pointStyle4)) PointStyle pointStyle5 = nouveau PointStyle(PointSymbolType.Circle, 40, nouveau GeoSolidBrush(GeoColor.FromArgb(250, 245, 7, 10)), nouveau GeoPen(GeoColor.FromArgb(100,245, 7, 10), 15)) classBreakStyle.ClassBreaks.Add(new ClassBreak(100, pointStyle5)) PointStyle pointStyle6 = new PointStyle(PointSymbolType.Circle, 50, new GeoSolidBrush(GeoColor.FromArgb(250, 245, 7, 10)), new GeoPen(GeoColor.FromArgb( 100 245, 7, 10, 20)) classBreakStyle.ClassBreaks.Add(new ClassBreak(500, pointStyle6)) return classBreakStyle >``` ### Obtenir de l'aide [ThinkGeo Desktop for Wpf Wiki Resources](http://wiki. thinkgeo.com/wiki/thinkgeo_desktop_for_wpf) [Description du produit ThinkGeo Desktop pour Wpf](https://thinkgeo.com/ui-controls#desktop-platforms) [Site de la communauté ThinkGeo](http://community.thinkgeo.com/) [Site Web ThinkGeo](http ://www.thinkgeo.com) ### À propos de ThinkGeo ThinkGeo est une société SIG (Systèmes d'Information Géographique) fondée en 2004 et située à Frisco, Texas. Nos clients appartiennent à plus de 40 secteurs, notamment l'agriculture, l'énergie, les transports, le gouvernement, l'ingénierie, le développement de logiciels et la défense. ==== Masquer l'échantillon de couche raster pour Wpf ==== Cet exemple montre comment utiliser la couche raster GeoTiff pour masquer la carte d'arrière-plan et permet aux utilisateurs de dessiner une forme de polygone afin d'afficher uniquement l'image raster qui est couverte par le polygone . La logique de rendu peut être appliquée à d'autres RasterLayers en écrasant la méthode DrawCore. Veuillez vous référer à [Wiki](http://wiki.thinkgeo.com/wiki/map_suite_desktop_for_wpf) pour les détails. Voir cet exemple sur Github # Exemple de style de ligne météo pour Wpf ### Description Dans cet exemple WPF, nous apprenons à étendre Style de ligne pour créer un style de représentation des fronts météorologiques, tels que front froid, front chaud ou front occlus pour vos cartes météorologiques. Pour obtenir ce style, un Style de ligne est utilisé pour la ligne de front elle-même. Pour symboliser le type de façade, une icône est utilisée. Notez les deux propriétés pratiques pour vous donner plus de contrôle : la propriété Spacing pour ajuster la distance en coordonnées d'écran entre chaque symbole sur la ligne et la propriété Side pour contrôler de quel côté de la ligne les symboles doivent apparaître. Bien sûr, lorsque vous effectuez un zoom avant et arrière sur la carte, l'espacement entre chaque symbole reste le même car il est défini dans les coordonnées de l'écran. Veuillez vous référer à [Wiki](http://wiki.thinkgeo.com/wiki/thinkgeo_desktop_for_wpf) pour les détails. ![Screenshot](https://github.com/ThinkGeo/WeatherLineStyleSample-ForWpf.NETCore/blob/master/ScreenShot.png) ### À propos du code ```cSharp class customGeoImageLineStyle : LineStyle < protected override void DrawCore(IEnumerable<Feature> features, canevas GeoCanvas, System.Collections.ObjectModel.Collection<SimpleCandidate> labelsInThisLayer, System.Collections.ObjectModel.Collection<SimpleCandidate> labelsInAllLayers) < PointStyle pointStyle = new PointStyle(geoImage) foreach (Feature feature in features) < (LineShape lineShape) ) lineStyle.Draw(new BaseShape[] < lineShape >, canvas, labelsInThisLayer, labelsInAllLayers) double totalDist = 0 for (int i = 0 i < lineShape.Vertices.Count - 1 i++) < PointShape pointShape1 = new PointShape(lineShape.Vertices [i]) PointShape pointShape2 = new PointShape(lineShape.Vertices[i + 1]) LineShape tempLineShape = new LineShape() tempLineShape.Vertices.Add(lineShape.Vertices[i]) tempLineShape.Vertices.Add(lineSha pe.Vertices[i + 1]) double angle = GetAngleFromTwoVertices(lineShape.Vertices[i], lineShape.Vertices[i + 1]) if (side == SymbolSide.Left) if (angle >= 270) < angle = angle - 180 >else if (angle ⇐ 90) < angle = angle + 180 >pointStyle.RotationAngle = (float)angle float screenDist = ExtentHelper.GetScreenDistanceBetweenTwoWorldPoints( canvas.CurrentWorldExtent,pointShape1, pointShape2, canvas.Width, canvas.Height) double currentDist = Math.Round(pointShape1.GetDistanceTo(pointShape2, canvas.MapUnit, DistanceUnit.Meter), 2) double worldInterval = (currentDist * espacement) / screenDist while (totalDist ⇐ currentDist) < PointShape tempPointShape = tempLineShape.GetPointOnAline(StartingPoint.FirstPoint, totalDist, canvas.MapUnit, DistanceUnit.Meter) pointStyle.Draw(new BaseShape[] < tempPointShape >, canvas, labelsInThisLayer, labelsInAllLayers) totalDist = totalDist + worldInterval > totalDist = totalDist - currentDist > > > > ``` ### Obtenir Aide [Map Suite Desktop pour les ressources Wiki Wpf]( http://wiki.thinkgeo.com/wiki/thinkgeo_desktop_for_wpf) [Description du produit Map Suite Desktop pour Wpf](https://thinkgeo.com/ui-controls#desktop-platforms) [Site de la communauté ThinkGeo](http:// community.thinkgeo.com/) [Site Web ThinkGeo](http://www.thinkgeo.com) ### À propos de ThinkGeo ThinkGeo est une société SIG (Systèmes d'Information Géographique) fondée en 2004 et située à Frisco, Texas. Nos clients appartiennent à plus de 40 secteurs, notamment l'agriculture, l'énergie, les transports, le gouvernement, l'ingénierie, le développement de logiciels et la défense. ==== Exemples de formes suivies dans un fichier pour Wpf ==== Dans cet exemple Wpf, nous montrons comment conserver les formes suivies en enregistrant le WKT (texte bien connu) dans un fichier à l'aide de l'événement TrackEnded. En outre, vous pouvez voir comment récupérer le WKT à partir de fichiers pour créer les fonctionnalités du TrackShapeLayer du TrackOverlay lors du chargement de la carte. Vous aurez besoin des références MapSuiteCore.dll et WpfDesktopEdition.dll pour cet exemple. Veuillez vous référer à [Wiki](http://wiki.thinkgeo.com/wiki/map_suite_desktop_for_wpf) pour les détails. Voir cet exemple sur Github ==== Enregistrer l'exemple d'état de charge pour Wpf ==== Le but de ce projet Wpf est de montrer comment utiliser les nouveaux SaveState et LoadState de SimpleMarkerOverlay. Nous montrons comment vous pouvez simplement faire glisser les icônes pour modifier leur emplacement, enregistrer leur état dans un fichier, puis recharger l'état à partir de ce fichier. Pour que cet exemple fonctionne, vous devrez utiliser la dernière version Veuillez vous référer à [Wiki](http://wiki.thinkgeo.com/wiki/map_suite_desktop_for_wpf) pour les détails. Voir cet exemple sur Github ==== Snap To Layer Sample for Wpf ==== Le but de ce projet Wpf est de résoudre certaines limitations de la classe SnapToLayerEditInteractiveOverlay trouvée dans un précédent exemple Snap To Layer. Cette classe permettait d'aligner le pointeur de la souris sur le sommet le plus proche d'un polygone s'il se trouve dans une tolérance définie. Bien que cela fonctionnait très bien pour les polygones simples, il y avait une limitation des performances avec les polygones complexes constitués de nombreux sommets. Cet exemple Wpf résout cette limitation et permet un glissement et un accrochage réactifs du sommet quelle que soit la taille du polygone sur lequel s'accrocher. Veuillez vous référer à [Wiki](http://wiki.thinkgeo.com/wiki/map_suite_desktop_for_wpf) pour les détails. Voir cet exemple sur Github # Exemple d'extracteur MBTiles pour WPF ### Description L'extracteur MBTiles vous permet de créer de nouveaux sous-ensembles plus petits à partir de la base de données MBTiles. Vous spécifiez simplement la zone de délimitation en suivant une forme de rectangle sur la carte pour la nouvelle zone, puis cela créera une nouvelle base de données SQLite pour ces régions. * Le format .MBTile peut être pris en charge dans tous les contrôles Map Suite tels que Wpf, Web, MVC, WebApi, Android et iOS. Veuillez vous référer à [Wiki](https://wiki.thinkgeo.com/wiki/thinkgeo_desktop_for_wpf) pour plus de détails. ![Screenshot](https://github.com/ThinkGeo/MBTilesExtractorSample-ForWpf.NETCore/blob/master/Screenshot.gif) ### À propos du code L'exemple peut extraire les MBTiles de la base de données source vers la base de données cible. Une chose doit être consciente : il y a trois tables ("carte", "images", "métadonnées") qui doivent être copiées de la base de données source vers la base de données cible. ```cSharp ThinkGeoMBTilesLayer.CreateDatabase(targetFilePath) var targetDBConnection = new SqliteConnection($"Data Source=”) var targetMap = new Map(targetDBConnection) var targetImages = new Images(targetDBConnection) var targetMetadata = new Metadata(targetDBConnection) var sourceDBConnection = new SqliteConnection(“Data Source=Data/tiles_Frisco.mbtiles”) var sourceMap = new Map(sourceDBConnection) ) var sourceImages = new Images(sourceDBConnection) var sourceMetadata = new Metadata(sourceDBConnection) sourceMetadata.NextPage() foreach (entrée MetadataEntry dans sourceMetadata.Entries) < if (entry.Name.Equals(“center”)) < PointShape centerPoint = projection .ConvertToExternalProjection(bbox).GetCenterPoint() entry.Value = $“,,” > > targetMetadata.Insert(sourceMetadata.Entries) int recordLimit = 1000 foreach (var tileRange dans tileRanges) < long offset = 0 bool isEnd = false while (!isEnd) < string querySql = $“SELECT * FROM WHERE ” + ConvetToSqlString (tileRange) + $“ LIMIT ,” var entrées = sourceMap.Query(querySql) targetMap.Insert(entries) if (entries.Count < recordLimit) isEnd = true querySql = $“SELECT images.tile_data as tile_data, images.tile_id as tile_id FROM ” + $WHERE images.tile_id IN ( SÉLECTIONNER DE WHERE " + ConvetToSqlString (tileRange) + $" LIMIT , )" entrées = sourceImages.Query(querySql) targetImages.Insert(entries) offset = offset + recordLimit > > ``` ### Obtenir de l'aide [Map Suite UI Control for WPF Wiki Resources](https://wiki.thinkgeo. com/wiki/thinkgeo_desktop_for_wpf) [Map Suite UI Control for WPF Product Description](https://thinkgeo.com/gis-ui-desktop#platforms) [ThinkGeo Community Site](http://community.thinkgeo.com/) [Site Web ThinkGeo](http://www.thinkgeo.com) ### À propos de ThinkGeo ThinkGeo est une société SIG (Systèmes d'information géographique) fondée en 2004 et située à Frisco, Texas. Nos clients appartiennent à plus de 40 secteurs, notamment l'agriculture, l'énergie, les transports, le gouvernement, l'ingénierie, le développement de logiciels et la défense. ==== Exemple de style de ligne météo pour Wpf ==== Dans cet exemple WPF, nous apprenons à étendre Style de ligne pour créer un style de représentation des fronts météorologiques, tels que front froid, front chaud ou front occlus pour vos cartes météorologiques. Pour obtenir ce style, un Style de ligne est utilisé pour la ligne de front elle-même. Pour symboliser le type de façade, une icône est utilisée. Notez les deux propriétés pratiques pour vous donner plus de contrôle : la propriété Spacing pour ajuster la distance en coordonnées d'écran entre chaque symbole sur la ligne et la propriété Side pour contrôler de quel côté de la ligne les symboles doivent apparaître.Bien sûr, lorsque vous effectuez un zoom avant et arrière sur la carte, l'espacement entre chaque symbole reste le même car il est défini dans les coordonnées de l'écran. Veuillez vous référer à [Wiki](http://wiki.thinkgeo.com/wiki/map_suite_desktop_for_wpf) pour les détails. Voir cet exemple sur Github ==== Afficher l'échantillon MsSql GeoDatabase pour Wpf ==== Cet exemple montre comment vous pouvez lire des données à partir d'une base de données MsSql, et vous trouverez le code aussi simple que de consommer n'importe quelle autre source de données dans Map Suite. Veuillez vous référer à [Wiki](http://wiki.thinkgeo.com/wiki/map_suite_desktop_for_wpf) pour les détails. Voir cet exemple sur Github ==== Utiliser l'exemple de contrôle de carte Wpf pour WinForms ==== Le contrôle de carte wpf prend en charge le multi-thread pour rendre la carte, il fonctionne donc mieux que le contrôle de carte winforms. Cet exemple montre comment vous pouvez utiliser le contrôle de carte wpf dans vos applications winforms. Veuillez vous référer à [Wiki](http://wiki.thinkgeo.com/wiki/map_suite_desktop_for_wpf) pour les détails. Voir cet exemple sur Github ==== Exemple de couleur ThinkGeo Cloud pour Wpf ==== Cet exemple montre comment vous pouvez utiliser ThinkGeo Cloud Client pour obtenir des couleurs à partir de ThinkGeo GIS Server. Il prend en charge 7 couleurs différentes : - Teinte - Qualité - Analogique - Complémentaire - Contraste - Tétradique - Triadique La prise en charge du client ThinkGeo Cloud fonctionnerait dans tous les contrôles Map Suite tels que Wpf, Web, MVC, WebApi, Android et iOS. Veuillez vous référer à [Wiki](http://wiki.thinkgeo.com/wiki/map_suite_desktop_for_wpf) pour les détails. Voir cet exemple sur Github ==== Imprimer un exemple de popup et de marqueur pour Wpf ==== Les popup et les marqueurs doivent utiliser des événements de clic, etc., ils héritent donc de la classe Control. SimpleMarkerOverlay et PopupOverlay ne peuvent pas être imprimés directement et doivent être convertis en image. Cet exemple montre comment imprimer une fenêtre contextuelle et un marqueur par PrinterGeoCanvas. Veuillez vous référer à [Wiki](http://wiki.thinkgeo.com/wiki/map_suite_desktop_for_wpf) pour les détails. Voir cet exemple sur Github ==== Exemple de qualité d'impression de la couche raster pour Wpf ==== Ce projet WPF est le 3ème exemple de la série d'impression. Il montre comment imprimer vos cartes en haute qualité. Cette nouvelle fonctionnalité de Map Suite est disponible dans la version 9.0.483.0 ou ultérieure. À partir de l'exemple, vous comprendrez mieux comment utiliser le DPI pour gérer la qualité d'impression. L'échantillon est basé sur des images raster, mais pourrait également être utilisé avec des données vectorielles. Veuillez vous référer à [Wiki](http://wiki.thinkgeo.com/wiki/map_suite_desktop_for_wpf) pour les détails. Voir cet exemple sur Github ==== Exemple de projection de rotation personnalisée pour Wpf ==== Dans le projet d'aujourd'hui, nous montrons comment créer votre propre classe de projection qui permet de projeter un calque de n'importe quelle projection interne vers n'importe quel externe tout en effectuant une rotation au en même temps. Avoir la possibilité d'appliquer ces deux opérations en une seule étape peut s'avérer utile si la couche d'origine a été créée dans une projection différente avec le nord à un angle et que vous souhaitez l'aligner sur la carte de base. Veuillez vous référer à [Wiki](http://wiki.thinkgeo.com/wiki/map_suite_desktop_for_wpf) pour les détails. Voir cet exemple sur Github ==== Exemple de centrage et de rotation pour Wpf ==== Ce projet est la version Wpf de l'exemple d'édition de services « Centrage et rotation sur la fonction de déplacement », où nous apprenons comment avoir la carte toujours centrée et pivoté en fonction de l'emplacement et de la direction d'un véhicule en mouvement. Ce problème résout certains problèmes dont vous devez être conscient concernant à la fois ShapeFileFeatureLayer et InMemoryFeatureLayer lors de l'application de la rotation à la carte. Veuillez vous référer à [Wiki](http://wiki.thinkgeo.com/wiki/map_suite_desktop_for_wpf) pour les détails. Voir cet exemple sur Github # Exemple de style de rupture de classe pour Wpf ### Description Dans ce projet, vous verrez comment utiliser le ClassBreakStyle pour regrouper et restituer des fonctionnalités par valeurs. ClassBreakStyle est une technique utile car elle vous permet de regrouper diverses fonctionnalités par les valeurs spécifiées, puis applique un style différent aux groupes de fonctionnalités. Veuillez vous référer à [Wiki](http://wiki.thinkgeo.com/wiki/thinkgeo_desktop_for_wpf) pour les détails. ![Screenshot](https://github.com/ThinkGeo/ClassBreakStyleSample-ForWpf/blob/master/Screenshot.png) ### À propos du code Utilisez un ClassBreakStyle pour colorer chaque état différemment en fonction de la plage dans laquelle se trouve sa population . Cette valeur se trouve dans les états ShapeFile DBF dans la colonne nommée « POP1990 ». ```csharp ClassBreakStyle statesStyle = new ClassBreakStyle ("POP1990") statesStyle.ClassBreaks.Add( new ClassBreak(valeur : 0, areaStyle : AreaStyles.CreateSimpleAreaStyle( fillBrushColor : GeoColors.LightGray, outlinePenColor : GeoColors.PenWGray) ) StatesStyle.ClassBreaks.Add( new ClassBreak(value : 1000000, areaStyle : AreaStyles.CreateSimpleAreaStyle( fillBrushColor : GeoColors.LightBlue, outlinePenColor : GeoColors.CornflowerBlue, outlinePenWidth : 1) ) ) StatesStyle.ClassBreaks.Add(value : 350Breaks , areaStyle : AreaStyles.CreateSimpleAreaStyle( fillBrushColor : GeoColors.SkyBlue, outlinePenColor : GeoColors.DeepSkyBlue, outlinePenWidth : 1) ) ) Ajoutez stateStyle à StatesLayer et appliquez le style à tous les niveaux de zoom. StatesLayer.ZoomLevelSet.ZoomLevel01.CustomStyles.Add(statesStyle) statesLayer.ZoomLevelSet.ZoomLevel01.ApplyUntilZoomLevel = ApplyUntilZoomLevel.Level20

### À propos de ThinkGeo ThinkGeo est une société SIG (Systèmes d'Information Géographique) fondée en 2004 et située à Frisco, TX. Nos clients appartiennent à plus de 40 secteurs, notamment l'agriculture, l'énergie, les transports, le gouvernement, l'ingénierie, le développement de logiciels et la défense.


Abstrait

Les bidonvilles fournissent une main-d'œuvre moins chère et des services informels qui contribuent substantiellement au PIB. Cependant, ces zones, en raison de la forte densité de population, des logements insalubres et du manque de services essentiels sont des risques urbains. Le développement socio-physique de ces établissements a souvent été négligé en raison de la faiblesse des lois et des dispositions en matière de gestion et de politiques urbaines. L'une des principales raisons de la négligence a été l'indisponibilité des cartes des bidonvilles pour étudier l'évolution des bidonvilles et pour les gérer et les contenir activement. Diverses techniques de télédétection ont été utilisées pour répondre au problème mais n'ont pas produit de solutions universelles. Ces dernières années, les techniques d'apprentissage en profondeur (DL) avec télédétection se sont avérées bénéfiques pour comprendre la structure sous-jacente des caractéristiques physiques présentes dans les images satellitaires. Cette étude porte sur l'une des techniques d'apprentissage en profondeur qui utilisent des réseaux convolutifs pré-entraînés pour la détection des bidonvilles en imagerie satellitaire à très haute résolution (VHR) et à moyenne résolution (MR). Nous avons créé un ensemble de données de formation qui comprend quatre classes, dont les bidonvilles, le bâti, le vert et l'eau. Nous avons ensuite entraîné le modèle pour détecter ces classes dans toute la ville. Les performances de classification ont été évaluées pour les images à très haute et moyenne résolution à l'aide de limites de bidonvilles délimitées manuellement et recueillies auprès des autorités locales urbaines de Mumbai. La précision globale de 94,2 et 90,2 et le kappa de 0,70 et 0,55 sont obtenus respectivement à partir des images VHR et MR. Nous fournissons une technique complète pour la détection des établissements informels qui peut être adaptée et appliquée à n'importe quelle ville pour détecter diverses formes de relief.


Soyons pointus

Maintenant que nous avons traité les données dans Elasticsearch, créons des graphiques ! Une fois que vous avez ajouté un modèle d'index à Kibana, nous pouvons nous assurer que le champ est défini comme un géopoint. Un champ correctement mappé ressemblera à ceci sous le Modèle d'index Les paramètres

Et comme ça dans Découvrir

Maintenant que tout est confirmé et terminé, dirigez-vous vers le Visualisation section et créez une nouvelle carte de tuiles, en utilisant le modèle d'index que vous venez de définir. Une fois que vous avez choisi le modèle, et en supposant que vos géopoints sont correctement cartographiés, Kibana remplira automatiquement les paramètres de visualisation tels que le champ sur lequel agréger et affichera la carte presque instantanément. Qui ressemblera à quelque chose comme ça

Dans notre exemple, nous n'avons qu'un seul point de données (les copains de G⟚y !), mais avec plus, vous pouvez zoomer et faire un panoramique et Kibana redistribuera les données agrégées selon les besoins, et vous pouvez même créer une zone de délimitation géographique ou un filtre pour accéder au données spécifiques dont vous avez besoin.

Voici un exemple de carte plus peuplée. Ces données sont 100% réelles et extraites des visiteurs de notre blog, c'est-à-dire vous, ici et maintenant !


Map Suite Wpf Desktop Edition Tous les exemples

Noter: La page a été créée avant Map Suite 10. Map Suite 10.0 a organisé de nombreuses classes dans de nouveaux espaces de noms et assemblys et a eu quelques ruptures mineures de compatibilité. La majorité du code précédemment construit devrait fonctionner sans modification en supposant que les nouveaux espaces de noms soient ajoutés. Pour obtenir des conseils sur la mise à niveau de votre code existant, veuillez consulter le Guide de mise à niveau de MapSuite 10.

Map Suite Wpf Desktop Edition Comment puis-je des exemples

Le « Comment puis-je ? » la collection d'échantillons est un ensemble complet contenant des dizaines d'échantillons interactifs. Disponibles à la fois en C# et en VB.NET, ces exemples sont conçus pour atteindre tous les points forts de Map Suite, de la simple ajout d'une couche à une carte à l'exécution de requêtes spatiales et à l'application d'un style thématique. Considérez cette collection comme votre « encyclopédie » de toutes les bases de Map Suite et un excellent point de départ pour les nouveaux utilisateurs.

Noter: La page a été créée avant Map Suite 10. Map Suite 10.0 a organisé de nombreuses classes dans de nouveaux espaces de noms et assemblys et a eu quelques ruptures mineures de compatibilité. La majorité du code précédemment construit devrait fonctionner sans modification en supposant que les nouveaux espaces de noms soient ajoutés. Pour obtenir des conseils sur la mise à niveau de votre code existant, veuillez consulter le Guide de mise à niveau de MapSuite 10.

GPS vers Google Map (Bureau)

Aujourd'hui, nous avons la version Desktop du projet Web "GPS to Google". Dans ce projet, nous montrons comment afficher sur Google Map des données de points provenant d'une lecture GPS en géodésique (Longitude/Latitude). Il montre également comment définir l'étendue de la carte afin qu'elle soit centrée sur le point GPS.

Grand Cercle avec Google Map

Le but de ce projet Web est de compléter un projet antérieur « Grand cercle sur le bord du Pacifique » qui montrait comment créer le grand cercle entre deux points au-dessus du Pacifique avec la projection géodésique (degrés décimaux). Dans ce projet, nous appliquons Great Circle à Google Map montrant le Pacific Rim allant de l'Amérique à l'Asie.

Mini-carte avec Google Map

Le but de ce projet Web est de compléter un projet antérieur « Grand cercle sur le bord du Pacifique » qui montrait comment créer le grand cercle entre deux points au-dessus du Pacifique avec la projection géodésique (degrés décimaux). Dans ce projet, nous appliquons Great Circle à Google Map montrant le Pacific Rim allant de l'Amérique à l'Asie.

Mini-carte avec Google Map

À la demande d'un utilisateur du forum de discussion qui souhaite savoir comment utiliser un localisateur de carte avec Google Map, nous publions aujourd'hui un projet Desktop qui montre comment étendre AdornmentLayer pour créer une mini-carte de localisation pouvant utiliser Google Map.

OpenStreetMap

OpenStreetMap (OSM) est un projet collaboratif pour créer des données géographiques gratuites pour le monde entier. On peut penser à la « Free Wiki World Map ». Désormais, la dernière version du bureau MapSuite peut prendre en charge cela. Pour exécuter ce projet, vous aurez besoin de Development Build 4.0.72.0 ou d'une version ultérieure.

ArcGISServerRestLayer

Dans ce projet basé sur wpf, nous allons démontrer le nouvel ArcGISServerRestLayer publié avec Map Suite 9.0. Cette couche offre aux développeurs un outil simple et puissant pour accéder à leurs cartes qui résident sur ArcGIS Server. Cette nouvelle couche utilise l'API REST d'ArcGIS Server. Désormais, la dernière version de Map Suite Core peut le prendre en charge. Pour exécuter ce projet, vous aurez besoin de Development Build 9.0.443.0 ou version ultérieure.

Shapefile vers Google Map

Dans le projet "GPS to Google Map", nous avons appris à projeter un seul point en Longitude/Latitude pour qu'il s'affiche correctement sur Google Map. Dans le projet d'aujourd'hui, nous appliquons le même principe de projection à un fichier de formes pour qu'il s'affiche sur Google Map. Remarquez comment nous définissons également l'étendue de la carte en fonction du fichier de formes projeté.

Obtenir des fonctionnalités à partir d'ArcGISServer

Dans ce projet basé sur wpf, il illustre comment obtenir les fonctionnalités d'ArcGIS Restful Server. Sur le côté gauche de la capture d'écran, les données raster d'ArcGIS Server et de l'autre côté, les entités d'ArcGIS Restful Server. Pour exécuter ce projet, vous aurez besoin de Development Build 9.0.482.0 ou d'une version ultérieure.

Noter: La page a été créée avant Map Suite 10. Map Suite 10.0 a organisé de nombreuses classes dans de nouveaux espaces de noms et assemblys et a eu quelques ruptures mineures de compatibilité. La majorité du code précédemment construit devrait fonctionner sans modification en supposant que les nouveaux espaces de noms soient ajoutés. Pour obtenir des conseils sur la mise à niveau de votre code existant, veuillez consulter le Guide de mise à niveau de MapSuite 10.

Annuler TrackOverlay

Ce projet montre comment implémenter l'abandon d'une forme de piste avec la touche Echap comme vous pourriez le faire dans MapSuite 2.x.
Comme avec le projet Dynamic Info on TrackShape, il montre comment TrackOverlay peut être étendu pour ajouter des fonctionnalités personnalisées.
Vous verrez comment gérer certains événements de la carte tels que KeyDown et comment manipuler TrackOverlay.

Ligne de voie personnalisée

Dans le projet d'aujourd'hui, nous allons voir comment étendre le TrackInteractiveOverlay dans l'édition Desktop pour avoir le comportement souhaité lors du suivi d'une ligne. Dans ce cas, nous montrons comment remplacer la fonction MouseDownCore pour que la ligne soit suivie au clic gauche de la souris et que le dernier sommet ajouté soit supprimé au clic droit de la souris.

Polygone de piste personnalisé

Dans le projet "Custom Track Line", nous avons vu comment étendre le TrackInteractiveOverlay pour avoir le comportement de supprimer le dernier sommet ajouté lors d'un clic droit sur une ligne de piste. Dans le projet d'aujourd'hui, nous montrons comment implémenter ce même comportement pour le suivi des polygones.

Faites glisser Sélectionner les sommets en tant que groupe

Avec EditInteractiveOverlay, nous savons comment faire glisser une entité telle qu'un polygone dans son ensemble. Nous savons également comment faire glisser un sommet individuel en définissant les propriétés appropriées. Ici, nous allons un peu plus loin et nous montrons comment créer une classe héritée de EditInteractiveOverlay pour implémenter la logique de sélection des sommets et de les faire glisser en tant que groupe. Découvrez comment les méthodes protégées MouseDownCore, MouseUpCore, MouseClickCore et MouseMoveCore ont été remplacées à cette fin. Ceci est une application de bureau qui s'applique également à Wpf.

Style de point déplacé

Dans le message du forum de discussion « Aide à l'accrochage nécessaire », nous montrons la solution pour qu'un sommet traîné s'accroche à un sommet d'une autre couche. Vous pouvez voir que par défaut, le point de contrôle déplacé devient jaune. Dans ce projet, nous concentrons notre attention sur la façon de contrôler le style des points de contrôle. Vous verrez comment remplacer la fonction DrawCore de EditInteractiveOverlay. Ceci est un projet pour l'édition Desktop.

Style de point déplacé avancé

Ce projet est un autre exemple de la façon dont EditInteractiveOverlay est extensible pour les besoins d'édition de l'utilisateur. Vous pouvez voir comment modifier les styles du sommet en cours de déplacement en fonction de la touche Maj et faire en sorte que le sommet s'accroche à n'importe quelle entité. Grâce aux fonctions de remplacement protégées telles que KeyDownCore, KeyUpCore, MouseUpCore et DrawCore, ces fonctionnalités peuvent être facilement implémentées en héritant de EditInteractiveOverlay.

Style de point déplacé avec étiquette

Dans notre série de projets dédiés à EditInteractiveOverlay, vous verrez aujourd'hui à quel point il est facile d'ajouter des étiquettes à votre point de contrôle glissé affichant des informations dynamiques. Ici, nous montrons comment afficher la distance entre le point de contrôle déplacé et le point le plus proche d'une forme de référence. De plus, pour augmenter l'expérience de l'utilisateur, le point le plus proche de la forme de référence est également affiché en variant au fur et à mesure que le point de contrôle est déplacé.

Dans le domaine des SIG, les entreprises ont des besoins différents sur la façon dont elles éditent leurs données et sur la fluidité de l'édition permettant un contrôle et une précision maximum au technicien éditant les données. Cet exemple d'utilisation de EditInteractiveOverlay montre à quel point l'édition est puissante et flexible avec le contrôle de carte Map Suite.

Icône de déplacement

Dans l'exemple d'aujourd'hui, nous montrons comment faire glisser des icônes représentant un véhicule sur la carte. Il s'agit d'une fonctionnalité pratique si vous souhaitez donner à vos utilisateurs la possibilité de faire glisser et déposer certaines fonctionnalités non stationnaires telles que les véhicules. Vous pouvez voir que pour accomplir cette fonctionnalité, vous pouvez utiliser EditInteractiveOverlay car il a déjà toute la logique nécessaire pour faire glisser. Regardez le code pour voir comment configurer cette superposition pour avoir le comportement attendu.

Faire glisser l'icône Avancé

Ce projet est une version plus complète d'un projet précédent "Dragging Icon". En plus de montrer comment utiliser EditInteractiveOverlay pour faire glisser et déposer des entités représentées par une icône, nous montrons également comment ajouter de nouvelles entités sur la carte en double-cliquant avec le bouton gauche sur la carte. Vous verrez également comment supprimer une fonctionnalité en double-cliquant avec le bouton droit sur son icône.

Faire glisser le sommet

Le but du projet d'aujourd'hui n'est pas tant de montrer une nouvelle technologie que de montrer une amélioration d'une technologie existante. Nous connaissons déjà EditInteractiveOverlay avec des projets tels que "Dragged PointStyle with Label", "Snap To Layer" et "Snapping to Vertex". Mais ces projets ont montré EditInteractiveOverlay sur de petites formes. L'utilisation d'EditIntercticeOverlay sur des formes complexes est devenue peu réactive. Nous avons amélioré cela et vous pouvez maintenant faire glisser, redimensionner, faire pivoter et faire glisser un sommet individuel d'un polygone complexe composé de milliers de sommets avec une bonne réactivité, comme vous pouvez le voir dans cet exemple.

Pour exécuter ce projet Desktop, vous aurez besoin de la version 4.0.66.0 ou ultérieure du build quotidien de développement pour les dll MapSuiteCore et DesktopEdition. Et n'oubliez pas d'ajouter une référence à WindowsBase.dll.

Cette amélioration n'est actuellement que dans la branche développement, elle sera ajoutée à la branche production lors de la prochaine version majeure en novembre.

Informations dynamiques sur les TrackShapes

Ce projet est destiné à la version Desktop et montre comment gérer TrackOverlay pour obtenir des informations dynamiques sur la forme suivie.

Dans cet exemple, vous verrez affichés dans une zone de groupe, des propriétés telles que le périmètre et la zone pendant que la forme est suivie.

Dans ce projet, vous apprendrez à gérer des événements tels que TrackStarted, MouseMoved et TrackEnded de TrackOverlay à cette fin.

Obtenir des informations dynamiques sur une forme suivie peut être utile dans une situation où, avant de vous engager à obtenir la forme terminée, vous souhaitez en savoir plus sur la forme. Par exemple, si vous suivez une zone de recherche, vous obtenez dynamiquement des informations sur sa zone.

Ce projet sera suivi d'autres projets connexes. On montrera comment créer son propre TrackOverlay hérité pour avoir la possibilité d'interrompre le suivi en appuyant sur une touche. Un autre projet montrera comment afficher des informations dynamiques à l'intérieur de la forme elle-même au lieu d'utiliser un contrôle séparé.

Modification de rectangles

Cet exemple montre comment étendre les rectangles EditInteractiveOverlay sous forme de formes plutôt que de formes polygonales en définissant des valeurs de colonne spéciales.Pour les entités (texte bien connu et binaire), le concept de rectangle n'est pas pris en charge et les rectangles sont généralement traités comme des polygones. Cette fonctionnalité permet aux utilisateurs de modifier le rectangle mais nécessite que la modification conserve une forme rectangulaire. Le rectangle n'a pas besoin d'être droit tant que tous les angles de coin sont à 90 degrés les uns par rapport aux autres.
Pour activer la fonctionnalité, vous devez affecter la valeur de la colonne appelée « Modifier » à « rectangle ». La fonction de redimensionnement conservera le rapport largeur/hauteur du rectangle, sinon elle utilisera la méthode d'origine.
Pour plus d'informations, vous pouvez consulter le message du forum de discussion ci-dessous :
http://gis.thinkgeo.com/Support/DiscussionForums/tabid/143/aff/21/aft/5822/afv/topic/Default.aspx

Modifier les styles de superposition

Dans le projet Web d'aujourd'hui, nous apprenons à contrôler les styles de l'EditOverlay à la fois pour le style par défaut et le style d'édition. Pour ce faire, nous écrivons du code javascript. Regardez le code dans la balise "script" pour voir comment nous pouvons contrôler la couleur de remplissage, l'opacité, la largeur de la bordure, etc. des fonctionnalités dans EditOverlay.

Connexion de deux formes avec des échantillons de ligne Arraw

Dans cet exemple, deux polygones sont connectés par une ligne de flèche, et si les polygones sont déplacés, la ligne de flèche de connexion sera également déplacée automatiquement.

Sommet prédéfini sur polygone suivi

Cet exemple Desktop montre comment étendre TrackInteractiveOverlay pour donner la possibilité d'ajouter un sommet prédéfini à un polygone de suivi pendant le suivi. Cela peut être pratique dans les situations où vous devez ajouter un sommet en dehors de l'étendue actuelle de la carte ou lorsque vous devez ajouter un sommet avec des valeurs X et Y précises. Dans le PresetVertexTrackInteractiveOverlay personnalisé, vous pouvez voir comment la fonction protégée GetTrackingShapeCore a été remplacée pour implémenter ce comportement de suivi du polygone.

Sélectionnez et faites glisser (wpf)

Dans ce projet Wpf, nous montrons comment sélectionner une entité à partir d'un fichier de formes en fonction d'une valeur de colonne à l'aide de GetFeaturesByColumnValue. Nous montrons également comment configurer l'EditOverlay pour donner à l'utilisateur la possibilité de faire glisser la fonctionnalité sélectionnée. Dans ce projet, vous pouvez également voir comment obtenir les coordonnées du monde lors de l'événement de déplacement de la souris. Notez que le code pour faire cela est assez différent dans Wpf par rapport à l'édition winforms.

Sélectionner des sommets

Le but de cet exemple est de vous aider, le développeur, à comprendre certaines subtilités de l'héritage de EditInteractiveOverlay lors de l'implémentation de votre propre logique d'édition. Ici, nous montrons comment conserver le dessin des points de contrôle comme sélectionné même après la fin de l'opération de déplacement. À cette fin, nous devons remplacer trois fonctions protégées, OnControlPointSelected, MouseUpCore et DrawCore. Veuillez lire attentivement les commentaires pour comprendre le fonctionnement interne d'EditInteractiveOverlay.

Sélectionner avec forme de piste

Dans le projet Desktop d'aujourd'hui, nous combinons les compétences que nous avons acquises dans les exemples « Requête spatiale A Couche d'entités » et « Suivi et modification des formes ». Vous pouvez voir comment nous utilisons l'événement TrackEnded pour obtenir le RectangleShape à partir de la forme suivie de TrackOverlay pour effectuer la requête spatiale. Dans cet exemple, nous utilisons un Rectangle mais vous pouvez aussi très facilement utiliser une autre forme telle que Polygone, Cercle, etc.

Aligner sur le calque

Ce projet montre comment appliquer l'accrochage à un EditInteractiveOverlay. Il y a de nombreux aspects à l'accrochage. Auparavant, nous avons montré un projet avec le pointeur de la souris s'accrochant au sommet le plus proche d'un polygone modifiable. Aujourd'hui, nous montrons la technique pour faire glisser un point de contrôle et l'aligner sur le sommet le plus proche d'un calque s'il est dans la tolérance. La tolérance peut être définie en coordonnées mondiales (mètres, pieds, etc.) ou d'écran (pixels). Notez que nous utilisons également la technique montrée dans le projet précédent "Style de point traîné".

Accrochage au calque 2

Le but de ce projet Wpf est de résoudre certaines limitations de la classe SnapToLayerEditInteractiveOverlay trouvée dans un précédent exemple Snap To Layer.
Cette classe permettait d'aligner le pointeur de la souris sur le sommet le plus proche d'un polygone s'il se trouve dans une tolérance définie. Bien que cela fonctionnait très bien pour les polygones simples, il y avait une limitation des performances avec les polygones complexes constitués de nombreux sommets. Cet exemple Wpf résout cette limitation et permet un glissement et un accrochage réactifs du sommet quelle que soit la taille du polygone sur lequel s'accrocher.

Accrochage au sommet

Ce projet est le premier d'une série qui sera consacrée à la capture à l'aide d'InteractiveOverlay. Dans ce projet, nous montrons comment accrocher le pointeur de la souris au sommet le plus proche d'un polygone modifiable s'il se trouve dans une tolérance définie. La tolérance est représentée par un cercle autour des sommets. Cette technique peut également être appliquée à l'accrochage de sommets au sein d'une même forme, entre différentes formes ou même en fonction d'un calque. Ces différents types de capture feront l'objet de futurs projets liés à la capture à l'aide d'InteractiveOverlay.

Zoom avant sans décalage

Ce projet est destiné aux utilisateurs de DesktopEdition. Dans Map Suite 2.x, différents modes de la carte sont proposés au développeur pour choisir le type de comportement de la carte lors d'une action de la souris. Dans Map Suite 3.x, nous avons abandonné les modes pour avoir un modèle plus flexible utilisant InteracticeOverlay. Par défaut, le zoom avant de la piste se fait en cliquant et en faisant glisser la souris sur la carte tout en maintenant la touche Maj enfoncée. C'est très pratique mais que faire si vous voulez offrir aux utilisateurs la même expérience qu'avec la 2.x, où la même action de la souris a un comportement différent tel que TrackZoomIn et Pan grâce à l'utilisation de modes.

Dans ce projet, nous montrons comment créer votre propre InteractiveOverlay pour émuler dans Map Suite 3.x le comportement du mode 2.x.

Formes suivies dans un fichier

Dans cet exemple Wpf, nous montrons comment conserver les formes suivies en enregistrant le WKT (Well Known Text) dans un fichier à l'aide de l'événement TrackEnded. En outre, vous pouvez voir comment récupérer le WKT à partir de fichiers pour créer les fonctionnalités du TrackShapeLayer du TrackOverlay lors du chargement de la carte. Vous aurez besoin des références MapSuiteCore.dll et WpfDesktopEdition.dll pour cet exemple.

Formes suivies vers WKT

Dans le projet d'aujourd'hui, nous montrons comment enregistrer une forme suivie dans WKT (Well Known Text). Vous remarquerez que nous faisons la distinction entre la forme suivie et la forme suivie finie grâce à deux événements différents de TrackOverlay, TrackEnding et TrackEnded.

TrackOverlay avec ESC (Nouveau)

Ce projet est censé répondre à une limitation avec l'abandon du suivi d'une forme dans le projet TrackOverlay avec Esc. Nous pouvons maintenant abandonner la forme suivie à partir du premier sommet ajouté. Remarquez comment nous avons utilisé une nouvelle classe CustomTrackInteractiveOverlay héritant de TrackInteractiveOverlay à cette fin.

Tolérance de sommet

Fondamentalement, ce projet montre le contraire du projet d'hier "Snap To Layer". Au lieu d'aligner le point de contrôle déplacé sur un sommet s'il est dans une tolérance, nous montrons comment ne pas autoriser un point de contrôle à entrer dans une tolérance définie. Cette technique peut être pratique à mettre en œuvre si vous avez besoin d'avoir des sommets d'une forme qui ne soient pas inférieurs à une certaine distance les uns des autres. Pour mettre en œuvre cette technique, nous utilisons à nouveau la puissance et la flexibilité de l'EditInteractiveOverlay de l'édition Desktop.

Noter: La page a été créée avant Map Suite 10. Map Suite 10.0 a organisé de nombreuses classes dans de nouveaux espaces de noms et assemblys et a eu quelques ruptures mineures de compatibilité. La majorité du code précédemment construit devrait fonctionner sans modification en supposant que les nouveaux espaces de noms soient ajoutés. Pour obtenir des conseils sur la mise à niveau de votre code existant, veuillez consulter le Guide de mise à niveau de MapSuite 10.

Étiquettes déplaçables

Dans ce projet wpf, nous allons montrer comment placer des étiquettes d'un fichier de formes dans un SimpleMarkerOverlay. En utilisant la propriété DragMode de SimpleMarkerOverlay, l'utilisateur peut ensuite faire glisser les étiquettes pour les placer à l'emplacement souhaité pour l'effet d'étiquetage le plus agréable. Ce projet sera complété plus tard pour montrer comment enregistrer l'état des étiquettes glissées depuis SimpleMarkerOverlay et les recharger.

Étiquetage en fonction de la taille

Dans l'exemple d'application « Dessiner des caractéristiques thématiques » des échantillons « Comment puis-je », nous montrons comment utiliser le ClassBreakStyle pour afficher les pays en fonction de la fourchette de population à laquelle ils appartiennent. Dans le projet d'aujourd'hui, nous montrons quelques utilisations plus avancées de ClassBreakStyle pour montrer comment étiqueter les pays en fonction de la zone. Vous remarquerez que nous profitons également des différents jeux de niveaux de zoom à des fins d'étiquetage. Le résultat est un étiquetage agréable aux yeux des pays avec une taille proportionnelle à la superficie des pays avec plus d'étiquettes de pays plus petits apparaissant lorsque vous zoomez.

Étiquetage multiligne

Étiquettes multiples

Cet exemple montre comment afficher plusieurs étiquettes pour un point ou une entité donné. Vous pouvez le faire en définissant un seul TextStyle ou plusieurs TextStyles. Si vous utilisez un seul TextStyle, vous pouvez simplement utiliser un modèle comme "[ColumnName1][ColumnName2]…" et lorsque Map Suite affichera le texte, il combinera les valeurs des colonnes de votre modèle. Si vous utilisez une méthode de style différente, vous devrez contrôler manuellement le décalage de chaque élément de texte pour éviter les chevauchements.

Formatage des degrés décimaux

Le but de ce projet est de compléter la classe statique DecimalDegreesHelper. Cette classe offre des fonctions pour aller vers et depuis les degrés décimaux, mais il lui manque les fonctions gérant divers formats tels que les degrés minutes décimales et les degrés minutes décimales secondes. Ces formats peuvent être générés par différents appareils GPS et il est pratique de savoir comment les manipuler et les convertir en degrés décimaux, le seul format pouvant être entré dans une application SIG ou cartographique.

Étiquette pour afficher l'emplacement

Ce projet montre comment utiliser les couches non pas pour afficher mais pour obtenir des informations de localisation sur l'étendue actuelle de la carte. Obtenir des informations sur les divisions administratives de l'étendue actuelle de la carte est pratique car cela donne un indice spatial lorsque la carte est trop rapprochée pour que les principales caractéristiques soient reconnaissables. Dans ce projet, nous utilisons le WorldMapKit comme arrière-plan et l'état et les comtés des fichiers de formes sont utilisés pour afficher l'indice spatial.

Étiquetage basé sur des colonnes

En tant que développeur développant une application de cartographie, vous pouvez rencontrer un fichier de formes basé sur des points pour l'étiquetage. Toutes les caractéristiques d'étiquetage telles que la police, la taille, l'angle, la couleur peuvent être trouvées dans les informations d'attribut du fichier de formes lui-même. Ce projet montrera comment créer un TextStyle personnalisé qui obtiendra la valeur de ces différentes colonnes et affichera chaque fonctionnalité en conséquence.

Étiquetage multi-colonnes

Dans ce projet, nous montrons quelques techniques pour étiqueter des entités en fonction de différentes colonnes. Avec la propriété CustomStyles et l'événement CustomColumnFetch, vous verrez la flexibilité dont vous disposez pour étiqueter comme vous le souhaitez en quelques lignes de code. Dans cet exemple, nous étiquetons les volcans en fonction de quatre colonnes sur deux lignes et en utilisant deux styles de police différents.

Noter: La page a été créée avant Map Suite 10. Map Suite 10.0 a organisé de nombreuses classes dans de nouveaux espaces de noms et assemblys et a eu quelques ruptures mineures de compatibilité. La majorité du code précédemment construit devrait fonctionner sans modification en supposant que les nouveaux espaces de noms soient ajoutés. Pour obtenir des conseils sur la mise à niveau de votre code existant, veuillez consulter le Guide de mise à niveau de MapSuite 10.

Remplacement de la couleur de l'image raster

Dans le projet WPF d'aujourd'hui, nous vous montrons comment remplacer une couleur spécifique dans une image raster, avec l'avantage du nouveau mappage des couleurs API ajouté. Pour l'exemple, dans ce projet, le lac en vert peut être remplacé par du bleu.

Pour vous assurer que cet exemple fonctionne, vous devrez utiliser la dernière version quotidienne de développement de « MapSuiteCore.dll » et « WpfDesktopEdition.dll », version 9.0.477.0 ou supérieure.

DynamicMarkerOverlay

Dans le projet WPF d'aujourd'hui, nous vous montrons comment récupérer des données à partir d'un service REST et les afficher sous forme de marqueurs avec différents styles en fonction de ses attributs. Vous pouvez cliquer sur n'importe quel marqueur pour appeler un service WCF qui renvoie les données du serveur. Une fenêtre contextuelle affiche un graphique avec des informations. Tous les marqueurs et informations associées sont mis à jour dynamiquement après un intervalle de temps spécifique.

Prise en charge native de KML (Keyhole Markup Language)

Dans le projet WPF d'aujourd'hui, nous vous montrons comment tirer parti de Map Suite pour charger le fichier Keyhole Markup Language (KML), qui est une notation XML pour exprimer l'annotation géographique et la visualisation dans les navigateurs Internet. Avec la dernière prise en charge de KML dans Map Suite, vous pouvez facilement afficher ces fichiers sur un contrôle Map Suite, y compris les images d'adoration, les repères, etc. Vous pouvez également effectuer la conversion entre KML et tout autre format vectoriel pris en charge par les composants Map Suite.

Appliquer un filtre rapide à FeatureSource

Dans le projet WPF d'aujourd'hui, nous vous montrons comment appliquer les filtres rapides à une FeatureSource à l'aide de LinkSource et de LinkExpressions. Avec LinkExpreesion, nous pouvons spécifier la chaîne de requête pour déterminer quelles fonctionnalités seront affichées. Cette fonctionnalité peut être appliquée à tous les produits Map Suite.

Station météo mondiale NOAA

Dans le projet WPF d'aujourd'hui, nous vous montrons comment interroger et afficher les données des stations d'eau NOAA en temps réel directement sous forme de couche, ce qui vous permet d'afficher les données des stations météorologiques à jour du monde entier sur vos cartes. Les données de la station météo proviennent de la NOAA et sont actualisées toutes les 15 minutes en arrière-plan. Comme ces classes sont héritées de FeatureSource et FeatureLayer, de nombreuses propriétés sont interrogeables et peuvent être utilisées pour créer une variété de cartes ou d'analyses des modèles météorologiques actuels. Cette fonctionnalité peut être appliquée à tous les produits Map Suite.

Déclinaison magnétique

Dans le projet WPF d'aujourd'hui, nous vous montrons comment ajouter la déclinaison magnétique ou la variation magnétique à la carte, elle est conçue comme un AdormentLayer, qui est utilisé pour montrer l'angle sur le plan horizontal entre le nord magnétique (la direction dans laquelle l'extrémité nord d'une aiguille de boussole, correspondant à la direction des lignes de champ magnétique de la Terre) et le nord géographique (la direction le long d'un méridien vers le pôle Nord géographique). Cet angle varie en fonction de la position de chacun à la surface de la Terre et au cours du temps. Voir http://en.wikipedia.org/wiki/Magnetic_declination pour plus de détails. Cette fonctionnalité peut être appliquée à tous les produits Map Suite.

Retarder la fonction de dessin de carte

Dans ce projet WPF, nous vous montrons comment utiliser la fonctionnalité Retarder le dessin de carte pour contrôler si oui ou non redessiner la couche après un délai spécifié. Cette option est très utile pour quiconque souhaite faire quelque chose avant d'actualiser réellement la carte, comme modifier les éléments, ajouter une animation, etc. Cet effet peut être disponible dans tous les produits Map Suite.

Combinaison de superpositions

Dans le projet Wpf d'aujourd'hui, nous montrons une technique consistant à utiliser une FeatureSource commune pour deux superpositions différentes. À partir d'un fichier de formes physique représentant des villes, un LayerOverlay standard est utilisé pour les niveaux de zoom supérieurs, tandis qu'un FeatureSourceMarkerOverlay est utilisé pour les niveaux de zoom inférieurs. FeatureSourceMarkerOverlay est une superposition spécifique à Wpf offrant des fonctionnalités pour une meilleure expérience utilisateur, telles que les info-bulles et ImageSource.

Créer une GRILLE

L'exemple d'aujourd'hui montre la nouvelle fonctionnalité disponible dans cette version de Map Suite 5 pour la création de fichiers GRID. Un GRID est un format raster qui définit un espace géographique comme un tableau de carrés (cellules) de taille égale disposés en lignes et en colonnes. Chaque cellule stocke une valeur numérique qui représente un attribut (tel que l'altitude, la pente de la surface, le pH du sol, etc.) pour cette unité d'espace. Chaque cellule GRID est référencée par son emplacement de coordonnées x, y. En règle générale, un fichier GRID est créé sur la base de quelques exemples de points avec des valeurs connues. Dans l'exemple d'aujourd'hui, nous prenons l'exemple de la création d'un fichier GRID basé sur un fichier de formes basé sur des points représentant les valeurs de pH du sol de certains emplacements d'échantillon dans un champ. En utilisant l'algorithme de distance pondérée inverse pour l'interpolation, nous créons la grille avec la valeur du pH pour toute l'étendue du champ. Regardez le code et les commentaires pour plus de détails sur la façon dont les fichiers GRID sont générés et affichés sur la carte. Cet exemple est une application de bureau mais GRID peut être utilisé dans toutes les éditions de Map Suite.

Modifier l'attribut du fichier de formes

Le but de cet exemple Wpf est de montrer comment modifier l'attribut d'une entité d'un fichier de formes. Cet exemple est utile pour quiconque souhaite actualiser la partie attributaire de ses données en cliquant simplement sur l'entité souhaitée sur la carte et en mettant à jour son attribut dans une zone de texte. Vous trouverez la partie édition du code dans l'événement KeyDown de la zone de texte.

Modifier la géométrie du fichier de formes

Le but de cet exemple est de montrer comment mettre à jour la géométrie d'une entité d'un fichier de formes en une seule étape. Cet exemple est utile pour quiconque souhaite actualiser la partie géométrique de ses données. Vous pouvez voir comment seules quelques lignes de code sont nécessaires pour ce processus et que l'index spatial est automatiquement mis à jour après l'appel à la validation de la modification. Notez que cet exemple ne montre pas toute la fantaisie pour manipuler lors de l'interaction de l'utilisateur la géométrie à mettre à jour. A cet effet, vous pouvez voir tous les exemples liés à TrackInteractiveOverlay et EditInteractiveOverlay.

Obtenir des données du serveur avec WCF

Dans ce projet basé sur Silverlight, nous allons voir comment obtenir des données géométriques côté serveur à l'aide du service WCF avec Map Suite Silverlight Edition, tout en conservant toutes les données cartographiques côté serveur. Vous pouvez cliquer sur l'un des pays sur la carte pour appeler un service WCF, qui nécessitera des données du serveur, puis une fenêtre contextuelle apparaîtra avec des informations sur ce pays.

Couche d'ornement de logo graphique

Cet exemple montre comment afficher votre logo sur la carte à l'aide d'un AdornmentLayer. L'avantage d'utiliser un ornement est que le graphique reste en place et ne bouge pas lorsque vous faites un panoramique sur votre carte. L'exemple devrait fonctionner pour différents types de logos et vous permettre de modifier la position à l'aide des propriétés AdornmentLayer's.

Carte de chaleur

Les cartes thermiques sont une technique de plus en plus utilisée dans divers domaines tels que la biologie et d'autres domaines. Voir http://en.wikipedia.org/wiki/Heat_map. Ils sont également utilisés pour afficher les zones de pages Web les plus fréquemment analysées par les utilisateurs. http://csscreme.com/heat-maps/.

Chez ThinkGeo, nous appliquons ce concept aux SIG et l'appliquons aux cartes géographiques. Les cartes thermiques sont un excellent moyen de donner aux utilisateurs une représentation visuellement convaincante de la distribution et de l'intensité du phénomène géographique.

Aujourd'hui, nous publions deux projets Desktop sur ce sujet. La première utilise les données sur la grippe porcine que nous avons utilisées dans un projet précédent. Vous pouvez voir à quel point la visualisation de ces données est puissante pour montrer la distribution spatiale des cas de grippe porcine. Dans le prochain projet, vous verrez comment prendre en compte les valeurs des colonnes pour produire divers degrés d'intensité à l'aide de certaines données sismiques. Dans ces deux projets, vous aurez besoin de références à MapSuiteCore.dll et DesktopEdition.dll.

Mettez en surbrillance au survol de la souris

Dans ce projet WPF, nous vous montrons comment mettre en évidence une fonctionnalité lorsque l'utilisateur passe le pointeur de la souris dessus.Cet effet peut être réalisé dans Map Suite en utilisant une minuterie et en effectuant des requêtes spatiales en fonction de l'emplacement du pointeur de la souris. Cet exemple fonctionne avec des entités basées sur des zones, mais la même chose pourrait être accomplie avec des entités basées sur des points ou des lignes simplement en utilisant différentes requêtes spatiales.

Carte de chaleur avec tremblements de terre

Après le projet d'affichage des données sur la grippe porcine à l'aide de la technique de la carte thermique, vous apprenez ici à appliquer des paramètres autres que la distribution strictement spatiale pour affecter la coloration de la carte.

Dans cet exemple, la magnitude de chaque séisme (de 0 à 12) est prise en compte pour influencer l'affichage de la carte thermique. Le résultat est que la Californie apparaît encore plus intense que si seule la distribution spatiale était prise en compte.

Comme pour le projet précédent, vous aurez besoin de références à MapSuiteCore.dll, DesktopEdition.dll. Comme mise en garde sur la carte thermique dans les SIG, il convient de mentionner que bien qu'il s'agisse d'un excellent outil pour afficher des données de manière très attrayante et communicative, il ne peut pas être utilisé comme outil d'analyse pour étudier les comportements spatiaux. Pour l'analyse spatiale, GRID est l'outil approprié. Bien qu'une carte thermique ressemble à un GRID, ce n'en est pas un et elle ne peut pas remplacer le GRID pour l'analyse spatiale.

Chargement du flux d'images

Au lieu de charger une image avec le fichier image du système de fichiers, vous pouvez choisir de transmettre votre propre flux. Ce projet vous montre comment utiliser l'événement StreamLoading de GdiPlusRasterSource à cette fin. Dans ce projet, nous montrons comment procéder à l'aide d'une image Tiff, mais vous pouvez également utiliser cet événement pour ShapeFileFeatureSource comme nous le montrons dans un projet précédent «Shapefile Encryption». Gardez à l'esprit que cette technique ne fonctionne qu'avec des images autres que MrSid, ECW et Jpeg2000. Ces types d'images ne fonctionnent pas car les fournisseurs ne prennent pas en charge les flux dans leurs SDK de décodage.

Extension KML

KML est le format de fichier permettant d'afficher des données géographiques dans un navigateur Google Earth tel que Google Earth. Désormais, vous pouvez également afficher un tel fichier sur un champ Map Suite. Grâce à son architecture flexible pour s'adapter à de nouveaux formats de fichiers, dans le projet d'aujourd'hui, nous avons écrit la logique de prise en charge de KML. Regardez la classe KmlfeatureSource héritant de FeatureSource pour voir comment la logique de lecture des fichiers FML a été implémentée. De plus, vous pouvez voir la classe KmlStyle hériter de Style pour la logique de dessin. Et n'hésitez pas à modifier et à améliorer ces classes avec vos propres implémentations.

Latitude Longitude Réticule

Après les projets sur North Arrow et Compass, nous avons créé un autre projet lié à Adornment Layer pour avoir une carte plus élégante et donner plus d'informations à l'utilisateur naviguant sur la carte.

Dans ce projet, nous créons une couche d'ornement de graticule qui montre les méridiens et les parallèles s'affichant sur la carte. Les méridiens sont des lignes de longitude et ils ont une orientation nord-sud. Les parallèles sont des lignes de latitude et elles ont une orientation Est-Ouest.
L'affichage du graticule pour la latitude et la longitude est un moyen standard en cartographie pour donner des références spatiales aux utilisateurs.

Vous trouverez deux fichiers zip. L'un est pour l'édition Desktop "LatLongGraticule" et il montre bien l'effet des méridiens et des parallèles lorsque vous effectuez un panoramique et un zoom avant et arrière. Vous verrez également, comme références spatiales supplémentaires aux utilisateurs, la latitude et la longitude au niveau du pointeur de la souris dans les étiquettes lors de l'événement de déplacement de la souris. Vous verrez ces informations au format degrés décimaux et au format Degrés Minutes Secondes.

Pour ceux qui n'ont pas l'édition Desktop, vous trouverez le fichier zip "LatLongGraticuleServices" pour l'édition Service. Il utilise exactement la même classe GraticuleAdormentLayer.

À l'avenir, nous offrirons une autre classe pour le graticule avec plus d'options pour le formatage et l'affichage du graticule. Il offrira également un support de projection pour les cartes qui ne sont pas en unités de carte en degrés décimaux.

Prise en charge native des fichiers TAB

L'une des nouvelles fonctionnalités les plus intéressantes de MapSuite 5.0 est la prise en charge native des fichiers TAB. Dans le passé, l'extension FDO était utilisée pour afficher les fichiers TAB dans MapSuite. Maintenant, avec le nouveau TabFeatureLayer, nous avons une méthode plus simple et plus stable pour travailler avec les fichiers TAB.

Ce projet de communauté de code montre comment charger et afficher un fichier TAB à l'aide du nouveau TabFeatureLayer. L'exemple vous permet également d'ajouter, de modifier et de supprimer des entités du fichier TAB.

Grille numérotée

Dans de nombreux atlas, vous pouvez voir des cartes avec une grille numérotée pour donner la référence de la page pour une carte plus détaillée. Dans le projet d'aujourd'hui, nous montrons comment construire une telle grille. En fonction de l'étendue de la fonctionnalité, du nombre de colonnes et de lignes, une grille peut être créée avec le numéro de page dans chaque cellule.

PopupOverlay

Dans ce projet Wpf, nous explorons plus de fonctionnalités de PopupOverlay et de sa collection de Popups. Avec la propriété Content, nous pouvons ajouter une TextBox ou tout autre contrôle à un Popup. Par exemple, nous montrons ici comment faire apparaître la valeur de la colonne d'une entité sélectionnée dans une fenêtre contextuelle sur l'événement utilisateur MapClick. Remarquez comment cette valeur de colonne peut être facilement modifiée en tapant dans la zone de texte de la fenêtre contextuelle et en validant la modification.

Enregistrer et charger l'état

Le but de ce projet Wpf est de montrer comment utiliser les nouveaux SaveState et LoadState de SimpleMarkerOverlay. Nous montrons comment vous pouvez simplement faire glisser les icônes pour modifier leur emplacement, enregistrer leur état dans un fichier, puis recharger l'état à partir de ce fichier. Pour que cet exemple fonctionne, vous devrez utiliser la dernière version quotidienne de production de « MapSuiteCore.dll » et « WpfDesktopEdition.dll », version 4.0.40.87 ou supérieure. Ce projet s'applique uniquement à Map Suite Wpf Desktop Edition.

Cryptage du fichier de formes

Dans le projet d'aujourd'hui, nous cherchons un moyen de crypter les fichiers de formes pour les empêcher d'être utilisés en dehors de l'application. Nous montrons comment crypter et décrypter des fichiers de formes à l'aide de flux. Vous verrez qu'un algorithme de cryptage très simple est utilisé mais en regardant l'exemple, vous pourrez implémenter le vôtre.

Avis de non-responsabilité : ce système de cryptage ne peut être utilisé que sur de petits fichiers de formes en raison de la quantité de mémoire utilisée. Une utilisation typique serait de crypter de précieux petits fichiers de formes auxquels vous ne voulez pas que vos utilisateurs accèdent. À l'avenir, Map Suite fournira un système de cryptage complet en tant qu'API .

Superposition WMTS

Ce projet montre comment consommer les données d'un serveur WMTS à l'aide de WmtsOverlay. Vous trouverez le code assez simple, tandis que dans les coulisses, nous demandons des tuiles au serveur de manière asynchrone et efficace, et les cousons dans une carte appropriée.
Cette classe est introduite à partir de la version 6.0.187.0, outre ce WmtsOverlay, nous avons également WmtsLayer disponible. Voici l'exemple WMTSLayer.

ENC Viewer pour l'affichage du fichier S-57 (*.000)

Le projet d'aujourd'hui est un outil d'ENC Viewer permettant d'afficher des cartes électroniques de navigation (ENC) non cryptées disponibles au format d'échange S-57 (*.000).
Cet outil utilise Map Suite HydrographyExtension pour afficher les données ENC conformément à la dernière version de la bibliothèque de présentation ECDIS Edition 4.0, qui est définie par l'Organisation hydrographique internationale (OHI) dans la publication spéciale S-52.

REMARQUE : le fichier de style « NauticalCharts.xml » pour le fichier de dessin S-57 (*.000) est inclus dans le package de code source.

GPS EXchange Format FeatureLayer

Cet exemple montre comment lire le fichier GPS EXchange Format (*.gpx) avec Map Suite. GPX (GPS Exchange Format) est un format de données XML léger pour l'échange de données GPS (points de cheminement, routes et traces) entre les applications et les services Web sur Internet, dont vous pouvez trouver plus d'informations :ici. Map Suite prend désormais en charge les schémas GPX 1.0 et 1.1. Cet exemple fonctionne avec la version 7.0.275.0 ou ultérieure de la branche de développement de Map Suite.

Maritime S57 FeatureLayer

Cet exemple montre comment afficher des cartes électroniques de navigation (ENC) non cryptées disponibles dans le format d'échange S-57 (*.000). Il suit le schéma de style défini dans la dernière version de la bibliothèque de présentation ECDIS Edition 4.0 (S-52), qui est publiée par l'Organisation hydrographique internationale (OHI).

REMARQUE : cet exemple fonctionne avec la version 9.0.31.0 ou ultérieure de la branche de développement de Map Suite, les dépendances non gérées de Map Suite 9.0.31.0.msi ou une version ultérieure doivent être installées.

Construire des index de fichiers de formes personnalisés

Cet exemple montre comment afficher un sous-ensemble d'un fichier de formes sans fractionner le fichier de formes physique. Par exemple, vous pouvez avoir un seul fichier de formes qui contient à la fois des autoroutes et des routes locales. Pour améliorer la vitesse d'affichage, vous pouvez être tenté de le diviser en deux fichiers de formes distincts afin de pouvoir afficher rapidement les routes locales avec un style et les autoroutes avec un autre style (et éviter d'utiliser un style de valeur, qui peut être lent). Mais dans ce projet, plutôt que de diviser votre fichier de formes, vous pouvez simplement créer deux index personnalisés, un pour chaque type de route. Ensuite, lorsque vous créez votre ShapeFileFeatureLayer, vous utilisez simplement votre fichier de formes d'origine et spécifiez un index personnalisé. Chaque index personnalisé limitera les enregistrements visibles par la couche, ce qui la rendra très rapide et efficace.

CAO FeatureLayer

Cet exemple montre comment vous pouvez lire les données d'un fichier CAO (*.dwg, *.dxf) dans vos applications SIG Map Suite, et comment les rendre avec un style intégré CAO ainsi qu'un style personnalisé. Il fonctionne avec la version de développement quotidienne de Map Suite 7.0.46.0 ou une version ultérieure, et la configuration des dépendances non gérées 7.0.46.0 ou une version ultérieure doit être installée pour que l'exemple fonctionne. Cette prise en charge de fichier Cad fonctionnerait dans tous les contrôles Map Suite tels que WPF Desktop Edition, Silverlight Edition, Web Edition, MVC Edition. Les assemblages de dépendances CAO peuvent être téléchargés à partir de http://wiki.thinkgeo.com/wiki/File:MapSuiteCADDependencies8.0.109.0.zip

TAB FeatureLayer avec style d'intégration

Cet exemple montre comment vous pouvez lire les données d'un fichier Tab (*.tab) dans vos applications SIG Map Suite, et comment les rendre avec le style intégré Tab ainsi qu'un style personnalisé. Il fonctionne avec la version de développement quotidienne 8.0.208.0 ou ultérieure de Map Suite. Cette prise en charge du fichier d'onglet fonctionnerait dans tous les contrôles Map Suite tels que WPF Desktop Edition, Silverlight Edition, Web Edition, MVC Edition.

Boussole

Dans le projet "North Arrow", vous avez vu comment étendre AdornmentLayer pour créer un North Arrow AdormentLayer. Dans ce projet, nous développons cette idée et créons une classe plus sophistiquée. Vous verrez comment vous pouvez combiner deux images pour créer une boussole. Comparé au projet "North Arrow", nous avons également ajouté d'autres propriétés pratiques telles qu'une propriété Position. De plus, la boussole peut être de tailles variées grâce à la propriété SizePercentage. Enfin, si vous ne passez qu'une seule image, la boussole peut se comporter comme une flèche nord normale.
Nous avons également ajouté de nouveaux modèles de boussole en version plus petite. Voir le fichier joint : Boussole rotative New Smaller Designs.zip

Fichier de géodatabase

Cet exemple montre comment vous pouvez lire des données à partir d'une base de données FileGeodata ESRI dans vos applications SIG Map Suite. L'exemple lira les données de 3 tables d'une FileGeodatabase, et vous trouverez le code aussi simple que de consommer n'importe quelle autre source de données dans Map Suite. Il fonctionne avec Map Suite daily development build version 6.0.115.0 ou ultérieure, et vous devrez exécuter le programme d'installation « Setup Unmanaged Dependencies » à partir de votre package de build quotidien pour que l'exemple fonctionne. L'exemple FileGeodatabase fonctionne dans tous les Map Suite contrôles tels que WPF Desktop Edition, Silverlight Edition, Web Edition, MVC Edition et ainsi de suite.

Connecter des données externes à Shapefile

Cet exemple montre comment connecter des données externes à un fichier de formes. Les formes des États américains proviennent d'un fichier de formes tandis que les valeurs de population pour Washington et New York proviennent d'une base de données externe. À partir de cet exemple, nous pouvons voir comment utiliser l'événement FeatureSource.CustomColumnFetch pour introduire une source de données externe et utiliser les objets Dictionary pour mettre en cache les données externes.

Isolines

Dans cet exemple, nous montrons comment vous pouvez utiliser Map Suite pour ajouter des isolignes (communément appelées courbes de niveau) à votre application .NET. Les isolignes sont un moyen de visualiser les ruptures entre différents groupes de données telles que les niveaux d'altitude, les propriétés du sol ou à peu près tout ce que vous pouvez imaginer. Cet exemple montre également les différentes étapes de la création d'isolignes, y compris la collecte de données ponctuelles, la création d'une grille à l'aide d'une interpolation et enfin, la sélection de vos niveaux de rupture d'isoligne. Nous plongeons également rapidement dans des options plus avancées telles que la génération d'isolignes à la volée.

Pour rassembler tout cela, consultez notre vidéo d'instructions qui vous guidera tout au long du processus de configuration et d'utilisation des isolignes dans Map Suite.

Veuillez noter que vous aurez besoin de la version 5.0.87.0 ou plus récente de Map Suite pour utiliser les isolignes. Pour plus d'informations sur la mise à niveau, consultez le guide Map Suite Daily Builds.

À partir de la version 6.0.187.0, l'échantillon a été mis à jour pour que les polygones puissent également être renvoyés en tant que résultats IsoLines. Vous avez besoin de la version 6.0.187.0 ou plus récente de Map Suite pour utiliser cet exemple.

Isolines avec Krigeage

Dans cet exemple, nous montrons comment générer des isolignes (communément appelées courbes de niveau) à l'aide de modèles d'interpolation de krigeage. Nous avons intégré 5 modèles d'interpolation de krigeage (circulaire, exponentiel, gaussien, linéaire, sphérique) dans Map Suite que vous pouvez voir à partir de l'échantillon sont puissants et très simples à utiliser. Il fonctionne avec Map Suite 6.0.126.0 ou version ultérieure.

MapShapes

L'une des fonctionnalités les plus demandées de Map Suite 3.0 est MapShapes. Pour ceux qui ne sont pas familiers avec MapShapes, dans Map Suite 2.0, il s'agissait d'un groupe de fonctionnalités autonomes qui avaient leurs propres styles, projections et données de colonne. Cela signifiait que chacun pouvait être unique, mais cela signifiait également que vous deviez spécifier tous les attributs de chaque MapShape.

En travaillant avec des clients utilisant MapShapes pendant plusieurs années, nous avons trouvé un modèle commun. Tout d'abord, les utilisateurs ont essayé MapShapes en en ajoutant un à l'écran. C'était très simple et les a rapidement mis en place. Ils en ont ensuite ajouté quelques-uns au fur et à mesure qu'ils commençaient à développer leur application. Après un court laps de temps, ils ont réalisé qu'il était difficile de définir la projection, les styles, les niveaux de zoom, etc. sur autant de MapShapes, d'autant plus que les MapShapes représentaient souvent le même type de fonctionnalité sous-jacente, comme une bouche d'incendie ou un barrage routier. Le problème était qu'il n'y avait pas de bonne solution avec Map Suite 2.0 pour gérer de nombreuses fonctionnalités dynamiques très similaires.

Lors de la conception de Map Suite 3.0, nous en avons tenu compte et avons créé InMemoryFeatureLayer et InMemoryFeatureSource. Ceux-ci vous ont permis de traiter tous les mêmes types de fonctionnalités similaires comme s'il s'agissait d'un seul groupe, ce qui a résolu de nombreux problèmes. Ce que nous avons découvert plus tard, c'est que cela rendait la tâche plus difficile pour les cas où vous aviez vraiment des dizaines ou des centaines de fonctionnalités qui étaient chacune unique et que vous deviez les représenter comme telles. N'ayant pas implémenté MapShapes, nous avons été pris avec un trou dans notre offre.

Pour combler cette lacune, nous présentons un projet de simple MapShapeLayer. Il s'agit d'une version simple d'une version plus puissante que nous inclurons dans le cadre du noyau dans un proche avenir. Ce qui nous a vraiment frappé lorsque nous avons créé ce nouveau calque, c'est à quel point c'était facile à faire ! C'est un témoignage de notre cadre 3.0 et nous avons décidé d'inclure la section ci-dessous sur la façon dont nous l'avons mis en œuvre.
Notes du développeur :

Succès! C'était à peu près aussi facile que je le pensais. Tout le gros du travail a été fait par les classes existantes et tout ce dont j'avais besoin était un petit code de colle. Rétrospectivement, j'aurais aimé faire cela en héritant de la FeatureLayer et de la FeatureSource, car cela aurait alors rendu la couche accessible par des requêtes spatiales. Pour gagner du temps, et pour pouvoir poster ça le plus vite possible sur nos forums, j'ai hérité de Layer, ce qui est vraiment simple. Vous pouvez voir que les commentaires et mes notes ici prennent plus de place que le code lui-même !

Je pense que vous constaterez que cela fonctionne presque exactement comme les MapShapes 2.0. Il ne prend pas en charge la projection cependant, je pense que cela pourrait être facilement ajouté. Nous allons créer une version de production de cette classe à inclure dans le framework dans un avenir proche, et si la projection est en effet facile à ajouter, elle prendra en charge la projection et les requêtes spatiales.

En un mot, ce que j'ai fait était de créer une classe MapShape qui abritait un ZoomLevelSet et une seule fonctionnalité. Le ZoomLevelSet contient tous les niveaux de zoom, styles, etc., de sorte que cette partie était agréable à réutiliser. J'ai associé cela à un nouveau type de calque. J'ai créé MapShapeLayer en héritant de Layer. La seule surcharge requise était Draw, ce qui était bien. J'ai ajouté à la classe une GeoCollection MapShape's pour stocker toutes vos MapShapes. Dans le Draw, j'ai simplement parcouru les MapShapes, et pour chacun d'eux, j'ai trouvé le niveau de zoom qui serait en train de dessiner et j'ai appelé sa méthode Draw. En quelques lignes de code, tout s'est mis en place.


5. MapTiler - Mosaïques de service de carte en mosaïque

Grâce à un certain nombre de projets de collaboration, NLS a activement préparé des Tile Map Services (TMS) de cartes géoréférencées historiques pour la livraison sur le Web au cours des dernières années. Nous avons maintenant plus de 100 mosaïques TMS occupant environ 1,2 To d'espace disque, se concentrant sur l'Écosse, mais couvrant également l'Irlande, la Grande-Bretagne et la Belgique. Ceux-ci inclus:

  • Ordnance Survey dix milles au pouce Planning Maps of Great Britain (années 1940-1950)
  • Ordnance Survey un pouce et 1:25 000 mosaïques de Grande-Bretagne (années 1940-1950)
  • Three Ordnance Survey mosaïques d'un pouce au mile de l'Écosse (années 1880-1950)
  • 62 Plans urbains à grande échelle de l'Ordnance Survey des villes écossaises (1847-1895)
  • 33 cartes bathymétriques des lochs écossais (1897-1909)
  • 221 Mosaïques de photos aériennes de l'Écosse (années 1940)
  • 30 cartes d'Édimbourg (1765-1945)
  • Bartholomew (1:253,440) et War Office (1:63,360) cartes de l'Irlande (années 1940)
  • Cartes du British War Office (1 : 250 000–1 : 50 000) de la Belgique (années 1940).

Ces mosaïques ont été préparées sous forme de tuiles TMS, comme décrit par Pridal et Zabicka (2008) , fournissant un ensemble de tuiles d'images pré-rendues à des échelles fixes. Nous avons trouvé que les ensembles de tuiles TMS offrent un moyen très rapide et fiable de fournir rapidement de grandes mosaïques sur le Web, avec des tuiles pré-créées à un ensemble de niveaux de zoom pour une projection et une référence spécifiques. Comme Google Maps, Microsoft Bing et d'autres API de données géographiques utilisent le même profil de projection et de tuilage, les étendues de toutes les tuiles ainsi que les niveaux de zoom sont prédéfinis pour toute la Terre sur la projection sphérique de Mercator (voir aussi Tuiles à la Google Cartes : coordonnées, limites des tuiles et projection pour plus d'informations).

Le programme de ligne de commande open source GDAL2Tiles et son développement ultérieur en tant qu'interface graphique MapTiler ont été utilisés pour créer les ensembles de tuiles. 4 Le logiciel MapTiler est très simple et puissant, avec d'excellents résultats.5 Certaines de ces cartes géoréférencées ont également été utilisées pour créer une API de cartes historiques en créant un jeu de tuiles de cartes historiques de la Grande-Bretagne des années 1920 aux années 1940, puis en les distribuant sur plusieurs serveurs pour un accès rapide et fiable (Fleet & Pridal, à paraître 2012). Lors de leur création, les ensembles de tuiles peuvent être chargés sur n'importe quel serveur Web et rendus disponibles via des fichiers HTML frontaux facilement personnalisables sous forme de superpositions géoréférencées dynamiques avec une transparence réglable (Figure 3). Notre page principale de superpositions de cartes a enregistré plus de 10 000 pages vues au cours de la dernière année, mais cela ignore toute l'utilisation directe des tuiles dans d'autres applications. Les ensembles de tuiles peuvent être facilement consommés par OpenStreetMap 6 , et ils ont également été largement utilisés dans le projet Visualizing Urban Geographies ( Rodger et al., 2009 ), sous forme de tuiles à l'aide de l'API Google Map et dans ExtMap. Un script Python connexe, également développé par Petr Pridal, crée les fichiers de formes nécessaires pour fournir le même jeu de tuiles qu'un service de carte Web OGC à l'aide de MapServer. Nous avons également rendu les ensembles de tuiles disponibles sous forme de superpositions dans notre application GeoServer/OpenLayers en tant que visualiseur de mosaïques (voir ci-dessous).

Une superposition TMS générée par MapTiler pour une carte historique de Bartholomew d'Édimbourg en 1891 (à gauche) avec la transparence supprimée pour comparer avec l'imagerie satellite moderne de Google (à droite).


7. Gestion des entrées utilisateur avec les contrôleurs

La capacité de gérer les événements d'entrée sur l'écran tactile est une partie importante de votre application. LuciadMobile fournit des commandes intégrées pour les tâches les plus courantes telles que le panoramique et le zoom sur une carte. Ces contrôles sont automatiquement activés lors de la création d'un nouveau TLcdMapView . Pour obtenir une interaction plus sophistiquée, vous pouvez implémenter vos propres contrôleurs personnalisés. Vous pouvez le faire en étendant la classe ALcdController.

Vous pouvez activer et désactiver les contrôleurs en appelant la méthode TLcdMapView.setController(). Lorsque cette méthode est appelée, tout contrôleur précédemment configuré est désactivé et le contrôleur nouvellement configuré est activé. Les contrôleurs en question sont notifiés de ce changement d'état via les méthodes ALcdController.onDeactivate() et ALcdController.onActivate() respectivement.

7.1. Gérer la création et la manipulation des caractéristiques vectorielles par les utilisateurs

LuciadMobile prend en charge la création et l'édition interactives de fonctionnalités vectorielles à l'aide d'extensions d'ALcdController . Par défaut, toutes les couches d'entités sont modifiables, mais vous pouvez désactiver cette propriété à l'aide de la méthode setEditable.

7.1.1. Création de nouvelles entités vectorielles

ALcdCreateController permet d'initier une session interactive de création d'entités vectorielles. Par défaut, le sommet peut être placé en appuyant sur l'écran tactile ou en utilisant un dessin à main levée. Selon ce que l'utilisateur doit dessiner, le mode de dessin et le nombre minimum/maximum de points peuvent être configurés.

Pour plus de commodité, LuciadMobile fournit également une implémentation concrète, TLcdCreateController . Ce contrôleur implémente ALcdCreatecontroller.onCreateNewObject() en créant une nouvelle forme basée sur un jeton de type de forme qui est passé à son constructeur. Si le modèle de la couche cible contient des instances ILcdDataObject, il encapsulera également la forme dans une instance d'objet de données.

Programme : L'utilisation de `TLcdCreateController`, extrait de com.luciad.samples.creation , illustre l'utilisation de TLcdCreateController .

Veuillez vous référer aux exemples com.luciad.samples.creation et com.luciad.samples.annotatedshapes pour des illustrations complètes.

7.1.2. Modification d'entités vectorielles existantes

Édition graphique

LuciadMobile fournit une prise en charge intégrée de l'édition d'entités vectorielles graphiques. Une session d'édition graphique est lancée à l'aide de TLcdEditController . Au cours d'une session d'édition graphique, la géométrie ou la position de la forme peut être modifiée en faisant glisser la forme elle-même ou l'un de ses sommets ou points de contrôle. Voir Figure 9, &ldquoModification graphique d'une forme de flèche&rdquo pour un exemple.

Lorsqu'un objet est en cours d'édition, une validation est effectuée uniquement à la fin d'une session d'édition. Cela signifie que les mises à jour fréquentes de la base de données pendant l'édition sont évitées.

Édition textuelle des caractéristiques vectorielles via le menu contextuel

L'API LuciadMobile vous permet de définir des actions personnalisées ( ALcdObjectAction ) qui peuvent être exécutées à partir du menu contextuel, la boîte de dialogue affichée lorsqu'un utilisateur appuie longuement (appuyez et maintenez) sur un objet. Voir Figure 10, &ldquoPersonnalisé Type d'unité action ajoutée à la Éditer dialogue d'un TLcdFeatureLayer .&rdquo pour un exemple. Vous pouvez ajouter l'action à n'importe quel TLcdFeatureLayer à l'aide de la méthode addContextMenuAction. Ces actions sont généralement utilisées pour éditer ou changer les propriétés textuelles d'un objet de domaine.

Reportez-vous aux exemples com.luciad.samples.annotatedshapes et com.luciad.samples.icons.ms2525 pour des exemples d'implémentations de ALcdObjectAction .

7.1.3. Suppression d'entités vectorielles

Vous pouvez supprimer des entités vectorielles en les supprimant de leur modèle de conteneur. Pour plus de commodité, LuciadMobile fournit la classe TLcdDeleteObjectAction qui fait exactement cela.

7.2. Implémentation de l'interaction utilisateur personnalisée

En plus d'utiliser les contrôleurs de création et de modification par défaut, vous pouvez également créer des contrôleurs personnalisés en implémentant ALcdController . Cela vous permet d'intégrer une interaction utilisateur personnalisée dans votre application.

7.2.1. Gestion des gestes de l'utilisateur et des frappes de touches

Les extensions d'ALcdController peuvent répondre aux événements d'entrée en remplaçant les méthodes ALcdController.onGestureEvent(TLcdGestureEvent) et ALcdController.onKeyEvent(TLcdKeyEvent).

TLcdGestureEvent est utilisé pour décrire les événements de mouvement entrants. La classe TLcdGestureEvent sert de wrapper pour la classe Android MotionEvent. Il convertit également les événements de mouvement bruts, tels que ACTION_CANCEL et ACTION_DOWN , en gestes de niveau supérieur tels que DOUBLE_TAP et LONG_PRESS . Cela facilite la création rapide de contrôleurs personnalisés. L'objet Android MotionEvent d'origine peut être obtenu à l'aide de la méthode getMotionEvent().

De même, TLcdKeyEvent fournit un wrapper pour les instances Android KeyEvent. L'implémentation par défaut de ALcdController.onKeyEvent(TLcdKeyEvent) répond aux pressions de la touche Retour en désactivant le contrôleur.

Les implémentations de contrôleur peuvent également utiliser la classe TLcdMapNavigator pour se déplacer et zoomer sur la carte. Une instance TLcdMapNavigator peut être obtenue à partir du TLcdMapView .

Programme : Gestion d'un événement gestuel. illustre l'utilisation d'un TLcdGestureEvent pour gérer les événements de mouvement entrants. Voir l'exemple dans com.luciad.samples.customcontrollers pour plus d'exemples de gestion d'événements.

7.2.2. Effectuer une peinture personnalisée avec ALcdGeoCanvas

Vous pouvez utiliser ALcdGeoCanvas pour effectuer une peinture personnalisée dans votre contrôleur, similaire à son utilisation dans ALcdFeaturePainter . Pour plus d'informations, reportez-vous à la Section 6.1.2, &ldquoUtiliser ALcdGeoCanvas pour un dessin personnalisé&rdquo.

Programme : L'implémentation personnalisée de « ALcdController » qui illustre l'utilisation de « ALcdGeoCanvas » montre un exemple de peinture personnalisée à l'aide d'ALcdGeoCanvas à partir de la méthode controller&rsquos onDraw.

Les implémentations du contrôleur doivent appeler ALcdController.invalidate() chaque fois que les informations précédemment peintes deviennent obsolètes. Cela sert de signal que le contrôleur souhaite redessiner son contenu et garantit que ALcdController.onDraw(ALcdGeoCanvas) est appelé lors du prochain rafraîchissement de la carte. Sinon, il n'y a aucune garantie que la méthode onDraw sera invoquée.

7.2.3. Pipeline d'événements de mouvement

Lorsqu'un événement de mouvement est enregistré, il est envoyé dans un pipeline pour déterminer où il doit être consommé. Le point d'entrée de tous les événements de mouvement est la méthode onTouchEvent de la classe TLcdMapView. Cela encapsule l'objet Android MotionEvent dans un TLcdGestureEvent et lui attribue le type TLcdGestureEvent.GestureType.NO_GESTURE. Un événement sans type de geste attribué est un événement d'entrée brut pour lequel aucun geste spécifique (panoramique, défilement, &mldr&NegativeThinSpace ) n'a encore été identifié.

Pour autoriser toutes sortes de contrôles personnalisés, les événements de mouvement bruts entrants sont d'abord transmis à votre contrôleur personnalisé. N'oubliez pas que vous devez activer ce contrôleur en appelant la méthode TLcdMapView.setController() pour recevoir les événements de mouvement entrants.

Si les événements de mouvement entrants ne sont pas consommés par votre contrôleur ( EVENT_IGNORED ), ils sont propagés aux classes de détecteur de mouvements Android. Lorsqu'un geste spécifique tel qu'un panoramique ou un défilement est détecté, le GestureType du TLcdGestureEvent associé est mis à jour. Par souci de cohérence, les GestureTypes sont nommés d'après leurs homologues Android. Selon le type de geste, le TLcdGestureEvent peut également être converti en TLcdFlingGestureEvent , TLcdPinchGestureEvent ou TLcdScrollGestureEvent pour récupérer plus d'informations.

Une fois qu'un événement de mouvement est identifié comme un geste spécifique, il est propagé une fois de plus à votre contrôleur personnalisé. Si l'événement n'est pas consommé par votre contrôleur, il est envoyé aux contrôleurs par défaut qui sont actifs sur le TLcdMapView (panoramique, zoom, sélection, &mldr&NegativeThinSpace ). Cela vous permet de définir des contrôleurs personnalisés tout en permettant à l'utilisateur de zoomer et de se déplacer sur la carte.


1. Base

Les capacités requises spécifiées dans cette clause servent de base pour les options spécifiées dans la clause Options et extensions spécifiées dans la clause Extensions enregistrées. Toutes les tables et vues gpkg_* et toutes les tables de données utilisateur de tuiles spécifiées dans cette norme DOIVENT avoir uniquement les colonnes et les contraintes de table spécifiées. Toutes les fonctionnalités des tables de données utilisateur PEUVENT avoir des colonnes en plus de celles spécifiées. Toutes les valeurs de nom de table et de colonne spécifiées DEVRAIENT être en minuscules.

1.1. Cœur

Les capacités de base obligatoires définies dans les sous-clauses et les déclarations d'exigences de cette clause DOIVENT être mises en œuvre par chaque GeoPackage et Configuration SQLite du GeoPackage.

1.1.1. Conteneur SQLite

La bibliothèque de logiciels SQLite fournit un conteneur SGBDR open source, transactionnel, multiplateforme, sans serveur et autonome. La spécification GeoPackage définit un schéma de base de données SQL conçu pour être utilisé avec la bibliothèque logicielle SQLite. L'utilisation de SQLite comme base pour GeoPackage simplifie la production, la distribution et l'utilisation des GeoPackages et aide à garantir l'intégrité des données qu'ils contiennent.

« Autonome » signifie que le logiciel de conteneur nécessite une prise en charge très minimale des bibliothèques externes ou du système d'exploitation. « Un seul fichier » signifie qu'un conteneur qui n'est actuellement ouvert par aucune application logicielle se compose d'un seul fichier dans un système de fichiers pris en charge par un système d'exploitation de plate-forme informatique. « Multiplateforme » signifie qu'un fichier conteneur PEUT être créé et chargé avec des données sur une plateforme informatique, et utilisé et mis à jour sur une autre, même s'ils utilisent des systèmes d'exploitation, des systèmes de fichiers et des conventions d'ordre des octets (endian) différents. « Sans serveur » signifie que le conteneur SGBDR est mis en œuvre sans aucun processus de serveur intermédiaire et accessible directement par le logiciel d'application. « Transactionnel » signifie que les transactions SGBDR garantissent que toutes les modifications apportées aux données dans le conteneur sont atomiques, cohérentes, isolées et durables (ACID) malgré les plantages du programme, les plantages du système d'exploitation et les pannes de courant.

Format de fichier

Un GeoPackage DOIT être un fichier de base de données SQLite [5] utilisant la version 3 du format de fichier SQLite [6] [7]. Les 16 premiers octets d'un GeoPackage DOIVENT contenir « SQLite format 3 » [1] en ASCII [B4]. [2]

Un GeoPackage DOIT contenir 0x47503130 ("GP10" en ASCII) dans le champ d'ID d'application de l'en-tête de la base de données SQLite pour indiquer un fichier GeoPackage version 1.0. [3]

La taille maximale d'un fichier GeoPackage est d'environ 140 To. En pratique, une taille limite inférieure PEUT être imposée par le système de fichiers sur lequel le fichier est écrit. De nombreux appareils mobiles nécessitent le formatage des cartes mémoire externes à l'aide du système de fichiers FAT32 qui impose une limite de taille maximale de 4 Go.

Nom de l'extension de fichier

Un GeoPackage DOIT avoir le nom d'extension de fichier ".gpkg".

Il est RECOMMANDÉ que les GeoPackages étendus utilisent l'extension de fichier ".gpkx", mais ce n'est PAS une exigence GeoPackage.

Contenu du fichier

Un GeoPackage NE DOIT contenir que des éléments de données, des constructions SQL et des extensions GeoPackage avec le nom d'auteur "gpkg" spécifié dans cette norme de codage.

Afin de garantir une interopérabilité maximale entre les applications, les GeoPackages NE DOIVENT PAS contenir d'éléments de données (tables ou colonnes), de constructions SQL (types de données, index, contraintes ou déclencheurs) ou d'extensions non spécifiées dans cette norme de codage. Les bases de données SQLite qui utilisent des constructions de la spécification GeoPackage mais qui l'étendent pour contenir l'un de ces éléments sont appelées GeoPackages étendus tout au long de cette spécification.

Les colonnes des tables d'un GeoPackage DEVRAIENT uniquement être déclarées en utilisant l'un des types de données spécifiés dans la table GeoPackage Data Types.

Entier de complément de deux’s signé 16 bits. Stocké en tant que SQLite INTEGER avec des valeurs comprises dans la plage [-32768, 32767]

Entier de complément à deux’s signé 32 bits. Stocké en tant que SQLite INTEGER avec des valeurs comprises dans la plage [-2147483648, 2147483647]

Entier de complément de deux & 8217s signé 64 bits. Stocké en tant que SQLite INTEGER avec des valeurs comprises dans la plage [-9223372036854775808, 9223372036854775807]

Nombre à virgule flottante IEEE 32 bits. Stocké en tant que SQLite REAL limité aux valeurs pouvant être représentées sous la forme d'un nombre à virgule flottante IEEE de 4 octets

Nombre à virgule flottante IEEE 64 bits. Stocké en tant que SQLite REAL

Chaîne de longueur variable codée en UTF-8 ou UTF-16, déterminée par le codage PRAGMA voir http://www.sqlite.org/pragma.html#pragma_encoding. L'option maxchar_count définit le nombre maximum de caractères dans la chaîne. Si elle n'est pas spécifiée, la longueur est illimitée. Le compte est fourni à titre informatif, et les applications PEUVENT choisir de tronquer des chaînes plus longues si elles sont rencontrées. Lorsqu'il est présent, il est recommandé que les applications respectent le nombre de caractères. Stocké en tant que TEXTE SQLite

Données binaires de longueur variable. L'option max_size définit le nombre maximal d'octets dans le blob. Si elle n'est pas spécifiée, la longueur est illimitée. La taille est fournie à titre informatif. Lorsqu'elles sont présentes, il est recommandé que les applications respectent la taille maximale des objets blob. Stocké en tant que BLOB SQLite

Géométrie codée conformément à la clause Geometry Encoding. <geometry type_name> est l'un des types de géométrie répertoriés dans Geometry Types (Normative) encodé selon la clause 2.1.3 ou un type de géométrie défini par l'utilisateur encodé selon la clause 3.1.2 et User-Defined Geometry Types Encoding Extension Template (Normative). Types de géométrie Les géométries XY, XYZ, XYM et XYZM utilisent le même type de données. Stocké en tant que BLOB SQLite

Chaîne de date ISO-8601 au format AAAA-MM-JJ codée en UTF-8 ou UTF-16. Voir TEXTE. Stocké en tant que TEXTE SQLite

Intégrité du fichier

La commande SQLite PRAGMA Integrity_check SQL DEVRA retourner « ok » pour un fichier GeoPackage. [4]

Le SQLite PRAGMA foreign_key_check SQL sans valeur de paramètre DOIT retourner un ensemble de résultats vide indiquant aucune valeur de clé étrangère invalide pour un fichier GeoPackage.

Langage de requête structuré (SQL)

Une configuration GeoPackage SQLite DOIT fournir un accès SQL au contenu GeoPackage via les API logicielles SQLite version 3 [6]. [5]

Chaque configuration GPKG SQLite

La bibliothèque SQLite [8] a de nombreuses options de temps de compilation et d'exécution qui PEUVENT être utilisées pour configurer SQLite pour différentes utilisations. Certains éléments de la spécification GeoPackage dépendent de la disponibilité de la fonctionnalité SQLite au moment de l'exécution. Cette clause spécifie l'ensemble des options de compilation et d'exécution qui DEVRAIENT ou NE DEVRA PAS être utilisées.

Chaque configuration GeoPackage SQLite DOIT avoir les options de compilation et d'exécution de la bibliothèque SQLite spécifiées dans le tableau de la clause 1.1.1.2.2 Chaque configuration GeoPackage SQLite.


Sites Web / Projets référencés :

Géoréférenceur de la British Library http://www.bl.uk/maps/ & http://vimeo.com/36419466.
Serveur d'images Djatoka JPEG 2000 http://sourceforge.net/apps/mediawiki/djatoka/.
GDAL http://www.gdal.org/.
Géoréférenceur http://www.georeferencer.org.
GéoServeur http://geoserver.org/display/GEOS/Bienvenue.
Serveur d'images IIPImage JPEG2000/TIFF http://iipimage.sourceforge.net/documentation/server/.
Serveur LizardTech Express http://www.lizardtech.com/products/exp/.
Recherche MapRank http://www.klokantech.com/mapranksearch/.
MapTiler http://www.maptiler.org/.
MapWarper http://warper.geothings.net/.
Conversion de référence de grille de type mobile http://www.movable-type.co.uk/scripts/latlong-gridref.html.
Géoréférenceur NLS http://geo.nls.uk/maps/georeferencer/.
Visionneuse de mosaïque NLS http://geo.nls.uk/search/mosaic/.
Visionneuse de feuilles NLS http://geo.nls.uk/search/.
Superpositions du service de carte en mosaïque NLS http://geo.nls.uk/maps/.
Old Maps Online — projet MZK original http://help.oldmapsonline.org/.
Anciennes cartes en ligne — portail de recherche http://www.oldmapsonline.org/.
OpenLayers http://openlayers.org/.
OSGeo4W http://trac.osgeo.org/osgeo4w/.
OS OpenData http://www.ordnancesurvey.co.uk/oswebsite/products/os-opendata.html.
Visualiser les géographies urbaines http://geo.nls.uk/urbhist/.

Voir la vidéo: How to convert UTM to Lat Long. Khmer HD