Suite

Exporter un polygone dans geojson en tant que multipolygone

Exporter un polygone dans geojson en tant que multipolygone


Quelqu'un sait s'il existe un moyen d'exporter une couche de polygones dans geojson, en tant que multipolygone?

J'ai un shapefile multipolygone. Mais il existe des polygones simples et multiples.

Lorsque je l'exporte vers geojson, j'ai les deux structures : les polygones avec une seule entité sont exportés sous forme de polygones (avec 3 tableaux)

"type": "Polygone", "coordonnées": [ [ [100.0, 0.0], [101.0, 0.0], [101.0, 1.0], [100.0, 1.0], [100.0, 0.0] ], [ [100.2, 0.2 ], [100,8, 0,2], [100,8, 0,8], [100,2, 0,8], [100,2, 0,2] ] ]

Et certains polygones formés par plusieurs entités, sont exportés en multipolygone, avec quatre tableaux :

"type": "MultiPolygon", "coordinates": [ [ [ [102.0, 2.0], [103.0, 2.0], [103.0, 3.0], [102.0, 3.0], [102.0, 2.0] ] ], [ [ [ 100,0, 0,0], [101,0, 0,0], [101,0, 1,0], [100,0, 1,0], [100,0, 0,0] ], [ [100,2, 0,2], [100,8, 0,2], [100,8, 0,8], [ 100,2, 0,8], [100,2, 0,2] ] ] ]

Ce dont j'ai besoin, c'est d'obtenir un geojson qui affiche des polygones et des multipolygones avec la deuxième structure (quatre tableaux)

Quelqu'un pourrait-il me dire si c'est possible, ou une idée sur la façon de le faire?


Vous pouvez convertir toutes vos données en multipolygones avec ogr2ogr en définissant "nouveau type de couche" avec-nlt MULTIPOLYGONE. Cependant, je ne sais pas si le résultat est exactement ce que vous croyez lorsque le multipolygone n'a qu'une seule partie.

C'est un triangle comme polygone

{ "type": "FeatureCollection", "features": [ { "type": "Feature", "properties": { }, "geometry": { "type": "Polygon", "coordinates": [ [ [ 95,0, 216,0 ], [ 241,0, 253,0 ], [ 175,0, 138,0 ], [ 95,0, 216,0 ] ] ] } } ] }

C'est le même triangle que multipolygone

{ "type": "FeatureCollection", "features": [ { "type": "Feature", "properties": { }, "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ 95,0, 216,0 ], [ 241,0, 253,0 ], [ 175,0, 138,0 ], [ 95,0, 216,0 ] ] ] ] } } ] }

ÉDITER

Cependant, si l'objectif est de combiner toutes les entités distinctes, à la fois des polygones et des multipolygones en une seule entité de type multipolygone, vous devez créer une union. Si votre mélange de polygones et multipolygones est dans le fichier "mix.shp", la commande à utiliser est :

ogr2ogr -f geojson union.json mix.shp -dialect sqlite -sql "sélectionner st_union(geometry) from mix"

Le résultat "union.json" contient un multipolygone comme le montre le rapport ogr2ogr :

Nom de la couche : OGRGeoJSON Géométrie : Nombre d'entités multi-polygones : 1… OGRFeature(OGRGeoJSON) : 0 MULTIPOLYGON (((125 229 185 289 252 234 208 169 125 229)),…

Si vous exportez votre geojson depuis postgis, vous pouvez utiliser la fonction ST_MULTI pour vous assurer que l'entité sera un MULTIPOLYGONE s'il s'agit d'un polygone, un MULTILINESTRING s'il s'agit d'une chaîne de lignes ou un MULTIPOINT s'il s'agit d'un point

SELECT ST_AsGeoJSON(ST_Multi(geom))::json FROM table WHERE id = 0;

Edit : la technique pour sortir une featureCollection dans geoson à partir de postgis est un peu « délicate » :

SELECT row_to_json(fc) FROM ( SELECT 'FeatureCollection' As type, array_to_json(array_agg(f)) As features FROM (SELECT 'Feature' As type , ST_AsGeoJSON(ST_Multi(lg.geom))::json As geometry , row_to_json(( champ1, champ2, champx)) As propriétés FROM table As lg ) As f ) As fc;

voyez que nous utilisons ST_MULTI pour nous assurer que chaque caractéristique serait un MULTIPOLYGONE. Vous devez adapter le nom de la table et les noms des champs dans la requête.


SIG sur rails

Traiter avec des données géospatiales est encombrant et en même temps, c'est amusant. Les développeurs qui le font pour la première fois peuvent rencontrer des obstacles, mais au fur et à mesure que vous progressez, cela donne une joie d'apprendre. SIG signifie Système d'information géographique qui traite de la collecte, de la cartographie et de l'analyse des données géospatiales. Mais ce n'est pas aussi facile qu'il y paraît. Laissez-moi vous expliquer les défis que j'ai rencontrés récemment dans mon projet :

Exigence : importez les informations sur les polygones existants et cartographiez les données de latitude et de longitude avec le polygone.

Défi 1 : Comprendre les bases et le jargon

Depuis que je fais pour la première fois, comme quel SRID dois-je utiliser, quel type de données dois-je utiliser, quel système de coordonnées dois-je utiliser ? Après des recherches approfondies, j'ai fini par utiliser le srid 4326, le type de données multipolygone et le système de coordonnées WGS 84.

Beaucoup d'entre vous ne comprennent peut-être pas ce que signifie WGS 84 ? WGS 84 signifie World Geodetic System est une sorte d'enquête (norme) qui a été effectuée en 1984. Il existe différents types de normes qui existent actuellement comme WGS 72, WGS 66 et WGS 60 etc. Ce sont les enquêtes (normes) qui sont menées au cours de ces années respectives en faisant quelques hypothèses sur la terre. Ainsi, par exemple, si nous calculons l'emplacement de l'Inde à l'aide de WGS 84, cela pourrait être différent si nous calculons à l'aide de WGS 72.

SRID signifie Spatial Reference System Identifier, qui nous renseigne sur le système de coordonnées que nous utilisions lors de la collecte de données spatiales.

Défi-2 : Importation de données

Étant donné que nous utilisons des rails alimentés par postgresql, l'importation de données dans la base de données est assez facile, mais pas dans ce cas, car nous avons obtenu des informations au format geojson que je n'avais jamais vues auparavant. Heureusement, ruby ​​fournit une gemme appelée rgeo-json qui nous facilite la vie. Voici l'extrait de code que j'ai écrit pour importer des données geojson.

où polygone est notre modèle. Voici notre fichier de migration ressemble à :

Défi-3 : mapper un point avec un polygone à l'aide d'une requête SQL

PostGIS est une extension de base de données postgres qui permet à postgres d'effectuer des calculs spatiaux. Pour trouver ce point donné se trouve quel polygone nous devons utiliser la fonction st_contains. Pour utiliser st_contains, nous devons d'abord nous assurer que deux géométries doivent utiliser le même SRID ou non, c'est-à-dire dans notre cas, il s'agit de 4326. Étant donné que dans ma base de données, nous stockons la latitude et la longitude sous forme de colonnes flottantes, nous devons d'abord les convertir en en tant que POINT et définissez le SRID sur 4326 comme suit :

Maintenant, dernière requête pour trouver le polygone approprié :

Bien qu'il ait fallu du temps pour remplir l'exigence, à la fin, j'ai senti que j'avais fait quelque chose de différent de ce que je fais habituellement. J'espère que cet article jettera un peu de lumière sur les SIG.


Obtenez geojson à partir de google maps

Couche de données | API JavaScript de cartes, Cet exemple vous permet de faire glisser et de déposer un fichier GeoJSON ou une sélection de texte GeoJSON. Pour plus d'informations sur l'utilisation de la couche de données cartographiques, consultez le fichier google.maps. callback.call(thisArg, geometry.get()) La couche de données Google Maps fournit un conteneur pour des données géospatiales arbitraires (y compris GeoJSON). Si vos données se trouvent dans un fichier hébergé sur le même domaine que votre application Maps JavaScript API, vous pouvez le charger à l'aide de la méthode map.data.loadGeoJson(). Le fichier doit être sur le même domaine, mais vous pouvez l'héberger dans un sous-domaine différent.

Couche de données : glisser-déposer GeoJSON, Cet article comprendra donc les solutions de contournement que j'ai trouvées pour obtenir les coordonnées geoJSON afin de dessiner des polygones à l'aide de Google Maps React. Ici, nous obtenons l'adresse pour un identifiant de lieu Restriction des composants de géocodage Biaisage du code de région (ES) Biaisage du code de région (États-Unis) Service de directions Affichage des directions textuelles avec setPanel() Service de directions (complexe) Modes de déplacement dans les directions Points de cheminement dans les directions Directions déplaçables Service de matrice de distance Service d'altitude montrant l'altitude le long d'un chemin


Mapbox-gl-native - Cartes interactives et entièrement personnalisables en natif Android, iOS, macOS, Node

Une bibliothèque pour intégrer des cartes vectorielles interactives et personnalisables dans des applications natives sur plusieurs plates-formes. Il prend des feuilles de style conformes à la spécification de style Mapbox, les applique aux tuiles vectorielles conformes à la spécification de tuile vectorielle Mapbox et les rend à l'aide d'OpenGL. Mapbox GL JS est l'équivalent basé sur WebGL, conçu pour être utilisé sur le Web. Si votre plate-forme ou cadre d'application hybride n'est pas répertorié ici, envisagez d'intégrer Mapbox GL JS en utilisant les fonctionnalités Web standard sur votre plate-forme.


1 réponse 1

À moins que this.policyData ne soit un tableau de positions en 3 dimensions, il ne doit pas être passé dans la classe MultiPolygon. Si this.policyData est un tableau ou une collection d'entités de formes, vous pouvez l'ajouter directement à la source de données comme this.policyDataSource.add(this.policyData)

Si this.policyData est une collection d'entités de polygones et que vous souhaitez le convertir en multipolygone pour une raison quelconque (vous ne savez pas pourquoi vous voulez faire cela), vous devrez créer et mettre en réseau et parcourir chaque polygone et ajouter ses coordonnées. valeurs au tableau. Par exemple:


A quoi sert GeoJSON ?

GeoJSON est un format d'échange de données géospatiales standard ouvert qui représente des entités géographiques simples et leurs attributs non spatiaux. Basé sur la notation d'objet JavaScript (JSON), GeoJSON est un format pour coder une variété de structures de données géographiques. Ajouter un Fichier GeoJSON en tant que couche dans Map Viewer.

Deuxièmement, comment ouvrir un fichier GeoJSON ? GeoJSON Visionneuse de carte avec Drive. Permet de valider un GeoJSON et l'afficher sur une carte Google. Vous pouvez ouvrir les fichiers GeoJSON depuis votre ordinateur, Google Drive. GeoJSON Map Viewer est un outil qui affiche les Fichier GeoJSON dans votre navigateur.

Sachez également, quelle est la différence entre JSON et GeoJSON ?

GeoJSON est un format pour coder une variété de structures de données géographiques. UNE GeoJSON L'objet peut représenter une géométrie, une entité ou un ensemble d'entités. Complet GeoJSON la structure de données est toujours un objet (en JSON termes). Dans GeoJSON, un objet consiste en une collection de paires nom/valeur, également appelées membres.

Multipolygone. UNE Multipolygone est une MultiSurface dont les éléments sont des Polygones.


Spatial4j est une bibliothèque Java open source sous licence ASL à usage général. Ses capacités principales sont triples : fournir des formes courantes géospatiales, fournir des calculs de distance et d'autres mathématiques, et lire des formats de forme tels que WKT et GeoJSON.

Lisez et écrivez des ensembles de données géospatiales raster et vectorielles directement à partir de Node.js avec cette liaison GDAL native. GDAL 2.0.1 (GEOS 3.4.2, Proj.4 4.8.0) est fourni, donc node-gdal fonctionnera immédiatement. Pour commencer, parcourez la documentation API ou des exemples. Cette reliure est une collaboration entre Natural Atlas et Mapbox. Ses contributeurs sont Brandon Reavis, Brian Reavis, Dane Springmeyer, Zac McCormick et d'autres.


Requêtes géospatiales indexées

L'index géospatial prend en charge une variété de requêtes AQL, qui peuvent être construites à l'aide des fonctions utilitaires géographiques. Il existe trois fonctions géo spécifiques qui peuvent être optimisées, à condition qu'elles soient utilisées correctement : GEO_DISTANCE, GEO_CONTAINS, GEO_INTERSECTS . De plus, il existe un support intégré pour optimiser les anciennes fonctions géographiques DISTANCE , NEAR et Within (les deux dernières uniquement si elles sont utilisées dans leur version à 4 arguments, sans distanceNom).

En cas de doute sur l'optimisation de votre requête, vérifiez la sortie d'explication AQL pour vérifier l'utilisation de l'index.

Requête de résultats près de l'origine (requête de type NEAR)

Un exemple de base d'une requête de résultats à proximité d'un point d'origine :

Le premier paramètre peut être un objet GeoJSON ou un tableau de coordonnées dans l'ordre [longitude, latitude]. Le deuxième paramètre est le champ du document sur lequel l'index a été créé. La fonction GEO_DISTANCE renvoie toujours la distance en mètres, elle recevra donc les résultats jusqu'à 100km.

Requête de résultats triés près de l'origine (requête de type NEAR)

Un exemple de base d'une requête pour les 1000 résultats les plus proches d'un point d'origine (tri croissant) :

Le premier paramètre peut être un objet GeoJSON ou un tableau de coordonnées dans l'ordre [longitude, latitude]. Le deuxième paramètre est le champ de documents sur lequel l'index a été créé.

Vous pouvez également obtenir les résultats les plus éloignés (distance triée par ordre décroissant) :

Recherche de résultats à distance

Une requête qui renvoie des documents à une distance de 1km ou plus loin, jusqu'à 100km de l'origine. Cela renverra les documents avec une valeur GeoJSON qui se trouve dans l'anneau de recherche spécifié.

Requête de résultats contenus dans Polygon

Une requête qui renvoie des documents dont la géométrie stockée est contenue dans un polygone GeoJSON.

Le premier paramètre de GEO_CONTAINS doit être un polygone. Les autres types ne sont pas valides. Le deuxième paramètre doit contenir le champ du document sur lequel l'index a été créé.

Requête de résultats coupant un polygone

Une requête qui renvoie des documents avec une intersection de leur géométrie stockée et d'un polygone GeoJSON.

Le premier paramètre de GEO_INTERSECTS doit être un polygone. Les autres types ne sont pas valides. Le deuxième paramètre doit contenir le champ du document sur lequel l'index a été créé.


Conert shp dans wkt ou geojson

est-ce que quelqu'un sait comment convertir un fichier de formes (ligne) au format wkt ou geojson?

J'ai Desktop ArcGIS 10.2.

par DanPatterson_Re fatigué

beaucoup de conversions « de ». mais peu d'espoir avec une conversion 'to' en utilisant 10.2. Recherchez-vous simplement des conversions Arc* ou avez-vous cherché d'autres options ?

Dan Patterson a écrit :

beaucoup de conversions « de ». mais peu d'espoir avec une conversion 'to' en utilisant 10.2. Recherchez-vous simplement des conversions Arc* ou avez-vous cherché d'autres options ?

En gros je dois importer le shp dans un logiciel qui apparemment n'est pas très flexible concernant les projections (uniquement WGS84). En fait, il ne lit pas certains de mes fichiers de formes. On m'a donc suggéré que si mes shp sont déjà en coordonnées géographiques WGS84, je dois exporter dans un format minimaliste comme wkt ou geojson et réimporter vers SIG et définir la projection comme WGS84 (EPSG 4326).

D'après mon expérience, je n'ai jamais entendu parler de ce format de fichier, j'ai fait quelques recherches et il semble que je puisse faire quelque chose avec Phyton ? ". Je ne suis pas sûr d'avoir fait ce qu'il fallait car cela ne semble faire aucune différence. Je ne sais pas non plus ce que cet "outil de conversion" fait à mon fichier de formes. Pourquoi est-ce?


11 Afficher les attributs des données / filtrer par données

Lors de l'utilisation de données libres, les attributs de données inclus sont très différents. Il est possible de vérifier avec QGIS après le chargement des données quelles informations se trouvent dans les données. Nous prendrons ici un exemple de Hambourg. Les données que nous utilisons sont une couche vectorielle de Hambourg. Il contient tous les quartiers et arrondissements de la ville.

  1. Charger le fichier dans QGIS
  2. Faites un clic droit sur le calque. Dans le menu cliquez sur "Ouvrir la table attributaire"
    1. Toutes les informations contenues dans la couche sont affichées ici

    Il est possible d'appliquer certaines opérations aux attributs. De cette façon, il est également possible de n'utiliser que certaines parties d'un calque. Dans l'exemple suivant, nous allons découper le quartier d'Altona.

    1. Double-cliquez sur le calque
    2. dans la fenêtre "Source", il y a un onglet "Filtre d'objet sur le fournisseur de données". En bas à droite cliquer sur le bouton "Création de requête"
    3. Dans la boîte de dialogue sous "Champs", nous double-cliquons sur "Bezirk_Nam"
      1. Vous pouvez également visualiser les informations contenues dans un champ dans la fenêtre des valeurs
      2. Ce nom est maintenant affiché dans le champ Expression de filtre spécifique au fournisseur
      1. Il est possible de créer une requête plus complexe avec des opérateurs logiques

      Indice: Selon la version de QGIS, la requête peut également être différente. Voici un exemple de requête SQL avec les routes HVV et S-Bahn.


      Voir la vidéo: 6. klass. Täisarvude korrutamine ja jagamine