Suite

Récupérer les attributs d'une entité GeoJSON dans openlayers 3

Récupérer les attributs d'une entité GeoJSON dans openlayers 3


Je travaille sur une carte Web en utilisantOpenLayers 3et des couches vectorielles,geoJSON. J'ai réussi à rendre les calques et à ajouter des interactions de clic :

select = new ol.interaction.Select({ condition : ol.events.condition.mouseclicked, style : myStyle, }); var map = new ol.Map({ interactions: ol.interaction.defaults().extend([select]),

L'interaction fonctionne bien, elle définit un nouveau style pour l'élément sélectionné (frontières du pays sélectionné, etc.).

Ce que je veux, c'est récupérer l'identifiant de l'entité sélectionnée à partir du fichier geoJSON et l'utiliser pour savoir quel pays est sélectionné. Selon le pays sélectionné, un réseau (lignes) sera tiré de ce pays vers d'autres pays, extrait d'une base de données.

Y-a-t'il une façon de le faire? J'ai essayé ce qui suit (sans formatage approprié):

select = new ol.interaction.Select({ condition : ol.events.condition.mouseclicked, style : myStyle, }); var features = select.getFeatures(); var feature = features.item(0); var id = feature.getId();

Cela me donne unidentifiantqui n'est pas défini même si l'entité a unidentifiantdans le fichier geoJSON.

Y a-t-il une autre façon de faire cela? J'ai cherché sur le net et sur ce forum sans trouver de réponse.

Ceci est un extrait de mon fichier geoJSON, toutes les fonctionnalités ont les mêmes propriétés :

{ "type": "FeatureCollection", "crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" } }, " features": [ { "type": "Feature", "properties": { "sovereignt": "Afghanistan", "id": 1 }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ 61.210817091725744

As-tu essayé:

var id = feature.get('id');

Pour autant que je sache

var id = feature.getId();

vous donne un identifiant de fonctionnalité OL3 interne, pas l'identifiant JSON.


vous devez définir l'identifiant en dehors des propriétés… votre geoJson devrait ressembler à ça :

{ "type": "FeatureCollection", "crs": { "type": "name", "properties": { "name": "urn:ogc:def:crs:OGC:1.3:CRS84" }, "features ": [ { "type": "Feature", "id": 1 , "properties": { "sovereignt": "Afghanistan"}, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ 61.210817091725744… ] ] ] ]…

Merci pour les réponses ! La solution dans ce cas était :

var id = feature.get('id');

Cela renvoie l'identifiant geoJSON.

Alors que:

var id = feature.getID();

renvoie l'identifiant openLayers, tout comme Anders Finn l'a souligné ci-dessus.

Merci encore pour le guidage !


Récupérer les attributs d'une fonctionnalité GeoJSON dans openlayers 3 - Systèmes d'information géographique

Règle d'encodage INSPIRE UML vers GeoJSON

  • Cas d'utilisation
  • Thèmes
  • Problèmes techniques
  • Limites techniques
  • Exigences transversales d'INSPIRE
  • Les types
  • Propriétés
  • Les associations
  • Exigences et recommandations
  • Mappage du modèle conceptuel au modèle logique GeoJSON
  • Systèmes de référence de coordonnées alternatifs
  • Identifiants

Ce document est le résultat de Action 2017.2 sur les codages alternatifs pour les données INSPIRE.

L'action visait à définir des règles de codage alternatives (principalement à des fins de visualisation/analyse dans les systèmes SIG traditionnels) pour un certain nombre de schémas d'application sélectionnés, ainsi qu'un modèle et une procédure pour proposer et approuver des règles de codage supplémentaires à l'avenir.

Des propositions de règles de codage alternatives ont été collectées via un appel ouvert sur la plate-forme de collaboration MIG et classées par ordre de priorité par les représentants des États membres dans une enquête. Les résultats de l'enquête ont clairement montré la prise en charge de GeoJSON comme codage alternatif possible. En outre, le GML simplifié, les formats de base de données (geopackage, PostGIS, ESRI Geodatabase) et les données liées ont été pris en charge de manière significative. D'autres propositions comprenaient également GeoSciML comme un codage alternatif pour GE et MR.

Lors de la 48e réunion du MIG-T, il a été convenu de poursuivre les travaux 2017.2 dans un sous-groupe axé sur les tâches suivantes :

  • développer une règle d'encodage pour GeoJSON (comme premier exemple)
  • développer des règles / approches génériques pour simplifier les modèles de données INSPIRE (qui seront utiles pour un certain nombre d'encodages alternatifs)
  • développer la procédure globale pour proposer et valider des encodages supplémentaires

Le travail de l'action comprenait la création de règles d'encodage génériques pour GeoJSON ainsi que des règles d'encodage spécifiques pour les adresses des thèmes INSPIRE (y compris les propriétés GeographicalName) et les installations de surveillance environnementale (y compris les propriétés O&M). Ces règles d'encodage seront conservées en tant que documents de bonne pratique INSPIRE distincts, et à l'avenir, des règles d'encodage supplémentaires spécifiques à un thème pourraient être développées par les communautés thématiques et proposées pour approbation par le MIG selon la procédure de bonne pratique INSPIRE.

Ce travail est également lié à 2017.3 , où un résultat majeur est une vue détaillée sur les capacités de divers logiciels SIG à travailler avec des données INSPIRE (appelées CanIUse), codées en GML ou GeoJSON.

Cette section décrit ce que contient ce document et quel est l'objectif de haut niveau de ce codage.

GeoJSON est un format standard ouvert conçu pour représenter des entités géographiques simples, ainsi que leurs attributs non spatiaux. Il est basé sur JSON, la notation d'objet JavaScript. Le corps de la spécification traite de la description des objets de géométrie GeoJSON. Il peut s'agir de points (qui peuvent être utilisés pour des entités telles que des adresses et des emplacements), des chaînes de lignes (par exemple, pour des rues, des autoroutes, des limites), des polygones (pays, provinces, étendues de terre) et des collections en plusieurs parties de ces types.

Les fonctionnalités GeoJSON n'ont pas besoin de représenter des entités du monde physique, seules les applications de routage et de navigation mobiles, par exemple, peuvent décrire leur couverture de service à l'aide de GeoJSON.

Le format GeoJSON a été défini à l'origine par un groupe de travail Internet de développeurs qui avaient besoin d'une solution pour encoder des géométries à utiliser dans des applications Web. Il a depuis été formalisé par l'IETF, un organisme de normalisation qui développe des spécifications concernant Internet sous le nom de RFC 7946.

Dans INSPIRE, cette règle d'encodage peut consister à encoder des données à partir de plusieurs thèmes, en mettant l'accent sur la convivialité des données dans les clients de bureau et Web SIG tels qu'ArcMap, QGIS, OpenLayers, Leaflet, FME et hale studio. Il peut servir de codage alternatif qui peut être utilisé à la place de l'encodage par défaut pour les données simples, où il n'y a pas de perte d'informations. Dans d'autres cas, cet encodage GeoJSON peut servir de Additionnel encodage uniquement.

Cette section décrit la portée de la règle d'encodage INSPIRE UML vers GeoJSON. GeoJSON n'est pas aussi bien adapté à tous les thèmes et cas d'utilisation.

Cette règle d'encodage traite spécifiquement de la facilité d'utilisation des données dans les logiciels clients Web et de bureau, tels qu'ArcMap, QGIS, Leaflet et OpenLayers. Il optimise l'utilisation des données INSPIRE pour la cartographie et le géotraitement dans de telles applications.

La règle d'encodage est également développée en tenant compte des bonnes pratiques des données spatiales sur le Web et de la norme WFS 3.0, pour laquelle elle doit fournir un format complémentaire.

Couverture des thèmes INSPIRE

Pour chaque thème à couvrir, une règle d'encodage GeoJSON spécifique est fournie. Ceux-ci peuvent résider dans des sous-dossiers du même référentiel que cette règle d'encodage générale (par exemple, ads et efs ), mais peuvent également être conservés à d'autres endroits.

Cette règle d'encodage résout des problèmes techniques spécifiques qui ont posé problème lors de l'utilisation de l'encodage par défaut :

  • La plupart des logiciels SIG ne peuvent pas utiliser pleinement les attributs non simples et les structures imbriquées pour le style, le traitement et le filtrage
  • Plusieurs valeurs par propriétés (complexes) ne peuvent pas être utilisées pleinement dans ArcGIS et d'autres outils SIG
  • Les références à d'autres entités ne peuvent souvent pas être résolues par les outils SIG Les propriétés des entités référencées ne peuvent pas être utilisées dans le style ou pour le filtrage
  • Les types de géométrie abstraite pour un objet signifient qu'un large éventail de géométries différentes peut être utilisé pour une seule classe d'entités
  • Les types de géométrie mixtes dans une FeatureCollection ne sont généralement pas pris en charge.

Dans certains cas, tels que la gestion des propriétés à cardinalité élevée, cette règle de codage fait un compromis, de sorte que tous les problèmes ne sont pas résolus. Les implémenteurs peuvent appliquer des règles de transformation de modèle et d'instance supplémentaires pour effectuer des ajustements pour des ensembles de données et des environnements spécifiques.

Le format GeoJSON ne peut pas gérer les géométries 3D et les données de couverture/raster, par conséquent cette règle d'encodage ne peut pas être utilisée pour ces types de données.

Exigences d'INSPIRE pour les règles d'encodage

Les règles d'exécution sur l'interopérabilité des ensembles et des services de données géographiques (règlement (UE) n° 1089/2010 de la Commission) fixent les exigences suivantes pour les règles de codage :

  1. Chaque règle de codage utilisée pour coder des données spatiales doit être conforme à la norme EN ISO 19118. En particulier, elle doit spécifier des règles de conversion de schéma pour tous les types d'objets géographiques et tous les attributs et rôles d'association et la structure de données de sortie utilisée.
  2. Chaque règle de codage utilisée pour coder les données spatiales doit être mise à disposition.

D2.7 spécifie des exigences et des recommandations plus détaillées pour les règles de codage. La liste suivante répertorie les exigences de ce document et indique celles qui sont également remplies dans cette règle d'encodage :

D2.7 contient également une recommandation pertinente :

Cette section contient des références aux documents de normes et aux ressources associées.

Les termes et définitions se trouvent dans le document Glossaire.

INSPIRE définit le modèle conceptuel en utilisant UML.

La règle de codage par défaut mappe ce modèle UML au schéma XML. Pour JSON, JSON Schema peut être utilisé pour effectuer une validation simple sur des documents JSON.

REMARQUE À ce stade, JSON Schema n'est utilisé dans aucun des outils SIG ciblés. Nous ne l'utilisons donc pas de manière normative. Les règles de codage GeoJSON spécifiques au thème peuvent utiliser le schéma JSON pour fournir une définition formelle des structures de données codées et pour aider à développer des suites de tests exécutables.

Dans cette règle d'encodage, nous adoptons une approche en deux étapes, où nous appliquons des transformations de modèle au niveau du modèle conceptuel. Ce modèle peut ensuite être encodé en GeoJSON simple à l'aide du schéma général et des règles de conversion d'instance présentées dans les sections suivantes.

Tous les types qui ont le stéréotype <<featureType>> sont convertis en objets GeoJSON. Les noms de type restent tels quels.

Lorsqu'une classe a un attribut avec un type de géométrie, cet attribut sera mappé à la propriété de géométrie dans GeoJSON, tandis que toutes les autres propriétés (attributs et rôles d'association) seront mappées aux propriétés à l'intérieur du sous-objet de propriétés. Lorsqu'une classe a plusieurs propriétés Geometry, un profil spécifique au thème doit définir quelle propriété Geometry est la géométrie "par défaut" qui doit être mappée à la propriété Geometry dans GeoJSON. Des propriétés de géométrie supplémentaires peuvent être mappées à des objets GeoJSON supplémentaires ou conservées dans l'ensemble de propriétés .

Tous les types de données sont mappés sur des objets JSON, où les propriétés du type sont directement ajoutées à l'objet racine. Leurs noms de type restent tels qu'ils sont.

Tous les types de propriétés sont transformés en types simples connus de JSON : Number, String, Boolean et Object. Le mappage exact du modèle UML aux types de données JSON est décrit dans le tableau suivant :

Type de propriété Modèle UML type de données JSON Remarques sur les conversions
Chaîne de caractères chaîne de caractères
Chaîne de caractères localisée chaîne de caractères LanguageCode est ajouté en tant que propriété distincte.
booléen booléen
Entier entier
Réel numéro
Décimal numéro
DateHeure chaîne de caractères La chaîne doit respecter le format ISO 8601, y compris les informations de fuseau horaire (par exemple, 2008-10-31T15:07:38-05:00 ).
Date chaîne de caractères La chaîne suit le plus le format aaaa-mm-jj .
Longueur double uom est ajouté en tant que propriété distincte.
Mesure double uom est ajouté en tant que propriété distincte.
URI chaîne de caractères
URL chaîne de caractères

Tout autre type de propriété de modèle UML doit être mappé à string , des règles spécifiques étant définies au cas par cas dans chaque profil de thème.

ISO 19107 - Types de géométrie

ISO 19107 définit un ensemble de types de géométrie, qui doivent être mappés aux types disponibles dans GeoJSON.

REMARQUE Tous les types ne peuvent pas être mappés à GeoJSON si un ensemble de données nécessite un tel type, il ne peut pas utiliser cette règle de codage comme règle de codage alternative.

Type ISO 19107 Type de données GeoJSON Remarques sur les conversions
GM_Agrégat GeometryCollection Des limitations s'appliquent quant aux types qui peuvent être inclus dans la collection.
GM_Curve ChaîneLigne En GML, les courbes peuvent également être des segments ou des arcs non linéaires. GeoJSON ne prend en charge que les segments linéaires.
GM_MultiCurve Chaîne multiligne En GML, les courbes peuvent également être des segments ou des arcs non linéaires. GeoJSON ne prend en charge que les segments linéaires.
GM_MultiPoint Multipoint
GM_MultiPrimitive non supporté GM_MultiPrimitive est un type abstrait.
GM_MultiSurface Multipolygone
GM_Objet Tout type de géométrie GeoJSON GM_Object est un type abstrait, toute géométrie GeoJSON peut être utilisée.
GM_Point Indiquer
GM_PolyedralSurface non supporté À ce stade, cette spécification ne prend pas en charge les maillages 3D.
GM_Primitif Tout type de géométrie GeoJSON GM_Primitive est un type abstrait, toute géométrie GeoJSON peut être utilisée.
GM_Surface Polygone Un GM_Surface peut avoir plusieurs SurfacePatches, il est donc mappé sur MultiPolygon.
GM_Étain non supporté Un TIN sans triangulation pourrait être converti en un objet MultiPoint.
GM_Triangle Polygone

ISO 19108 - Types temporels

Pour les types de l'ISO 19108 utilisés dans les schémas INSPIRE, des mappages appropriés doivent être trouvés au cas par cas. La valeur par défaut doit être d'utiliser la règle de substitution Période simple.

ISO 19115 - Types de métadonnées

Pour les types de l'ISO 19115 utilisés dans les schémas INSPIRE, des mappages appropriés doivent être trouvés au cas par cas. Pour CI_Citation , la règle de substitution Simple Citation peut être appliquée.

Types abstraits comme types de propriété

Lorsqu'un type abstrait avec plusieurs sous-types concrets est utilisé comme type de propriété, un choix approprié d'un sous-type concret doit être fait au cas par cas. Par exemple, limiter les types de géométrie potentiels de cette manière peut faciliter le traitement.

Une union représente un choix entre plusieurs propriétés avec des types de valeur potentiellement différents, comme dans AreaOfResponsibilityType, où il existe des options telles que areaOfResponsibilityByAdministrativeUnit et areaOfResponsibilityByNamedPlace . La multiplicité de ces options peut également différer.

Pour les types d'union utilisés dans les modèles INSPIRE, des mappages appropriés doivent être trouvés au cas par cas.

Énumérations et listes de codes

Aucun mappage pour les listes de codes et les énumérations n'est requis. Leurs valeurs doivent être identifiées par des URI HTTP (idéalement résolvables).

REMARQUE Le registre INSPIRE peut fournir la représentation JSON de la liste de codes et de ses entrées.

Les noms de propriétés restent tels quels.

Si une propriété a une cardinalité > 1, un mappage approprié doit être trouvé au cas par cas. Il existe une règle de transformation de modèle qui extrait une valeur unique d'une propriété complexe et crée un tableau JSON qui doit être utilisé si le nombre d'occurrences d'une telle propriété peut être très élevé.

Les propriétés qui représentent les valeurs des listes de codes sont codées à l'aide de la règle SimpleCodelistReference décrite ici.

REMARQUE Les préfixes d'espace de noms, tels qu'utilisés dans l'encodage par défaut, ne sont pas utilisés dans la règle d'encodage GeoJSON.

Propriétés avec un attribut uom

L'attribut d'unité de mesure ( uom ) sur toute propriété x doit être conservé. Il est transformé en une nouvelle propriété du type portant le nom x.uom .

Les types de propriété pour les propriétés avec une cardinalité supérieure à 1 et un type de propriété simple (par exemple String, Integer, Float, . ) peuvent utiliser des tableaux de ces types simples. Plus d'informations sont disponibles dans la règle de transformation Extraire un tableau primitif.

Le stéréotype <<voidable>> n'est pas converti. Si une propriété n'a pas de valeur, elle peut être supprimée.

Les rôles d'association sont conservés tels quels, s'ils ne sont pas transformés à l'aide d'une règle spécifique au profil, telle que les composants Inline associés ou agrégés à l'aide de noms de type.

Cette section décrit comment le codage est dérivé du modèle conceptuel converti et décrit les règles communes qui doivent être appliquées pour cette règle de codage.

Le codage de caractères de tous les codages de données dans GeoJSON doit être UTF-8.

Systèmes de référence de coordonnées

Conformément aux exigences de la spécification GeoJSON - IETF RFC 7946, le CRS par défaut pour tout ensemble de données fourni à l'aide de cette règle de codage est un système de référence de coordonnées géographiques, utilisant le système géodésique mondial 1984 (WGS 84), avec des unités de longitude et de latitude de degrés décimaux, sauf accord préalable. Ceci est équivalent au système de référence de coordonnées identifié par l'URN Open Geospatial Consortium (OGC) urn:ogc:def:crs:OGC::CRS84 .

REMARQUE Comme INSPIRE exige l'utilisation du système européen de référence terrestre 1989 (ETRS89, voir l'exigence 1) pour les zones comprises dans la portée géographique de l'ETRS89 et que CRS84 et ETRS89 utilisent l'ellipsoïde GRS 80 (bien qu'avec des améliorations mineures), nous supposerons que CRS84 être équivalent à ETRS89. Si, pour un ensemble de données, cette hypothèse était problématique, alors GeoJSON ne peut pas servir de règle de codage alternative pour cet ensemble de données.

Prise en charge du système de référence de coordonnées alternatif

Bien que le système de référence de coordonnées requis pour toutes les données codées dans GeoJSON soit CRS84, un client peut demander la livraison d'un ensemble de données à l'aide d'un système de référence projeté différent, conformément au mécanisme décrit dans l'exigence 1 de l'extension CRS de l'API OGC - Spécification des fonctionnalités .

Un service de téléchargement INSPIRE délivrant des données encodées en GeoJSON sera en mesure de délivrer des géométries projetées si un client le demande explicitement, au moins pour les référentiels spatiaux documentés à la section 6.3. des spécifications de données qui entrent dans le champ d'application de la présente spécification de codage. Lors de la livraison de données qui ne sont pas dans CRS 84, les données GeoJSON doivent inclure le membre crs tel que défini dans la version obsolète (Brouillon 6 de la spécification GeoJSON)[http://wiki.geojson.org/GeoJSON_draft_version_6].

Dans la règle d'encodage GeoJSON, les informations nilReason ne doivent pas être conservées par entité, mais plutôt dans les métadonnées du jeu de données. Les propriétés qui ont des valeurs nulles doivent donc être ignorées dans le processus de codage.

REMARQUE Si, pour un ensemble de données, il existe des informations nilReason spécifiques par entité, GeoJSON ne peut pas servir de règle de codage alternative pour cet ensemble de données

Un objet géographique encodé à l'aide de la règle d'encodage par défaut peut avoir plusieurs propriétés qui l'identifient :

  • gml:id : Cette propriété de type ID n'est pas présente dans le modèle conceptuel, mais obligatoire pour tout objet spatial encodé en GML. Il représente un identifiant technique unique au sein d'un document et pouvant servir de cible à une ancre/référence.
  • gml:identifier : Cette propriété de type gml:CodeWithAuthorityType n'est pas présente dans le modèle conceptuel, mais héritée du type AbstractGML. Il représente un identifiant unique dans le codeSpace donné et sert d'identifiant externe de l'objet.
  • inspireId : cette propriété avec le type IdentifierPropertyType définit un identifiant de domaine unique et persistant pour l'objet géographique au sein de l'infrastructure INSPIRE.

Ces propriétés sont mappées à l'objet GeoJSON encodé comme suit :

Propriété de codage par défaut Type de propriété Propriété GeoJSON Type de propriété Remarques sur les conversions
gml:id identifiant identifiant chaîne de caractères
gml:identifiant CodeWithAuthorityType properties.identifier chaîne de caractères Peut être omis si vide dans l'objet source.
base:inspirId IdentifierPropertyType properties.inspireId_localid chaîne de caractères
properties.inspireId_namespace chaîne de caractères
properties.inspireId_versionId chaîne de caractères Peut être omis si vide dans l'objet source.

Règles de codage du thème INSPIRE

Ce document ne contient pas de règles spécifiques pour chaque thème INSPIRE. Ceux-ci sont conservés dans des documents séparés pour faciliter les cycles et les groupes de développement faiblement couplés.

Chacune des règles de codage spécifiques au thème définit au moins une classe de conformité. Toute classe de conformité dans une règle de codage de thème peut définir un certain nombre de règles de transformation de modèle qui doivent être appliquées avant le processus de codage. Ces transformations sont documentées dans le document Model Transformation Rules. Ils servent à adapter le modèle conceptuel (UML) pour mieux correspondre au modèle logique de la plate-forme cible.


Vous pouvez obtenir des informations détaillées sur l'API en visitant la documentation Aspose.GIS for .NET. Il s'agit d'un guide complet sur l'API qui vous aide à comprendre les exigences et les fonctionnalités offertes par l'API. La documentation sera étendue avec plus d'échantillons de code et d'informations avec les versions mensuelles de l'API.

Ce lancement initial d'Aspose.GIS pour .NET prend en charge le travail avec :

  • ESRI ShapeFile - un format de données vectorielles géospatiales populaire pour les systèmes d'information géographique (SIG)
  • GeoJSON - un format pour coder une variété de structures de données géographiques

OpenLayers vs Mapbox GL JS : un test de performances

Salut les gars, j'ai récemment fait un test de performance sur OpenLayers et Mapbox GL JS, en créant deux cartes interactives à densité de pop de Taiwan en utilisant une bibliothèque pour chaque carte. J'ai appris depuis longtemps que Mapbox GL JS est basé sur WebGL, qui offre des performances exceptionnelles lors du rendu d'un grand nombre de polygones. Mais combien plus de performances Mapbox GL JS peut-elle fournir que OpenLayers, qui est alimenté par Canvas, encore une autre technologie de rendu décente ? Ce test a pour but de trouver la réponse.

Vous pouvez consulter deux versions de la même carte ci-dessous. Les textes sont en chinois mais vous pouvez toujours avoir une idée de l'interactivité en cliquant et en faisant défiler.

Les deux cartes offrent la même fonctionnalité, affichant près de 8 000 polygones représentant des villages/arrondissements. Les performances de Mapbox GL JS surpassent un peu OpenLayers. Sur mon humble MacBook Air 2018 avec Chrome, je peux enregistrer une fréquence d'images moyenne de plus de 20 avec le Mapbox GL JS tout au long de l'interaction, mais avec celui d'OpenLayers, je ne peux enregistrer qu'une fréquence d'images moyenne ne dépassant pas 10.

De plus, Mapbox GL JS offre plus de facilité de développement qu'OpenLayers, l'équipe Mapbox conservant un large éventail de didacticiels et d'exemples bien écrits sur leur site Web, même si je pense qu'OpenLayers peut donner plus de flexibilité aux développeurs avec toutes sortes d'API mystérieuses cachées dans le Documentation?

De plus, comme je ne suis pas très expérimenté avec les deux bibliothèques, certaines parties peuvent être améliorées pour améliorer les performances de la carte OpenLayers. Si vous avez envie de jouer ou d'améliorer le code, vous pouvez vous rendre directement sur mon Github. Acclamations!


Aspose. SIG 18.7.0

Aspose.GIS pour .NET est une bibliothèque qui permet à vos applications de fonctionner avec les formats de fichiers géospatiaux courants. Il prend en charge le travail avec les formats de fichiers vectoriels populaires. L'API vous permet de créer, lire et convertir des documents sans avoir besoin d'aucun autre logiciel commercial.
Aspose.GIS est un assembly .NET unique qui peut être déployé avec n'importe quelle application .NET en le copiant simplement.

API unique pour travailler avec les formats de fichiers géospatiaux vectoriels sans se soucier de leur implémentation sous-jacente.

- ESRI Shapefile
- GeoJSON
- KML (Keyhole Markup Language)
- OSM XML (OpenStreetMap XML)
- GPX (format d'échange GPS)
- GML (langage de balisage géographique)
- Géodatabase de fichiers ESRI

- Créez de nouveaux fichiers avec vos données vectorielles.
- Lire les fonctionnalités à partir de fichiers existants.
- Récupérer les informations sur les attributs.
- Obtenez le nombre de fonctionnalités dans un fichier.
- Itérer sur toutes les caractéristiques d'une couche.
- Obtenir des valeurs d'attributs d'entités à partir d'une couche.
- Filtrer les caractéristiques par valeur d'attribut.
- Extrayez les caractéristiques d'un fichier Shape et exportez-les au format GeoJSON.
- Spécifiez la longueur de la valeur d'attribut.
- Vérifiez la fonctionnalité pour les valeurs nulles.
- Convertir le fichier de formes de polygones en fichier de formes de chaîne de lignes.

- Travailler avec plusieurs géométries.
- Créer des types de géométrie Points et Multipoint.
- Générer des chaînes de lignes et de lignes avec des informations géographiques spécifiées.
- Définir la forme géométrique Polygon et MultiPolygon.
- Créer des polygones avec des trous.
- Obtenir des informations sur les types de géométrie.
- Compter les géométries dans une forme géométrique.
- Itérer sur les points contenus dans la géométrie.

Travailler avec des systèmes de référence spatiale

- Créer des couches vectorielles avec un système de référence spatiale.
- Définir le système de référence spatiale souhaité lors de la conversion entre les couches.
- Transformer les géométries entre les référentiels spatiaux.
- Importez des systèmes de référence spatiale de WKT, exportez des systèmes de référence spatiale vers WKT.

Convertir entre les formats de fichiers SIG

- Interconvertir entre tous les formats pris en charge.
- Ajustez les attributs de fonctionnalité pendant la conversion.


Programme Printemps 2017

Le programme suivant s'applique à l'offre Spring-2 2017 de GEOG 585 (dernière mise à jour le 13 février 2017).

GEOG 585 : Ouvrez la cartographie Web.

Conception, développement et mise en œuvre d'applications de cartographie Web utilisant les normes OGC et des logiciels open source.
Conditions préalables: GEOG 485 Programmation et automatisation SIG

Instructeur

Dr Jan Oliver Wallgrün : L'instructeur, John A. Dutton e-Education Institute, College of Earth and Mineral Sciences, est l'instructeur principal du GEOG 585.

  • Courriel du cours: Etudiants inscrits, merci de me contacter par e-mail Canvas.
  • Email personnel: Les futurs étudiants et autres peuvent me contacter à [email protected] N'hésitez pas à utiliser également cette adresse e-mail si Canvas est en panne.
  • Disponibilité: Je consulte mes e-mails chaque jour de la semaine (sauf indication contraire à l'avance) et suis disponible pour un chat en direct sur rendez-vous.

Aperçu du cours

Géographie 585 : Open Web Mapping est un cours en ligne de 10 semaines qui vous donne l'expérience du partage d'informations géographiques sur Internet à l'aide de logiciels libres et open source (FOSS) et de spécifications ouvertes. Il s'agit d'un cours au choix dans les programmes d'éducation géospatiale en ligne de Penn State, y compris le Master of Geographic Information Systems.

Les deux principaux objectifs de Geog 585 sont de vous aider à comprendre l'importance des services Web et de vous donner une certaine expérience de la création de cartes Web avec FOSS et des normes ouvertes. Vous pouvez certainement implémenter des services Web à l'aide d'un logiciel propriétaire, mais le coût d'un progiciel de serveur SIG propriétaire fait des FOSS un domaine d'étude attrayant pour les tâches de cartographie Web de base.

Le but de Geog 585 n'est pas de promouvoir les logiciels libres par rapport aux logiciels propriétaires, ou vice versa (vous pouvez trouver de nombreux documents sur Internet sur ce sujet), cependant, Geog 585 devrait vous familiariser avec les capacités et les lacunes du paysage actuel des logiciels libres indiquer que vous pouvez prendre une décision éclairée sur la façon d'utiliser les logiciels libres et open source dans vos propres tâches de cartographie Web.

L'ensemble de sources de données libres et ouvertes auxquelles vous serez exposé dans Geog 585 comprend QGIS, GDAL, GeoServer, GeoWebCache, TileMill, OpenStreetMap et OpenLayers. Vous découvrirez également les normes de données ouvertes telles que les spécifications de service Web GeoJSON, KML et OGC.

Conditions préalables

Ce cours vous oblige à faire de la programmation avec JavaScript et l'API OpenLayers. Vous n'avez pas encore besoin de savoir quoi que ce soit sur OpenLayers, mais il est nécessaire que vous ayez :

  • suffisamment d'expérience formelle dans l'écriture de programmes informatiques ou de scripts pour que vous soyez à l'aise pour identifier et utiliser des constructions fondamentales telles que des variables, des boucles, des structures de décision, la gestion des erreurs, des objets, etc. UNE B grade ou supérieur dans Geog 485 satisfait à cette condition préalable. Les exceptions nécessitent une expérience de programmation équivalente et approbation de l'instructeur.
  • Assez d'expérience avec JavaScript pour que vous puissiez facilement identifier les constructions ci-dessus lorsque vous les voyez dans un morceau de code JavaScript. UNE B grade ou supérieur dans Geog 863 satisfait à cette condition préalable, ou vous pouvez faire votre propre préparation en utilisant le didacticiel JavaScript W3Schools.
  • Assez d'expérience avec HTML et CSS pour que vous puissiez facilement afficher et interpréter les éléments de base du balisage de page, tels que l'en-tête, le corps, les balises de script, etc. Geog 863 satisfait à ce prérequis, ou vous pouvez faire votre propre préparation en utilisant le didacticiel HTML de W3Schools.

Matériel de cours requis

Il n'y a pas de manuel obligatoire pour ce cours. Vous devrez effectuer diverses lectures en ligne.

Si vous ne disposez pas d'une connexion Internet disponible en permanence pendant ce cours, veuillez contacter l'instructeur avant de commencer.

Devoirs et notation

Geog 585 a neuf leçons. Chacun d'eux dure une semaine. La dixième semaine du cours vous est réservée pour travailler sur votre projet de semestre (décrit plus loin). La plupart des semaines, vous verrez :

  • matériel de cours conceptuel
  • une procédure pas à pas qui vous guide pas à pas à travers un nouveau logiciel ou une nouvelle fonctionnalité
  • un devoir qui s'attend généralement à ce que vous appliquiez ce que vous avez appris lors de la procédure pas à pas. Sachez que certains devoirs comportent plusieurs parties, et que certaines semaines & rsquo valent plus que d'autres & rsquo.

Les procédures pas à pas et les affectations dans Geog 585 nécessitent un engagement de temps important et impliquent souvent l'installation ou l'utilisation de nouveaux logiciels. Veuillez commencer à travailler sur la leçon au début de la semaine pour permettre de terminer un livrable de haute qualité à temps et tout dépannage qui pourrait être nécessaire en cours de route.

Quiz

Des quiz sont administrés tout au long du cours pour tester votre connaissance de la matière et votre capacité à penser et à raisonner de manière indépendante sur les concepts présentés.

Projet final

Pendant le cours, vous travaillerez sur un projet de semestre qui synthétise les compétences que vous acquérez tout au long des leçons. La plupart des affectations hebdomadaires sont directement liées à la construction de votre projet à terme, en d'autres termes, vous pouvez utiliser les données de votre projet à terme dans les affectations hebdomadaires, et certains éléments de vos livrables d'affectation hebdomadaire peuvent apparaître dans vos livrables de projet à terme. La dernière semaine du cours est réservée au travail à temps plein sur votre projet de semestre.

Classement

Les livrables sont pondérés de la manière suivante pour obtenir votre note :

Les notes alphabétiques seront basées sur les pourcentages suivants :

Notes et pourcentages en lettres
UNE 90-100%
UNE- 87.5-89.9%
B+ 85-87.4%
B 80-84.9%
B- 77.5-79.9%
C+ 75-77.4%
C 70-74.9%
60-69.9%
F <60 %
X Insatisfaisant (l'élève n'a pas participé)

Les pourcentages se réfèrent à la proportion de tous les points possibles gagnés par l'étudiant après que les poids ci-dessus ont été appliqués.

Travail en retard
Tout devoir non soumis à la date d'échéance sur le calendrier des cours dans Canvas entraînera une déduction de 10 % de la note avant toute autre déduction faite par l'instructeur lors de la notation du devoir. Un supplément de 10 % sera déduit pour chaque semaine supplémentaire de retard. L'instructeur peut choisir de modifier ou de renoncer à ces pénalités dans des circonstances exceptionnelles (telles que des problèmes de santé graves).

Horaire du cours GEOG 585

Les devoirs hebdomadaires (pour les semaines 1 à 9) et les quiz (pour les semaines 3, 6 et 9) sont toujours dus à la fin de chaque semaine avant le mercredi 23h59 dans votre fuseau horaire local. En outre, un document de proposition de projet à court terme doit être soumis à la fin de la semaine 2. Au cours de la semaine 10, une vidéo démontrant votre projet à terme doit être soumise avant la fin du dimanche les livrables restants du projet à terme (rapport et revues de deux autres étudiants & vidéo) sont dus avant la fin de mercredi (dernier jour de classe).


Formats de sortie¶

La page Aperçu de la couche prend en charge une variété de formats de sortie pour une utilisation ultérieure ou le partage de données. Vous pouvez prévisualiser les trois types de calques dans les formats OpenLayers et KML courants. De même, en utilisant le menu "Tous les formats", vous pouvez prévisualiser tous les types de calques dans sept formats de sortie supplémentaires : AtomPub, GIF, GeoRss, JPEG, KML (compressé), PDF, PNG, SVG et TIFF. Seules les couches vectorielles fournissent les aperçus de sortie WFS, y compris le GML commun ainsi que les formats CSV, GML3, GeoJSON et shapefile. Le tableau ci-dessous fournit une brève description de tous les formats de sortie pris en charge, organisés par type de sortie (image, texte ou données).

Sorties d'images¶

Toutes les sorties d'image peuvent être lancées à partir d'une requête WMS getMap sur des données raster, vectorielles ou de couverture. Les WMS sont des méthodes qui permettent l'affichage visuel de données spatiales sans nécessairement donner accès aux fonctionnalités qui composent ces données.

Format La description
KML KML (Keyhole Markup Language) est un schéma de langage basé sur XML pour exprimer des données géographiques dans un navigateur Earth, tel que Google Earth ou Google Maps. KML utilise une structure basée sur des balises avec des éléments et des attributs imbriqués. For GeoServer, KML files are distributed as a KMZ, which is a zipped KML file.
JPEG WMS output in raster format. The JPEG is a compressed graphic file format, with some loss of quality due to compression. It is best used for photos and not recommended for exact reproduction of data.
GIF WMS output in raster format. The GIF (Graphics Interchange Format) is a bitmap image format best suited for sharp-edged line art with a limited number of colors. This takes advantage of the format’s lossless compression, which favors flat areas of uniform color with well defined edges (in contrast to JPEG, which favors smooth gradients and softer images). GIF is limited to an 8-bit palette, or 256 colors.
SVG WMS output in vector format. SVG (Scalable Vector Graphics) is a language for modeling two-dimensional graphics in XML. It differs from the GIF and JPEG in that it uses graphic objects rather than individual points.
TIFF WMS output in raster format. TIFF (Tagged Image File Format) is a flexible, adaptable format for handling multiple data in a single file. GeoTIFF contains geographic data embedded as tags within the TIFF file.
PNG WMS output in raster format. The PNG (Portable Network Graphics) file format was created as the free, open-source successor to the GIF. The PNG file format supports truecolor (16 million colors) while the GIF supports only 256 colors. The PNG file excels when the image has large, uniformly coloured areas.
OpenLayers WMS GetMap request outputs a simple OpenLayers preview window. OpenLayers is an open source JavaScript library for displaying map data in web browsers. The OpenLayers output has some advanced filters that are not available when using a standalone version of OpenLayers. Further, the generated preview contains a header with easy configuration options for display. Version 3 of the OpenLayers library is used by default. Version 3 can be disabled with the ENABLE_OL3 (true/false) format option or system property. For older browsers not supported by OpenLayers 3, version 2 is used regardless of the setting.
PDF A PDF (Portable Document Format) encapsulates a complete description of a fixed-layout 2D document,including any text, fonts, raster images, and 2D vector graphics.

Sample Image Output-an OpenLayers preview of nurc:Pk50095

Text Outputs¶

Format La description
AtomPub WMS output of spatial data in XML format. The AtomPub (Atom Publishing Protocol) is an application-level protocol for publishing and editing Web Resources using HTTP and XML. Developed as a replacement for the RSS family of standards for content syndication, Atom allows subscription of geo data.
GeoRss WMS GetMap request output of vector data in XML format. RSS (Rich Site Summary) is an XML format for delivering regularly changing web content. GeoRss is a standard for encoding location as part of a RSS feed.supports Layers Preview produces a RSS 2.0 documents, with GeoRSS Simple geometries using Atom.
GeoJSON JavaScript Object Notation (JSON) is a lightweight data-interchange format based on the JavaScript programming language. This makes it an ideal interchange format for browser based applications since it can be parsed directly and easily in to javascript. GeoJSON is a plain text output format that add geographic types to JSON.
CSV WFS GetFeature output in comma-delimited text. CSV (Comma Separated Values) files are text files containing rows of data. Data values in each row are separated by commas. CSV files also contain a comma-separated header row explaining each row’s value ordering. GeoServer’s CSVs are fully streaming, with no limitation on the amount of data that can be outputted.

A fragment of a simple GeoRSS for nurc:Pk50095 using Atom:

Data Outputs¶

All data outputs are initiated from a WFS GetFeature request on vector data.


Aspose. SIG 18.5.0

Aspose.GIS for .NET is a library that enables your applications to work with popular geospatial file formats. It supports working with the popular vector file formats. The API lets you create, read and convert documents without the requirement of any other commercial software.
Aspose.GIS is a single .NET assembly that can be deployed with any .NET application by simply copying it.

Single API to work with vector geospatial file formats without worrying about underlying implementation of these.

- ESRI Shapefile
- GeoJSON
- KML (Keyhole Markup Language)
- OSM XML (OpenStreetMap XML)

- Create new files with your vector data.
- Read features from existing files.
- Retrieve attributes information.
- Get features count in a file.
- Iterate over all features of a layer.
- Get values of feature attributes from a layer.
- Filter features by attribute value.
- Extract features from a Shapefile and export to GeoJSON format.
- Specify attribute value length.
- Check feature for null values.
- Convert polygon shapefile to linestring shapefile.

- Work with several Geometries.
- Create Points and Multipoint geometry types.
- Generate Line and Line Strings with specified geographic information.
- Define Polygon and MultiPolygon geometry shape.
- Create Polygons with holes.
- Get information of Geometry types.
- Count geometries in a geometry shape.
- Iterate over Points contained in Geometry.

Work with Spatial Reference systems

- Create vector layers with a spatial reference system.
- Set desired spatial reference system when converting between layers.
- Transform geometries between spatial reference systems.
- Import spatial reference systems from WKT, export spatial reference systems to WKT.

Convert between GIS File Formats

- Interconvert between all supported formats.
- Adjust feature attributes during conversion.


Aspose. SIG 18.8.0

Aspose.GIS for .NET is a library that enables your applications to work with popular geospatial file formats. It supports working with the popular vector file formats. The API lets you create, read and convert documents without the requirement of any other commercial software.
Aspose.GIS is a single .NET assembly that can be deployed with any .NET application by simply copying it.

Single API to work with vector geospatial file formats without worrying about underlying implementation of these.

- ESRI Shapefile
- GeoJSON
- KML (Keyhole Markup Language)
- OSM XML (OpenStreetMap XML)
- GPX (GPS Exchange Format)
- GML (Geography Markup Language)
- ESRI File Geodatabase

- Create new files with your vector data.
- Read features from existing files.
- Retrieve attributes information.
- Get features count in a file.
- Iterate over all features of a layer.
- Get values of feature attributes from a layer.
- Filter features by attribute value.
- Extract features from a Shapefile and export to GeoJSON format.
- Specify attribute value length.
- Check feature for null values.
- Convert polygon shapefile to linestring shapefile.

- Work with several Geometries.
- Create Points and Multipoint geometry types.
- Generate Line and Line Strings with specified geographic information.
- Define Polygon and MultiPolygon geometry shape.
- Create Polygons with holes.
- Get information of Geometry types.
- Count geometries in a geometry shape.
- Iterate over Points contained in Geometry.

Work with Spatial Reference systems

- Create vector layers with a spatial reference system.
- Set desired spatial reference system when converting between layers.
- Transform geometries between spatial reference systems.
- Import spatial reference systems from WKT, export spatial reference systems to WKT.

Convert between GIS File Formats

- Interconvert between all supported formats.
- Adjust feature attributes during conversion.


GeoJSON

To receive responses in GeoJSON format, issue queries against our ArcGIS Query Task Endpoint (discussed in the previous section) by adding /query to its path, and among the query parameters, specify f=geojson to set the response output format to GeoJSON. Several example queries and their responses are shown in the sidebar.

Querying by point intersection and receiving result(s) in GeoJSON format. Note that the query string contains (at the end) the "f=geojson" parameter. Make sure to replace [client_key] with your real client key.

Querying by county (FIPS code) & parcel number and receiving result(s) in GeoJSON format.