Suite

Impossible de charger la couche postgis à partir de la chaîne sql dans pyqgis


J'essaie de charger une couche à l'aide du code suivant dans la console python qgis :

sql = "(select the_geom, ID from mytable)" uri = QgsDataSourceURI() uri.setConnection("localhost","5432","mydb","postgres","XXXX") uri.setDataSource("myschema",sql ,"the_geom","","ID") vlayer = QgsVectorLayer(uri.uri(),"LayerName","postgres") QgsMapLayerRegistry.instance().addMapLayer(vlayer)

Il n'ajoute pas la couche mais ne renvoie aucune erreur.

J'utilise QGIS 2.4.0-Chugiak


Le fournisseur postgres requiert des types de données entiers (c'est-à-dire ceux qui sont traités en interne commeQVariant::Entierou alorsQVariante::LongLong)

Entier:

  • int2
  • int4

LongLong :

  • int8

Formats de données pris en charge¶

QGIS utilise la bibliothèque OGR pour lire et écrire des formats de données vectorielles, notamment les fichiers de formes ESRI, les formats de fichiers MapInfo et MicroStation, les bases de données AutoCAD DXF, PostGIS, SpatiaLite, Oracle Spatial et MSSQL Spatial, et bien d'autres. La prise en charge du vecteur GRASS et de PostgreSQL est fournie par les plugins natifs du fournisseur de données QGIS. Les données vectorielles peuvent également être chargées en mode lecture à partir des archives zip et gzip dans QGIS. A la date de ce document, 69 formats vectoriels sont pris en charge par la bibliothèque OGR (voir OGR-SOFTWARE-SUITE dans Littérature et références Web). La liste complète est disponible sur http://www.gdal.org/ogr/ogr_formats.html.

Tous les formats répertoriés peuvent ne pas fonctionner dans QGIS pour diverses raisons. Par exemple, certains nécessitent des bibliothèques commerciales externes, ou l'installation GDAL/OGR de votre système d'exploitation peut ne pas avoir été conçue pour prendre en charge le format que vous souhaitez utiliser. Seuls les formats bien testés apparaîtront dans la liste des types de fichiers lors du chargement d'un vecteur dans QGIS. D'autres formats non testés peuvent être chargés en sélectionnant *.* .

Le travail avec les données vectorielles GRASS est décrit dans la section Intégration SIG GRASS.

Cette section décrit comment utiliser plusieurs formats courants : fichiers de formes ESRI, couches PostGIS, couches SpatiaLite, vecteurs OpenStreetMap et données séparées par des virgules (CSV). De nombreuses fonctionnalités disponibles dans QGIS fonctionnent de la même manière, quelle que soit la source de données vectorielles. C'est par conception, et il comprend les fonctions d'identification, de sélection, d'étiquetage et d'attributs.

QGIS prend en charge les types d'entités (multi)points, (multi)lignes, (multi)polygones, CircularString, CompoundCurve, CurvePolygon, MultiCurve, MultiSurface, tous avec des valeurs Z et/ou M.

Vous devez également noter que certains pilotes ne prennent pas en charge certains de ces types de fonctionnalités, tels que CircularString, CompoundCurve, CurvePolygon, MultiCurve, MultiSurface. QGIS les convertira en fonction (multi)polygonale.


2.2. Configuration du raster

Si vous avez activé le support raster, vous pouvez lire ci-dessous comment le configurer correctement.

Depuis PostGIS 2.1.3, les rasters hors de la base de données et tous les pilotes raster sont désactivés par défaut. Afin de les réactiver, vous devez définir les variables d'environnement suivantes POSTGIS_GDAL_ENABLED_DRIVERS et POSTGIS_ENABLE_OUTDB_RASTERS dans l'environnement du serveur. Pour PostGIS 2.2, vous pouvez utiliser l'approche plus multiplateforme de la définition de la Section 8.22 correspondante, « Variables personnalisées grand unifiées (GUC) ».

Si vous souhaitez activer le raster hors ligne :

Tout autre paramètre ou aucun paramètre désactivera les rasters hors db.

Afin d'activer tous les pilotes GDAL disponibles dans votre installation GDAL, définissez cette variable d'environnement comme suit

Si vous souhaitez activer uniquement des pilotes spécifiques, définissez votre variable d'environnement comme suit :

Si vous êtes sous windows, ne citez pas la liste des pilotes

La définition des variables d'environnement varie en fonction du système d'exploitation. Pour PostgreSQL installé sur Ubuntu ou Debian via apt-postgresql, le moyen préféré est d'éditer /etc/postgresql/ 10 / principale /environment où 10 fait référence à la version de PostgreSQL et main fait référence au cluster.

Sous Windows, si vous exécutez en tant que service, vous pouvez définir via les variables système auxquelles vous pouvez accéder pour Windows 7 en cliquant avec le bouton droit sur Ordinateur->Properties Paramètres système avancés ou dans l'explorateur en naviguant vers Panneau de configurationTous les éléments du panneau de configurationSystème . Puis en cliquant Paramètres système avancés ->Avancé->Variables d'environnement et l'ajout de nouvelles variables système.

Après avoir défini les variables d'environnement, vous devrez redémarrer votre service PostgreSQL pour que les modifications prennent effet.


Classe : QgsVectorLayer¶

Le QgsVectorLayer est construit en instanciant un fournisseur de données. Le fournisseur interprète le chemin fourni (url) de la source de données pour se connecter et accéder aux données.

Paramètres:chemin – Le chemin ou l'url du paramètre. Typiquement, cela encode

paramètres utilisés par le fournisseur de données en tant qu'éléments de requête d'URL. :param baseName : le nom utilisé pour représenter la couche dans la légende :param providerLib : le nom du fournisseur de données, par exemple, « memory », « postgres » :param options : options de chargement de la couche

Représente une couche vectorielle qui gère un ensemble de données vectorielles.

Le QgsVectorLayer est instancié en spécifiant le nom d'un fournisseur de données, tel que postgres ou wfs, et l'url définissant l'ensemble de données spécifique auquel se connecter. Le constructeur de la couche vectorielle instancie à son tour une sous-classe QgsVectorDataProvider correspondant au type de fournisseur et lui transmet l'url. Le fournisseur de données se connecte à la source de données.

Le QgsVectorLayer fournit une interface commune aux différents types de données. Il gère également l'édition des transactions.

Exemple d'utilisation de la classe QgsVectorLayer :

Les principaux fournisseurs de données pris en charge par QGIS sont répertoriés ci-dessous.

fournisseurs de sections Fournisseurs de données vectorielles

sous-section mémoire Memory data providerType (mémoire)

Le fournisseur de données mémoire est utilisé pour construire en mémoire des données, par exemple des données scratch ou des données générées à partir d'opérations spatiales telles que le contouring. Il n'y a pas de stockage persistant inhérent des données. L'uri de la source de données est construit. L'url spécifie le type de géométrie ("point", "linestring", "polygon", "multipoint", "multilinestring", "multipolygon"), éventuellement suivi des paramètres d'url comme suit :

Définit le système de référence de coordonnées à utiliser pour la couche. la définition est n'importe quelle chaîne acceptée par QgsCoordinateReferenceSystem.createFromString()

Spécifie que la couche sera construite avec un index spatial

Définit un attribut de la couche. Plusieurs paramètres de champ peuvent être ajoutés à la définition du fournisseur de données. type est l'un des "entier", "double", "chaîne".

Un exemple d'URL est "Point?crs=epsg:4326&field=id:integer&field=name:string(20)&index=yes"

sous-section ogr fournisseur de données OGR (ogr)

Accède aux données à l'aide des pilotes OGR (http://www.gdal.org/ogr/ogr_formats.html). L'url est la chaîne de connexion OGR. Une grande variété de formats de données est accessible à l'aide de ce pilote, y compris des formats basés sur des fichiers utilisés par de nombreux systèmes SIG, des formats de base de données et des services Web. Certains de ces formats sont également pris en charge par les fournisseurs de données personnalisés répertoriés ci-dessous.

sous-section spatialite fournisseur de données SpatiaLite (spatialite)

Accéder aux données dans une base de données SpatiaLite. L'url définit les paramètres de connexion, la table, la colonne de géométrie et d'autres attributs. L'url peut être construite à l'aide de la classe QgsDataSourceUri.

sous-section postgres fournisseur de données PostgreSQL (postgres)

Se connecte à une base de données PostgreSQL. L'url définit les paramètres de connexion, la table, la colonne de géométrie et d'autres attributs. L'url peut être construite à l'aide de la classe QgsDataSourceUri.

sous-section mssql fournisseur de données du serveur Microsoft SQL (mssql)

Se connecte à une base de données de serveur Microsoft SQL. L'url définit les paramètres de connexion, la table, la colonne de géométrie et d'autres attributs. L'url peut être construite à l'aide de la classe QgsDataSourceUri.

sous-section wfs WFS (service de fonctionnalités Web) fournisseur de données (wfs)

Utilisé pour accéder aux données fournies par un service de fonctionnalités Web.

L'url peut être une URL HTTP vers un serveur WFS (ancien, par exemple http://foobar/wfs?TYPENAME=xxx&SRSNAME=yyy[&FILTER=zzz]), ou, à partir de QGIS 2.16, un URI construit à l'aide de la classe QgsDataSourceUri avec les paramètres suivants : - url=string (obligatoire) : URL HTTP vers un endpoint du serveur WFS. par exemple http://foobar/wfs - typename=string (obligatoire) : WFS typename - srsname=string (recommandé) : SRS comme 'EPSG:XXXX' - username=string - password=string - authcfg=string - version=auto/ 1.0.0/1.1.0/2.0.0 -sql=string : instruction SQL SELECT complète avec WHERE, ORDER BY et éventuellement avec JOIN si supporté sur le serveur - filter=string : expression QGIS ou filtre OGC/FES - restrictToRequestBBOX=1 : pour télécharger uniquement les entités dans l'étendue de la vue (ou plus généralement dans la zone de délimitation de l'itérateur d'entités) - maxNumFeatures=number - IgnoreAxisOrientation=1 : pour ignorer l'ordre des axes EPSG pour WFS 1.1 ou 2.0 - InvertAxisOrientation=1 : pour inverser l'ordre des axes - hideDownloadProgressDialog=1 : pour masquer la boîte de dialogue de progression du téléchargement

Le paramètre de chaîne de requête « FILTER » peut être utilisé pour filtrer le type de fonctionnalité WFS. La valeur de la clé « FILTER » peut être une expression QGIS ou un filtre XML OGC. Si la valeur est définie sur une expression QGIS, le pilote la transformera en filtre XML OGC avant de la transmettre au serveur WFS. Attention, le filtre d'expression QGIS ne prend en charge que les opérateurs d'attributs " =, !=, <, >, <=, >=, AND, OR, NOT, LIKE, IS NULL ", " BBOX, Disjoint, Intersects, Touches, Crosses, Contains, Overlaps, Within" les opérateurs binaires spatiaux et les fonctions de constructeur de géométrie locale "geomFromWKT, geomFromGML" de QGIS.

cependant, la fonction doit exister côté serveur et avoir le même nom et les mêmes arguments pour fonctionner.

dans les opérateurs binaires spatiaux, par exemple intersecte($geometry, geomFromWKT(‘POINT (5 6)’))

sous-section delimitedtext Fournisseur de données de fichier texte délimité (delimitedtext)

Accède aux données dans un fichier texte délimité, par exemple des fichiers CSV générés par des feuilles de calcul. Le contenu du fichier est divisé en colonnes en fonction des caractères délimiteurs spécifiés. Chaque enregistrement peut être représenté spatialement soit par une colonne de coordonnées X et Y, soit par des colonnes au format WKT (texte bien connu).

L'url définit le nom du fichier, les options de formatage (comment le texte du fichier est divisé en champs de données et quels champs contiennent les coordonnées X, Y ou la définition de texte WKT. Les options sont spécifiées en tant qu'éléments de requête d'url.

Dans sa forme la plus simple, l'url peut simplement être le nom du fichier, auquel cas il sera chargé en tant que fichier au format CSV.

L'URL peut inclure les éléments suivants :

Définit l'encodage des caractères dans le fichier. La valeur par défaut est UTF-8. Pour utiliser l'encodage par défaut du système d'exploitation, utilisez « Système ».

Définit l'algorithme utilisé pour diviser les enregistrements en colonnes. Les enregistrements sont définis par des nouvelles lignes, à l'exception des fichiers au format csv pour lesquels les champs entre guillemets peuvent s'étendre sur plusieurs enregistrements. Le type par défaut est csv.

les caractères délimiteurs, les guillemets et les caractères d'échappement. Les caractères délimiteurs marquent la fin d'un champ. Les guillemets entourent un champ qui peut contenir des caractères délimiteurs et des sauts de ligne. Les caractères d'échappement entraînent le traitement littéral du caractère suivant (y compris les caractères délimiteur, guillemet et saut de ligne). Les caractères d'échappement et les guillemets doivent être différents des caractères délimiteurs. Les caractères d'échappement qui sont également des guillemets sont traités spécialement - ils ne peuvent s'échapper qu'entre guillemets. Ailleurs, ils sont traités comme des guillemets. Les valeurs par défaut pour le délimiteur, la citation et l'échappement sont ',', '"', '"'. - "regexp" divise chaque enregistrement à l'aide d'une expression régulière (voir la documentation QRegExp pour plus de détails). - « whitespace » divise chaque enregistrement en fonction des espaces (sur ou plusieurs caractères d'espacement. L'espace blanc au début de l'enregistrement est ignoré. - « plain » est fourni pour une compatibilité descendante. Il est équivalent à CSV sauf que les caractères de guillemet par défaut sont simples et doubles guillemets, et il n'y a pas de caractères d'échappement.

Définit les caractères délimiteurs utilisés pour les fichiers de type csv et brut, ou l'expression régulière pour les fichiers de type regexp. Il s'agit d'une chaîne littérale de caractères, sauf que « t » peut être utilisé pour représenter un caractère de tabulation.

Définit les caractères utilisés comme guillemets pour les fichiers de type csv et brut.

Définit les caractères utilisés pour échapper les délimiteurs, les guillemets et les sauts de ligne.

Définit le nombre de lignes à ignorer au début du fichier (par défaut 0)

Définit si le premier enregistrement du fichier (après les lignes sautées) contient des noms de colonnes (par défaut oui)

Si oui, les espaces de début et de fin seront supprimés des champs

Si oui, les champs vides seront supprimés (équivalent à la concaténation de délimiteurs consécutifs)

Spécifie le nombre maximal de champs à charger pour chaque enregistrement. Les champs supplémentaires seront supprimés. La valeur par défaut est 0 - charge tous les champs.

Définit un caractère utilisé comme point décimal dans les colonnes numériques. La valeur par défaut est « . ».

Définit le nom des colonnes contenant les coordonnées x et y pour les géométries de point XY. Si useHeader est no (c'est-à-dire qu'il n'y a pas de noms de colonnes), alors c'est le numéro de colonne (avec la première colonne comme 1).

Si oui, les coordonnées X et Y sont interprétées au format degrés/minutes/secondes (assez permissivement) ou au format degrés/minutes.

Définit le nom des colonnes contenant la définition de géométrie WKT pour les géométries WKT. Si useHeader est no (c'est-à-dire qu'il n'y a pas de noms de colonnes), alors c'est le numéro de colonne (avec la première colonne comme 1).

Définit le type de géométrie pour les géométries de type WKT. QGIS n'affichera qu'un seul type de géométrie pour la couche - tous les autres seront ignorés lors du chargement du fichier. Par défaut, le fournisseur utilise le type de la première géométrie du fichier. Utilisez geomType pour remplacer ce type.

geomType peut également être défini sur aucun, auquel cas la couche est chargée sans géométries.

Définit une expression qui identifiera un sous-ensemble d'enregistrements à afficher

Définit le système de référence de coordonnées utilisé pour la couche. Cela peut être n'importe quelle chaîne acceptée par QgsCoordinateReferenceSystem.createFromString()

Détermine si le fournisseur génère un index pour améliorer l'efficacité des sous-ensembles. La valeur par défaut est oui

Détermine si le fournisseur génère un index spatial. La valeur par défaut est non.

Définit si le fichier sera surveillé pour les modifications. La valeur par défaut consiste à surveiller les modifications.

Les erreurs rencontrées lors du chargement du fichier ne seront pas signalées dans une boîte de dialogue utilisateur si silence est inclus (elles seront toujours affichées dans le journal de sortie).

sous-section gpx fournisseur de données GPX (gpx)

Le fournisseur lit les pistes, les routes et les points de cheminement à partir d'un fichier GPX. L'url définit le nom du fichier et le type de données à récupérer (« track », « route » ou « waypoint »).

Un exemple d'URL est "/home/user/data/holiday.gpx?type=route"

sous-section herbe Fournisseur de données sur l'herbe (herbe)

Fournisseur pour afficher des données vectorielles dans une couche SIG GRASS.

TODO QGIS3 : Supprimer virtual des méthodes non héritées (comme isModified)

Actions Obtenez toutes les actions de couche définies sur cette couche.
ajouter un attribut Ajouter un champ d'attribut (mais ne le valide pas) renvoie vrai si le champ a été ajouté
addCurvedPart .
ajouterBague Courbe Ajoute un anneau aux entités polygones/multipolygones (prend possession)
addExpressionField Ajouter un nouveau champ qui est calculé par l'expression spécifiée
addFeature
ajouter des fonctionnalités
ajouterRejoindre Joint un autre calque vectoriel à ce calque
ajouterPartie Ajoute un nouveau polygone partiel à une entité multipartie
ajouterPartV2 Ajoute un nouveau polygone partiel à une entité multipartie
ajouterAnneau Ajoute un anneau aux entités polygones/multipolygones
addTopologicalPoints Ajoute des points topologiques pour chaque sommet de la géométrie.
agrégat Calcule une valeur agrégée à partir des caractéristiques de la couche.
appendError
attributAlias Renvoie l'alias d'un nom d'attribut ou une chaîne nulle s'il n'y a pas d'alias.
attributAlias Renvoie une carte du nom du champ à l'alias d'attribut
attributDisplayName Fonction de commodité qui renvoie l'alias d'attribut s'il est défini ou le nom du champ sinon
liste d'attributs Renvoie la liste des index d'attributs.
attributTableConfig Obtenez l'objet de configuration de table attributaire.
coucheauxiliaire Renvoie la couche auxiliaire actuelle.
commencerCommandeModifier Créer une commande d'édition pour les opérations d'annulation/rétablissement
BoundingBoxOfSelected Renvoie le cadre de délimitation des entités sélectionnées.
capacitésChaîne Capacités pour cette couche, séparées par des virgules et traduites.
changeAttributeValue Modifie une valeur d'attribut pour une entité (mais ne valide pas immédiatement les modifications).
changeAttributeValues Modifie les valeurs des attributs d'une entité (mais ne valide pas immédiatement les modifications).
modifierGéométrie Modifie la géométrie d'une entité dans le tampon d'édition de la couche (mais ne valide pas immédiatement les modifications).
enfantEvénement
cloner Renvoie une nouvelle instance équivalente à celle-ci.
commitModifications Tente de valider auprès du fournisseur de données sous-jacent toutes les modifications mises en mémoire tampon apportées depuis le dernier appel à startEditing().
commitErrors Renvoie une liste contenant tous les messages d'erreur générés lors de la tentative de validation des modifications apportées à la couche.
stylesconditionnels Renvoie les styles conditionnels définis pour ce calque.
connecterNotifier
contrainteDescription Renvoie le nom descriptif de l'expression de contrainte pour un index de champ spécifié.
expressioncontrainte Renvoie l'expression de contrainte pour un index de champ spécifié, si défini.
countSymboleCaractéristiques Compter les caractéristiques pour les symboles.
createExpressionContext
createExpressionContextScope
createMapRenderer Renvoie une nouvelle instance de QgsMapLayerRenderer qui sera utilisée pour le rendu d'un contexte donné
événement personnalisé
donnéesCommentaire Renvoie une description pour cette couche telle que définie dans le fournisseur de données.
fournisseur de données
valeur par défaut Renvoie la valeur par défaut calculée pour l'index de champ spécifié.
defaultValueDefinition Renvoie la définition de l'expression utilisée lors du calcul de la valeur par défaut d'un champ.
deleteAttribute Supprime un champ d'attribut (mais ne le valide pas).
deleteAttributes Supprime une liste de champs d'attribut (mais ne la valide pas)
supprimerFonctionnalité Supprime une entité de la couche (mais ne la valide pas).
supprimerFonctionnalités Supprime un ensemble d'entités de la couche (mais ne le valide pas)
deleteSelectedFeatures Supprime les entités sélectionnées
deleteStyleFromDatabase Supprimer un style de la base de données
supprimerSommet Supprime un sommet d'une entité.
dépendances Obtient la liste des dépendances.
désélectionner Désélectionner la fonctionnalité par son ID
détruireModifierCommande Détruire la commande active et annuler toutes les modifications qu'elle contient
diagramLayerSettings
diagrammeRenderer
diagrammesActivé Renvoie si la couche contient des diagrammes qui sont activés et doivent être dessinés.
déconnecterNotifier
displayExpression Obtenez l'expression d'aperçu, utilisée pour créer une chaîne d'aperçu lisible par l'homme.
champ d'affichage Il s'agit d'un raccourci pour accéder à displayExpression s'il s'agit d'un champ simple.
dessinerMarqueurVertex Dessine un symbole de sommet aux coordonnées (écran) x, y.
editBuffer Tampon avec des opérations d'édition non validées.
editFormConfig Obtenez la configuration du formulaire utilisé pour représenter cette couche vectorielle.
editorWidgetSetup La configuration du widget de l'éditeur définit quel QgsFieldFormatter et quel widget de l'éditeur seront utilisés pour le champ à l'index .
finEditCommande Terminez la commande d'édition et ajoutez-la à la pile d'annulation/rétablissement
ExclureAttributsWfs Un ensemble d'attributs qui ne sont pas publiés dans les requêtes WFS avec le serveur QGIS.
ExclureAttributsWms Un ensemble d'attributs qui ne sont pas publiés dans les requêtes WMS avec le serveur QGIS.
champexpression Renvoie l'expression utilisée pour un champ d'expression donné
Le degré
fonctionBlendMode Renvoie le mode de fusion actuel pour les entités
featureCount Nombre d'entités rendues avec la clé de légende spécifiée.
champContraintes Renvoie toutes les contraintes présentes pour un index de champ spécifié.
champContraintesEtForce Renvoie une carte de contrainte avec leur force pour un champ spécifique de la couche.
des champs Renvoie la liste des champs de cette couche.
géométrieType Renvoie un point, une ligne ou un polygone
getFeature Interrogez la couche pour l'entité avec l'ID donné.
getFeatures Interrogez la couche pour les entités spécifiées dans la demande.
getSelectedFeatures Obtenir un itérateur des fonctionnalités sélectionnées
getStyleFromDatabase Renvoie le style nommé correspondant à l'identifiant de style fourni
hasDependencyCycle
htmlMétadonnées
insertVertex Insérer un nouveau sommet avant le numéro de sommet donné, dans l'anneau, l'élément (le premier numéro est l'index 0) et l'entité donnés Non significatif pour les géométries de point
inverser la sélection Sélectionnez les fonctionnalités non sélectionnées et désélectionnez celles sélectionnées
inverserSélectionDansRectangle Inverser la sélection des entités trouvées dans le rectangle de recherche (dans les coordonnées de la couche)
estChampAuxiliaire Renvoie vrai si le champ provient de la couche auxiliaire, faux sinon.
isEditCommandActive Tester si une commande d'édition est active
estModifiable Renvoie vrai si le fournisseur est en mode édition
estModifié Renvoie true si le fournisseur a été modifié depuis le dernier commit
estSignalConnecté
estSpatial Renvoie true s'il s'agit d'une couche géométrique et false dans le cas de NoGeometry (table uniquement) ou UnknownGeometry
joinBuffer Accesseur à l'objet tampon de jointure
étiquetage Accès à la configuration de l'étiquetage.
labelsActivé Renvoie si le calque contient des étiquettes qui sont activées et doivent être dessinées.
listStylesInDatabase Répertorie tous les styles dans la base de données divisés en liés à la couche et non liés à
loadAuxiliaryLayer Charge le calque auxiliaire pour ce calque vectoriel.
loadNamedStyle Charger un style nommé à partir du fichier/base de données locale/base de données de la source de données
carteTipModèle Le mapTip est une jolie représentation html pour les informations sur les fonctionnalités.
valeur maximum Renvoie la valeur maximale pour une colonne d'attribut ou une variante invalide en cas d'erreur.
valeur minimum Renvoie la valeur minimale pour une colonne d'attribut ou une variante invalide en cas d'erreur.
modifierSélection Modifie la sélection courante sur ce calque
moveVertex Déplace le sommet au numéro de position, l'anneau et l'élément donnés (le premier numéro est l'index 0) et l'entité aux coordonnées données
déplacerVertexV2 Déplace le sommet au numéro de position, l'anneau et l'élément donnés (le premier numéro est l'index 0) et l'entité aux coordonnées données
opacité Renvoie l'opacité du calque vectoriel, où l'opacité est une valeur comprise entre 0 (totalement transparent) et 1.
PrimaryKeyAttributes Renvoie la liste des attributs qui constituent les clés primaires de la couche.
fournisseurType Renvoie le type de fournisseur pour cette couche
lireCommonStyle
readCustomProperties
readExtentFromXml Renvoie true si l'étendue est lue à partir du document XML lorsque la source de données n'a pas de métadonnées, false si c'est le fournisseur de données qui la détermine.
lireSld
readStyle Lisez le style de la couche actuelle à partir du nœud Dom fourni.
readStyleManager
lireSymbologie Lisez la symbologie de la couche actuelle à partir du nœud Dom fourni.
lireXml Lit l'état spécifique de la couche vectorielle à partir du nœud Dom du fichier de projet.
récepteurs
référencementRelations Obtenir des relations, où se trouve la clé étrangère sur cette couche
recharger Se synchronise avec les changements dans la source de données
removeExpressionField Supprimer un champ d'expression
removeFieldAlias Supprime un alias (un nom d'affichage) pour les attributs à afficher dans les boîtes de dialogue
removeFieldConstraint Supprime une contrainte pour un index de champ spécifié.
supprimerRejoindre Supprime une jointure de couche vectorielle
supprimerSélection Effacer la sélection
renameAttribute Renomme un champ d'attribut (mais ne le valide pas).
moteur de rendu Rendu de retour.
résoudreRéférences Résoudre les références à d'autres couches (conservées en tant qu'ID de couche après la lecture de XML) dans des objets de couche
retour en arriere Arrête une opération d'édition en cours et supprime toutes les éditions non validées.
saveStyleToDatabase Enregistrez le style nommé et sld du calque dans la table des styles de la base de données.
sélectionner Sélectionnez la fonctionnalité par son ID
tout sélectionner Sélectionnez toutes les fonctionnalités
selectParExpression Sélectionnez les entités correspondantes à l'aide d'une expression.
selectByIds Sélectionnez les entités correspondantes à l'aide d'une liste d'ID d'entités.
selectByRect Sélectionnez les entités trouvées dans le rectangle de recherche (dans les coordonnées de la couche)
selectedFeatureCount Le nombre d'entités sélectionnées dans cette couche
selectedFeatureIds Renvoyer la référence aux identifiants des entités sélectionnées
Caractéristiques sélectionnées Obtenez une copie des fonctionnalités sélectionnées par l'utilisateur
expéditeur
senderSignalIndex
setAttributeTableConfig Définissez l'objet de configuration de la table attributaire.
setAuxiliaryLayer Définit le calque auxiliaire actuel.
setConstraintExpression Définissez l'expression de contrainte pour l'index de champ spécifié.
setCoordinateSystem Configurer la transformation du système de coordonnées pour la couche
setDataSource Mettez à jour la source de données de la couche.
setDefaultValueDefinition Définit la définition de l'expression à utiliser lors du calcul de la valeur par défaut d'un champ.
setDependencies Définit la liste des dépendances.
setDiagramLayerSettings
setDiagramRenderer Définit l'objet de rendu du diagramme (en prend possession)
setDisplayExpression Définissez l'expression d'aperçu, utilisée pour créer une chaîne d'aperçu lisible par l'homme.
setEditFormConfig Obtenez la configuration du formulaire utilisé pour représenter cette couche vectorielle.
setEditorWidgetSetup copydoc editorWidgetSetup
setError
setExcludeAttributesWfs Un ensemble d'attributs qui ne sont pas publiés dans les requêtes WFS avec le serveur QGIS.
setExcludeAttributesWms Un ensemble d'attributs qui ne sont pas publiés dans les requêtes WMS avec le serveur QGIS.
setExtent Définir l'étendue
setFeatureBlendMode Définir le mode de fusion utilisé pour le rendu de chaque entité
setFieldAlias Définit un alias (un nom d'affichage) pour les attributs à afficher dans les boîtes de dialogue
setFieldConstraint Définit une contrainte pour un index de champ spécifié.
setLabeling Définir la configuration de l'étiquetage.
setLabelsEnabled Définit si les étiquettes doivent être activées pour le calque.
setMapTipTemplate Le mapTip est une jolie représentation html pour les informations sur les fonctionnalités.
setOpacity Définit l'opacité du calque vectoriel, où l'opacité est une valeur comprise entre 0 (totalement transparent) et 1.
setProviderEncoding Définit le codage de texte du fournisseur de données
setReadExtentFromXml Drapeau permettant d'indiquer si l'extent doit être lu à partir du document XML lorsque la source de données n'a pas de métadonnées ou si le fournisseur de données doit la déterminer.
setReadOnly Rendre le calque en lecture seule (édition désactivée) ou non
setRenderer Définir le moteur de rendu qui sera invoqué pour représenter cette couche.
setSimplifyMethod Définir les paramètres de simplification pour un rendu rapide des entités
setSubsetString Définir la chaîne (généralement sql) utilisée pour définir un sous-ensemble de la couche
setValide
simplifierDrawingCanbeApplied Renvoie si le VectorLayer peut appliquer l'astuce de simplification spécifiée
simplifierMéthode Renvoie les paramètres de simplification pour un rendu rapide des entités
sourceCrs
sourceEtendue
nom de la source
splitCaractéristiques Divise les caractéristiques coupées par la ligne donnée
splitParts Divise les pièces coupées par la ligne donnée
commencerÉdition Rend le calque modifiable.
Type de stockage Renvoie le type de stockage permanent de cette couche sous forme de nom convivial.
sous-ensembleChaîne Obtenir la chaîne (généralement sql) utilisée pour définir un sous-ensemble de la couche
timerEvénement
translateFeature Traduit la fonctionnalité par dx, dy
uniqueChaînesCorrespondance Renvoie les valeurs de chaîne uniques d'un attribut qui contiennent une chaîne de sous-ensemble spécifiée.
valeursuniques Calcule une liste de valeurs uniques contenues dans un attribut de la couche.
updateChampExpression Modifie l'expression utilisée pour définir un champ (virtuel) basé sur une expression
mettre à jour les étendues Mettez à jour les étendues de la couche.
mettre à jour Met à jour une entité existante dans la couche, en remplaçant les attributs et la géométrie de l'entité par QgsFeature correspondant.
mettre à jour les champs Régénérera la propriété des champs de cette couche en obtenant tous les champs du dataProvider, les champs joints et les champs virtuels.
vecteurJoint
wkbType Renvoie le WKBType ou WKBUnknown en cas d'erreur
écrireCommonStyle
writeCustomProperties
écrireSld Écrit la symbologie de la couche dans le document fourni dans SLD 1.
écritureStyle Écrivez uniquement les informations de style pour le calque dans le document
writeStyleManager
écrireSymbologie Écrivez la symbologie de la couche dans le document fourni.
écrireXml Écrire l'état spécifique de la couche vectorielle dans le nœud Dom du fichier de projet.

attributAjouté Sera émis, lorsqu'un nouvel attribut aura été ajouté à cette couche vectorielle.
attributSupprimé Sera émis, lorsqu'un attribut a été supprimé de cette couche vectorielle.
attributValueChanged Est émis chaque fois qu'un changement de valeur d'attribut est effectué dans le tampon d'édition.
avantAjoutChampExpression Sera émis, lorsqu'un champ d'expression va être ajouté à cette couche vectorielle.
avantCommitChanges Est émis, avant que les modifications ne soient validées pour le fournisseur de données [signal]
avantModificationCommencée Est émis, avant le début de l'édition sur cette couche [signal]
avantModifiéVérifier Est émis, lorsque la couche est vérifiée pour les modifications.
avantSuppressionChampExpression Sera émis, lorsqu'un champ d'expression va être supprimé de cette couche vectorielle.
avantRollBack Est émis, avant que les modifications ne soient annulées [signal]
Modifications des valeurs d'attributs engagées Ce signal est émis lorsque les changements de valeur d'attribut sont enregistrés dans le fournisseur [signal]
Attributs engagésAjouté Ce signal est émis, lorsque des attributs sont ajoutés au fournisseur [signal]
Attributs engagésSupprimé Ce signal est émis, lorsque les attributs sont supprimés du fournisseur [signal]
engagéFonctionnalités ajoutées Ce signal est émis, lorsque des fonctionnalités sont ajoutées au fournisseur [signal]
commisCaractéristiquesSupprimé Ce signal est émis, lorsque les fonctionnalités sont supprimées du fournisseur [signal]
engagéGéométriesChangements Ce signal est émis lorsque les modifications de géométrie sont enregistrées dans le fournisseur [signal]
displayExpressionChanged Émis lorsque l'expression d'affichage change
modifierCommandeDétruite Signal émis, lorsqu'une commande d'édition est détruite
modifierCommandeTerminée Signal émis, lorsqu'une commande d'édition s'est terminée avec succès
modifierCommandeDémarrée Signal émis lorsqu'une nouvelle commande d'édition a été lancée
editFormConfigChanged Sera émis chaque fois que la configuration du formulaire d'édition de cette couche change.
éditionCommencée Est émis, lorsque l'édition sur cette couche a commencé [signal]
éditionArrêté Est émis, lorsque les modifications éditées ont été écrites avec succès dans le fournisseur de données [signal]
fonctionnalitéAjouté Émis lorsqu'une nouvelle entité a été ajoutée à la couche
featureBlendModeChanged Signal émis lorsque setFeatureBlendMode() est appelé [signal]
fonctionnalitéSupprimée Émis lorsqu'une fonctionnalité a été supprimée.
fonctionnalitésSupprimé Émis lorsque des fonctionnalités ont été supprimées.
géométrieChangé Est émis chaque fois qu'un changement de géométrie est effectué dans le tampon d'édition.
étiquetageFontNotFound Émis lorsque la famille de polices définie pour la couche d'étiquetage est introuvable sur le système [signal]
calqueModifié Ce signal est émis lorsque des modifications ont été effectuées sur la couche [signal]
mapTipTemplateChanged Émis lorsque l'info-bulle change
opacitéModifié Émis lorsque l'opacité du calque est modifiée, où l'opacité est une valeur comprise entre 0 (transparent) et 1 (opaque).
augmenterError Signale une erreur liée à cette couche vectorielle.
lireSymbologiePersonnalisée Signal émis chaque fois que la symbologie (fichier QML) de cette couche est en cours de lecture.
readOnlyChanged Émis lorsque l'état de lecture seule de cette couche est modifié.
sélectionChangé Ce signal est émis lorsque la sélection a été modifiée
symbolFeatureCountMapChanged Émis lorsque le nombre d'entités pour les symboles sur cette couche a été recalculé.
Champs mis à jour Est émis, chaque fois que les champs disponibles à partir de cette couche ont été modifiés.
écrireSymbologiePersonnalisée Signal émis chaque fois que la symbologie (fichier QML) pour cette couche est en cours d'écriture.

VideGéométrie = 1FetchFeatureFailed = 3IntersectionSélection = 2¶ InvalidLayer = 4classer OptionsCouche ( loadDefaultStyle : bool = True, readExtentFromXml : bool = False ) ¶

Constructeur pour LayerOptions.

loadDefaultStyle readExtentFromXml ¶ NoMarker = 2Supprimer de la sélection = 3classer Sélectionnez Comportement ¶

SemiTransparentCercle = 0Définir la sélection = 0¶ Succès = 0classer VertexMarkerType ¶


Impossible de charger la couche postgis à partir de la chaîne sql dans pyqgis - Systèmes d'information géographique

Les extraits de code de cette page nécessitent les importations suivantes :

Ouvrons quelques couches avec des données. QGIS reconnaît les couches vectorielles et raster. De plus, des types de calques personnalisés sont disponibles, mais nous n'allons pas en discuter ici.

Pour créer et ajouter une instance de couche vectorielle au projet, spécifiez l'identifiant de la source de données de la couche, le nom de la couche et le nom du fournisseur :

L'identifiant de la source de données est une chaîne et il est spécifique à chaque fournisseur de données vectorielles. Le nom de la couche est utilisé dans le widget de liste de couches. Il est important de vérifier si la couche a été chargée avec succès. Si ce n'était pas le cas, une instance de couche non valide est renvoyée.

Pour une couche vectorielle de géopackage :

Cela crée une nouvelle couche et l'ajoute au projet QGIS actuel (la faisant apparaître dans la liste des couches) en une seule étape. La fonction renvoie l'instance du calque ou Aucun si le calque n'a pas pu être chargé.

La liste suivante montre comment accéder à diverses sources de données à l'aide de fournisseurs de données vectorielles :

Bibliothèque OGR (Shapefile et de nombreux autres formats de fichiers) --- la source de données est le chemin d'accès au fichier :

pour dxf (notez les options internes dans l'uri de la source de données) :

Base de données PostGIS - la source de données est une chaîne contenant toutes les informations nécessaires pour créer une connexion à la base de données PostgreSQL.

:class:`QgsDataSourceUri <qgis.core.QgsDataSourceUri>` peut générer cette chaîne pour vous. Notez que QGIS doit être compilé avec le support Postgres, sinon ce fournisseur n'est pas disponible :

L'argument False passé à uri.uri(False) empêche l'expansion des paramètres de configuration d'authentification, si vous n'utilisez aucune configuration d'authentification, cet argument ne fait aucune différence.

CSV ou autres fichiers texte délimités --- pour ouvrir un fichier avec un point-virgule comme délimiteur, avec le champ "x" pour la coordonnée X et le champ "y" pour la coordonnée Y, vous utiliseriez quelque chose comme ceci :

La chaîne du fournisseur est structurée comme une URL, le chemin doit donc être préfixé par file:// . Il permet également des géométries formatées WKT (texte bien connu) comme alternative aux champs x et y, et permet de spécifier le système de référence de coordonnées. Par example:

Fichiers GPX --- le fournisseur de données "gpx" lit les traces, les routes et les waypoints à partir des fichiers gpx. Pour ouvrir un fichier, le type (track/route/waypoint) doit être spécifié dans l'url :

Base de données SpatiaLite --- De la même manière que les bases de données PostGIS, :class:`QgsDataSourceUri <qgis.core.QgsDataSourceUri>` peut être utilisé pour générer l'identifiant de la source de données :

Géométries basées sur MySQL WKB, via OGR --- la source de données est la chaîne de connexion à la table :

Connexion WFS : la connexion est définie avec un URI et en utilisant le fournisseur WFS :

L'uri peut être créé à l'aide de la bibliothèque urllib standard :

Pour accéder aux fichiers raster, la bibliothèque GDAL est utilisée. Il prend en charge une large gamme de formats de fichiers. Si vous rencontrez des problèmes pour ouvrir certains fichiers, vérifiez si votre GDAL prend en charge le format particulier (tous les formats ne sont pas disponibles par défaut). Pour charger un raster à partir d'un fichier, spécifiez son nom de fichier et son nom d'affichage :

Pour charger un raster à partir d'un géopackage :

De la même manière que les couches vectorielles, les couches raster peuvent être chargées à l'aide de la fonction addRasterLayer de l'objet :class:`QgisInterface <qgis.gui.QgisInterface>` :

Cela crée un nouveau calque et l'ajoute au projet en cours (le faisant apparaître dans la liste des calques) en une seule étape.

Les rasters PostGIS, similaires aux vecteurs PostGIS, peuvent être ajoutés à un projet à l'aide d'une chaîne URI. Il est efficace de conserver un dictionnaire de chaînes réutilisable pour les paramètres de connexion à la base de données. Cela facilite la modification du dictionnaire pour la connexion applicable. Le dictionnaire est ensuite codé dans un URI à l'aide de l'objet de métadonnées du fournisseur « postgresraster ». Après cela, le raster peut être ajouté au projet.

Les couches raster peuvent également être créées à partir d'un service WCS :

Voici une description des paramètres que l'URI WCS peut contenir :

L'URI WCS est composé de clé=valeur paires séparées par & . C'est le même format que la chaîne de requête dans l'URL, codé de la même manière. :class:`QgsDataSourceUri <qgis.core.QgsDataSourceUri>` doit être utilisé pour construire l'URI afin de garantir que les caractères spéciaux sont correctement codés.

  • URL (obligatoire) : URL du serveur WCS. N'utilisez pas VERSION dans l'URL, car chaque version de WCS utilise un nom de paramètre différent pour Obtenir des capacités version, voir param version.
  • identifiant (obligatoire) : Nom de la couverture
  • temps (optionnel) : position temporelle ou période (beginPosition/endPosition[/timeResolution])
  • format (facultatif) : nom du format pris en charge. La valeur par défaut est le premier format pris en charge avec tif dans le nom ou le premier format pris en charge.
  • crs (optionnel) : CRS sous la forme AUTHORITY:ID, par ex. EPSG : 4326. La valeur par défaut est EPSG : 4326 si elle est prise en charge ou le premier CRS pris en charge.
  • Nom d'utilisateur (facultatif) : Nom d'utilisateur pour l'authentification de base.
  • le mot de passe (facultatif) : Mot de passe pour l'authentification de base.
  • IgnorerGetMapUrl (facultatif, hack) : si spécifié (défini sur 1), ignorez l'URL GetCoverage publiée par GetCapabilities. Peut être nécessaire si un serveur n'est pas configuré correctement.
  • Inverser l'orientation de l'axe (optionnel, hack) : Si spécifié (défini sur 1), change d'axe dans la requête GetCoverage. Peut être nécessaire pour le CRS géographique si un serveur utilise un ordre d'axe incorrect.
  • Ignorer l'orientation de l'axe (facultatif, hack) : Si spécifié (défini sur 1), n'inversez pas l'orientation de l'axe selon la norme WCS pour le CRS géographique.
  • cache (facultatif) : contrôle de chargement du cache, comme décrit dans QNetworkRequest::CacheLoadControl, mais la demande est renvoyée en tant que PreferCache en cas d'échec avec AlwaysCache. Valeurs autorisées : AlwaysCache, PreferCache, PreferNetwork, AlwaysNetwork. La valeur par défaut est AlwaysCache.

Vous pouvez également charger une couche raster à partir du serveur WMS. Cependant, il n'est actuellement pas possible d'accéder à la réponse GetCapabilities depuis l'API --- vous devez savoir quelles couches vous voulez :


PostSites est un ensemble de modules Python permettant de gérer des ensembles de données PostGIS et de récupérer plusieurs couches de données spatiales pour un ensemble de sites, représentés par les caractéristiques d'une couche particulière. Il permet de récupérer plusieurs couches de données en fonction de la proximité d'un point et d'organiser les couches en types spécifiques (tels que le terrain, les parcelles, etc.) qui peuvent être utilisées pour la modélisation ou la visualisation 3D.

PostSites est développé dans le cadre du Code Local

PostSites a besoin que psycopg2 et simplejson soient installés et disponibles sur sys.path . Notez que simplejson est inclus dans les bibliothèques standard pour python 2.6 et versions ultérieures, en tant que json . J'utilise simplejson pour la compatibilité descendante, donc si vous voulez utiliser python 2.5, vous le pouvez. postsites.py essaie d'abord d'importer simplejson, et si cela ne fonctionne pas, essaie d'importer json .

Sous Windows, afin d'installer des modules tiers (tels que psycopg2 , simplejson , xlwt et xlrd ) à partir de la ligne de commande avec un outil comme easy_install ou pip , vous devrez exécuter le programme 'cmd' en tant qu'administrateur. Pour ce faire, faites simplement un clic droit sur l'icône du programme 'cmd' et sélectionnez 'Exécuter en tant qu'administrateur'

Sous Windows, pour installer pip (qui est un outil qui facilite l'installation des packages pythoon.), vous devez visiter cette page et télécharger le script get-pip.py. Vous devrez exécuter le programme d'installation en tant qu'administrateur. Une fois que vous avez fait cela, vous pouvez installer toutes les dépendances à l'aide des commandes suivantes (pendant l'exécution en tant qu'administrateur) à l'aide de 'cmd'.

  • couches.py contient un exemple de dictionnaire pour organiser et gérer les couches.
  • connection-info.py est un exemple de petit dictionnaire de configuration utilisé pour se connecter à la base de données PostGIS
  • sqls est un dossier de modèles SQL utilisé pour créer des requêtes
  • plpython est un dossier de fonctions écrites dans le langage plpython à utiliser dans PostgreSQL

Avis de non-responsabilité : j'ai écrit cet exemple d'utilisation avant que J'ai commencé à écrire le code, afin de m'aider à comprendre ce que je vouloir à faire. Cela fonctionnera à peu près de la même manière.

Tout d'abord, nous allons désigner un dossier qui contient nos fichiers de formes. PostSites détectera tous les fichiers de formes qui se trouvent dans ce dossier, même s'ils sont imbriqués dans d'autres dossiers.

La commande suivante est un utilitaire qui facilite la configuration de la façon dont nos fichiers de formes sont chargés dans la base de données PostGIS. Il vous donne une feuille de calcul avec tous les systèmes de référence spatiale uniques et une autre feuille qui vous permet de configurer des informations sur chaque fichier ainsi que de définir des projections inconnues. Consultez les didacticiels pour obtenir des exemples sur la façon de modifier ce fichier.

Vous pouvez modifier le fichier de configuration .xls avec Excel ou Google Docs. Vous pouvez éditer ce fichier et, si vous le souhaitez, l'enregistrer sous un nom différent (assurez-vous de l'enregistrer en .xls) vous pouvez l'utiliser pour tout charger dans la base de données .

As-tu aimé? Seulement trois étapes pour passer d'un dossier à quelque chose qui peut récupérer des sites. Ensuite, nous pouvons commencer à obtenir des données GeoJSON pour un site comme celui-ci :

Ce module est utilisé pour créer des instructions SQL pour diverses tâches dans postGIS. Il essaie de créer une couche d'abstraction autour des instructions SQL répétitives, en les transformant en fonctions et en transmettant des variables telles que le nom de la couche de site, une couche souhaitée, un rayon de site, un identifiant de site dans des instructions SQL. Il formate également des listes de colonnes en chaînes à placer dans des instructions SQL.

Notez dans l'exemple ci-dessus que j'utilise sql pour déplacer la géométrie renvoyée vers « l'origine », où x=0 et y=0. Ceci est nécessaire pour importer la géométrie dans la plupart des programmes de modélisation 3D. La nouvelle « origine » dans ce cas devient le centroïde de la géométrie représentant un site individuel. Pour vous aider à comprendre l'une des fonctions ci-dessus commençant par ST_ , consultez la documentation de PostGIS.

Un module pour charger des données dans une base de données PostGIS pour PostSites Exemple d'utilisation prévue :

Quelques notes sur les codes de référence spatiale :

Deux excellentes ressources pour rechercher et vérifier les codes EPSG pour une référence spatiale donnée sont spatialreference.org et prj2epsg.org. ogr2ogr (l'outil utilisé pour charger les données dans PostSites) est capable de lire et de traduire automatiquement de nombreux systèmes de référence spatiale, mais il est préférable de toujours vérifier vos systèmes de coordonnées et de vous assurer qu'ils se transforment de la bonne projection à la bonne projection. De plus, il est courant de rencontrer des systèmes de référence spatiale inconnus ou peu familiers avec les algorithmes d'ogr2ogr. Aux États-Unis, il existe de nombreuses projections State Plane et de nombreuses données SIG sont dans ce format. Voici un exemple de projection California State Plane, utilisée dans la plupart des données SIG du comté de Los Angeles :

Si nous passons du temps à rechercher cela sur les sites mentionnés ci-dessus, vous constaterez que la meilleure correspondance est ESRI:102645 . ogr2ogr contient cette projection dans sa liste de projections, mais elle est plutôt répertoriée comme EPSG:102645 . Ainsi, lors du chargement de mes données à l'aide de PostSites, j'entrerai simplement 102645 comme code EPSG pour toutes les couches de données de cette projection.

Quelques autres projections courantes :

  • EPSG 4326: WGS 1984, un système de coordonnées géographiques lat/long extrêmement commun, et la valeur par défaut pour toutes les données TIGER. Unités en degrés.
  • EPSG 3785: Une projection sphérique de Mercator utilisée dans Google Maps et Open Street Maps. Unités en mètres.
  • EPSG 4269: Système de coordonnées géographiques North American Datum 1983. Unités en degrés

COUCHE¶

Ce mot-clé permet de créer des paires nom-valeur pour lier des variables dans des instructions SQL. La liaison de variable empêche l'injection SQL en échappant correctement les chaînes et les entiers. S'applique uniquement aux connexions PostGIS et Oracle.

Signale le début d'un objet CLASS.

A l'intérieur d'une couche, une seule classe sera utilisée pour le rendu d'une entité. Chaque caractéristique est testée par rapport à chaque classe dans l'ordre dans lequel elles sont définies dans le mapfile. La première classe qui correspond à ses contraintes d'échelle min/max et à sa vérification d'EXPRESSION pour l'entité actuelle sera utilisée pour le rendu.

Cela peut être contrôlé avec la directive de traitement RENDERMODE.

Spécifiez le groupe de la classe qui serait pris en compte au moment du rendu. Le paramètre GROUP de l'objet CLASS doit être utilisé en combinaison avec CLASSGROUP.

Nom de l'élément dans la table attributaire à utiliser pour les recherches de classe.

Signale le début d'un objet CLUSTER.

L'option de configuration CLUSTER permet de combiner plusieurs entités de la couche en entités uniques (agrégées) en fonction de leurs positions relatives. Pris en charge uniquement pour les couches POINT.

Signale le début d'un objet COMPOSITE.

Un ou plusieurs blocs COMPOSITE peuvent être utilisés pour signaler que le rendu doit être effectué dans une image temporaire et fusionné sur l'image de carte finale dans une étape finale. Les options définies à l'intérieur du bloc COMPOSITE détermineront comment cette fusion doit être effectuée (par exemple en appliquant l'opacité, l'opérateur de composition ou les filtres de pixels)

Chaîne de connexion à la base de données pour récupérer les données distantes.

Une chaîne de connexion PostGIS est essentiellement une chaîne de connexion PostgreSQL standard, elle prend la forme de "user=nobody password=****** dbname=dbname host=localhost port=5432"

Une chaîne de connexion Oracle : user/pass[@db]

Une chaîne de connexion SDE se compose d'un nom d'hôte, d'un nom d'instance, d'un nom de base de données, d'un nom d'utilisateur et d'un mot de passe séparés par des virgules.

Le pilote SDE natif de MapServer a été supprimé pour la version MapServer 7.0 (voir la discussion). Le support SDE est toujours accessible via le pilote OGR.

Données vectorielles pour des informations de connexion spécifiques pour diverses sources de données.

Voir Kernel Density Estimation (Dynamic Heatmap) pour des informations de connexion spécifiques pour l'estimation de la densité du noyau.

Ce mot clé permet de définir des options de connexion exprimées sous forme de paires clé/valeur. Ceci n'est actuellement implémenté que pour les couches CONNECTIONTYPE OGR ou raster, afin de transmettre les options ouvertes aux pilotes GDAL/OGR.

Exemple pour une source de données GeoJSON pour spécifier l'option ouverte FLATTEN_NESTED_ATTRIBUTES du pilote OGR GeoJSON.

Type de connexion. La valeur par défaut est locale. Voir la documentation supplémentaire pour tout autre type.

Données vectorielles pour des informations de connexion spécifiques pour diverses sources de données. Voir Union Layer pour combiner les couches, ajouté dans MapServer 6.0

Voir Kernel Density Estimation (Dynamic Heatmap) pour des informations de connexion spécifiques pour l'estimation de la densité du noyau.

mygis est un autre type de connexion, mais il est obsolète, veuillez consulter la section MySQL du document Vector Data pour les détails de connexion.

Nom de fichier complet des données spatiales à traiter. Aucune extension de fichier n'est nécessaire pour les fichiers de formes. Peut être spécifié par rapport à l'option SHAPEPATH de l'objet Map.

S'il s'agit d'une couche SDE, le paramètre doit inclure le nom de la couche ainsi que la colonne de géométrie, c'est-à-dire "mylayer,shape,myversion".

S'il s'agit d'une couche PostGIS, le paramètre doit être sous la forme "<columnname> from <tablename>", où "columnname" est le nom de la colonne contenant les objets géométriques et "tablename" est le nom de la table à partir de laquelle les données géométriques sera lu.

Pour Oracle, utilisez « shape FROM table » ou « shape FROM (instruction SELECT) » ou encore des requêtes compatibles Oracle plus complexes ! Notez que l'utilisation de sous-requêtes spatiales a cependant des impacts importants sur les performances. Essayez d'utiliser le FILTRE de MapServer chaque fois que possible à la place. Vous pouvez également voir le SQL soumis en forçant une erreur, par exemple en soumettant un paramètre DATA dont vous savez qu'il ne fonctionnera pas, en utilisant par exemple un mauvais nom de colonne.

Dans un cas d'utilisation standard, lorsque PostGIS, SpatiaLite ou GeoPackage sont utilisés comme source de données, le filtre BBOX (les cadres de délimitation se croisent, && avec PostGIS) est utilisé automatiquement. Cependant, dans certains cas d'utilisation rares, une sous-requête peut prendre beaucoup de temps si les données sont vraiment importantes, car les données finales ne seront filtrées que dans la requête. Afin de filtrer les données plus tôt, c'est-à-dire avant la requête finale, on peut filtrer les données directement dans la sous-requête à l'aide de la !BOX! variable : WHERE ST_Intersects(wkb_geometry,!BOX!) .

Données vectorielles pour des informations de connexion spécifiques pour diverses sources de données.

Active le débogage d'une couche dans la carte actuelle.

Débogage avec les versions MapServer >= 5.0 :

La sortie détaillée est générée et envoyée à la sortie d'erreur standard (STDERR) ou au fichier d'erreur MapServer si celui-ci est défini à l'aide de la variable d'environnement « MS_ERRORFILE ». Vous pouvez définir la variable d'environnement en utilisant le paramètre CONFIG au niveau MAP du mapfile, par exemple :

Vous pouvez également définir la variable d'environnement dans Apache en ajoutant ce qui suit à votre httpd.conf :

Une fois la variable d'environnement définie, le paramètre DEBUG mapfile peut être utilisé pour contrôler le niveau de sortie de débogage. Voici une description des valeurs DEBUG possibles :

DEBUG O ou OFF - seuls les appels msSetError() sont enregistrés dans MS_ERRORFILE. Aucune sortie msDebug() du tout. Ceci est la valeur par défaut et correspond au comportement d'origine de MS_ERRORFILE dans MapServer 4.x

DEBUG 1 ou ON - inclut toutes les sorties de DEBUG 0 plus les avertissements msDebug() sur les pièges courants, les échecs d'assertions ou les situations d'erreur non fatales (par exemple, valeurs manquantes ou invalides pour certains paramètres, fichiers de formes manquants dans tileindex, erreur de délai d'attente des serveurs WMS/WFS distants, etc. )

DÉBOGUER 2 - comprend toutes les sorties de DEBUG 1 ainsi que des avis et des informations de synchronisation utiles pour le réglage des fichiers de mappage et des applications

DÉBOGUER 3 - tout DEBUG 2 plus quelques sorties de débogage utiles pour résoudre les problèmes tels que les URL de connexion WMS appelées, les appels de connexion à la base de données, etc. C'est le niveau recommandé pour le débogage des mapfiles.

DÉBOGUER 4 - DEBUG 3 et encore plus de détails…

DÉBOGUER 5 - DEBUG 4 plus toute sortie msDebug() qui pourrait être plus utile aux développeurs qu'aux utilisateurs.

Vous pouvez également définir le niveau de débogage en utilisant la variable d'environnement "MS_DEBUGLEVEL".

Le paramètre DEBUG peut également être spécifié pour l'ensemble de la carte, en définissant le paramètre DEBUG dans l'objet MAP.

Pour plus de détails sur ce mécanisme de débogage, veuillez consulter Debugging MapServer .

Débogage avec les versions MapServer < 5:

La sortie détaillée est générée et envoyée à la sortie d'erreur standard (STDERR) ou au fichier journal MapServer s'il est défini à l'aide du paramètre LOG dans l'objet WEB. Les utilisateurs d'Apache verront les détails de la synchronisation pour le dessin dans le fichier error_log d'Apache. Nécessite que MapServer soit construit avec l'option DEBUG=MSDEBUG (option de configuration –with-debug).

6.0 sürümünden beri kullanım dışı: utilisez plutôt LAYER METADATA.

Basculez pour permettre à MapServer de renvoyer des données au format GML. Utile lorsqu'il est utilisé avec les opérations WMS GetFeatureInfo. "faux" par défaut.

L'encodage utilisé pour le texte dans la source de données de couche. La valeur doit être supportée par ICONV (par exemple « LATIN1 »). Lorsque ENCODING est défini (et différent de « UTF-8 »), les attributs de texte de la source de données seront convertis en UTF-8.

Requis pour afficher les caractères internationaux dans MapServer. Plus d'informations peuvent être trouvées dans le document Label Encoding .

ÉTENDUE [minx] [miny] [maxx] [maxy]

L'étendue spatiale des données. Dans la plupart des cas, vous n'aurez pas besoin de le spécifier, mais cela peut être utilisé pour éviter le coût de vitesse lié au calcul de l'étendue des données par MapServer. Une application peut également éventuellement utiliser cette valeur pour remplacer l'étendue de la carte.

Signale le début d'un objet FEATURE.

Ce paramètre permet un filtrage d'attributs spécifiques aux données qui est effectué en même temps que le filtrage spatial, mais avant que les expressions CLASS ne soient évaluées. La chaîne est simplement une expression MapServer :

Les filtres natifs sont pris en charge via la clé NATIVE_FILTER PROCESSING :

Pas

Jusqu'à MapServer 6, les filtres natifs pouvaient être spécifiés comme :

Mais ce n'est plus pris en charge.

Élément à utiliser avec des expressions FILTER simples. OGR et fichiers de formes uniquement.

Modèle à utiliser après l'ensemble des résultats d'une couche a été envoyé. Modes de requête multi-résultats uniquement.

GEOMTRANSFORM [<expression>|<Fichier Javascript>]

Utilisé pour indiquer que l'entité actuelle sera transformée.

<expression>: applique l'expression donnée à la géométrie.

(tampon([forme],dist)): Tamponnez la géométrie ( [shape] ) en utilisant les unités dist ground comme distance tampon. Pour les polygones, une dist négative produira un recul.

(simplifier([forme],tolérance)): simplifie une géométrie ( [forme] ) en utilisant l'algorithme standard de Douglas-Peucker.

(simplifypt([forme], tolérance)): simplifie une géométrie ( [forme] ), garantissant que le résultat est une géométrie valide ayant la même dimension et le même nombre de composants que l'entrée. la tolérance doit être non négative.

(généraliser([forme],tolérance)): simplifie une géométrie ( [shape] ) d'une manière comparable à l'algorithme ThinNoPoint de FME. Voir http://trac.osgeo.org/gdal/ticket/966 pour plus d'informations.

(smoothsia([forme], smoothing_size, smoothing_iteration, prétraitement)): va lisser une géométrie ( [forme] ) en utilisant l'algorithme SIA

Il existe une différence entre STYLE et LAYER GEOMTRANSFORM. Le niveau LAYER recevra les coordonnées au sol (mètres, degress, etc.) et le niveau STYLE recevra les coordonnées des pixels. L'argument des méthodes telles que simplifier () doit être dans les mêmes unités que les coordonnées des formes à ce point du flux de travail de rendu, c'est-à-dire les pixels au niveau STYLE et en unités au sol au niveau LAYER.

La variable [map_cellsize] est disponible si vous devez passer une valeur de pixel au niveau LAYER.

Pour que cette variable fonctionne dans l'analyseur d'expressions mathématiques, la [map_cellsize] doit être convertie en unité au sol de la couche. Si vous choisissez d'utiliser [map_cellsize] dans votre expression GEOMTRANSFORM, vous devez explicitement définir l'option UNITS dans la couche.

<Fichier Javascript>: Un fichier Javascript qui renvoie une nouvelle géométrie. Voir Transformation Javascript .

Signale le début d'un objet GRID.

Nom d'un groupe auquel appartient cette couche. Le nom du groupe peut ensuite être référencé en tant que nom de calque normal dans les fichiers modèles, ce qui permet de faire des choses comme activer et désactiver un groupe de calques à la fois.

Si un nom de groupe est présent dans le paramètre LAYERS d'une requête CGI, toutes les couches du groupe sont renvoyées (le STATUS des LAYER n'a aucun effet).

Modèle à utiliser avant que l'ensemble des résultats d'une couche a été envoyé. Modes de requête multi-résultats uniquement.

Signale le début d'un objet JOIN.

Supprimé dans la version 5.0 : veuillez plutôt consulter le paramètre ANGLE de l'objet LABEL.

Pour les versions MapServer < 5.0, il s'agit du nom de l'élément dans la table attributaire à utiliser pour les angles d'annotation de classe. Les valeurs doivent être en degrés.

Spécifie si les étiquettes doivent être dessinées lorsque les entités de cette couche sont dessinées, ou si elles doivent être mises en cache et dessinées une fois que toutes les couches ont été dessinées. La valeur par défaut est activée. La suppression des chevauchements d'étiquettes, le placement automatique, etc. ne sont disponibles que lorsque le cache d'étiquettes est actif.

Nom de l'élément dans la table attributaire à utiliser pour l'annotation de classe (c'est-à-dire l'étiquetage).

Échelle minimale à laquelle cette COUCHE est étiquetée. L'échelle est donnée comme dénominateur de la fraction d'échelle réelle, par exemple pour une carte à l'échelle 1:24 000, utilisez 24 000. Implémenté dans MapServer 5.0, pour remplacer le paramètre obsolète LABELMAXSCALE.

Échelle maximale à laquelle cette COUCHE est étiquetée. L'échelle est donnée comme dénominateur de la fraction d'échelle réelle, par exemple pour une carte à l'échelle 1:24 000, utilisez 24 000. Implémenté dans MapServer 5.0, pour remplacer le paramètre obsolète LABELMINSCALE.

Définit le contexte pour l'étiquetage de cette couche, par exemple :

signifie que ce calque ne sera PAS étiqueté si un calque nommé « orthoquads » est activé. L'expression consiste en une expression booléenne basée sur l'état des autres couches, chaque sous-chaîne [nom de la couche] est remplacée par un 0 ou un 1 selon l'ÉTAT de cette couche, puis évaluée comme normale. Les opérateurs logiques AND et OR peuvent être utilisés.

Supprimé dans la version 5.0 : veuillez consulter le paramètre SIZE de l'objet LABEL à la place.

Pour les versions MapServer < 5.0, il s'agit du nom de l'élément dans la table attributaire à utiliser pour les tailles d'annotation de classe. Les valeurs doivent être en pixels.

Les données de la couche actuelle ne seront rendues qu'à l'intersection des entités de la couche [layername]. [layername] doit référencer le NOM d'un autre LAYER défini dans le mapfile actuel. peut être n'importe quel type de couche de serveur de carte, c'est-à-dire vecteur ou raster. Si le calque actuel a un étiquetage configuré, alors seules les étiquettes dont le point d'étiquette tombe à l'intérieur de la zone non masquée seront ajoutées au cache d'étiquettes (les glyphes réels de l'étiquette peuvent être rendus au-dessus de la zone masquée.

À moins que vous ne vouliez que les caractéristiques de [layername] apparaissent réellement sur la carte générée, [layername] doit généralement être défini sur STATUS OFF.

Spécifie le nombre d'entités qui doivent être dessinées pour cette couche dans la fenêtre ACTUELLE. A des utilisations intéressantes avec des annotations et avec des données triées (c'est-à-dire des lacs par zone).

Largeur maximale, dans les unités géographiques de la carte, à laquelle cette COUCHE est dessinée. Si MAXSCALEDENOM est également spécifié, MAXSCALEDENOM sera utilisé à la place.

La largeur d'une carte en unités géographiques peut être trouvée en calculant les éléments suivants à partir des étendues :

5.0.0 sürümünde geldi : Remplacé MAXSCALE.

Échelle minimale à laquelle cette COUCHE est dessinée. L'échelle est donnée comme dénominateur de la fraction d'échelle réelle, par exemple pour une carte à l'échelle 1:24 000, utilisez 24 000.

Ce mot-clé permet de stocker des données arbitraires sous forme de paires nom-valeur. Ceci est utilisé avec OGC WMS pour définir des éléments tels que le titre de la couche. Cela peut également permettre plus de flexibilité dans la création de modèles, car tout ce que vous mettez ici sera accessible via les balises de modèle.

Largeur minimale, dans les unités géographiques de la carte, à laquelle cette COUCHE est dessinée. Si MINSCALEDENOM est également spécifié, MINSCALEDENOM sera utilisé à la place.

La largeur d'une carte en unités géographiques peut être trouvée en calculant les éléments suivants à partir des étendues :

Échelle maximale à laquelle cette COUCHE est dessinée. L'échelle est donnée comme dénominateur de la fraction d'échelle réelle, par exemple pour une carte à l'échelle 1:24 000, utilisez 24 000. Implémenté dans MapServer 5.0, pour remplacer le paramètre MINSCALE obsolète.

Nom abrégé de cette couche. Ce nom est le lien entre le mapfile et les interfaces Web qui font référence à ce nom. Ils doivent être identiques. Le nom doit être unique, à moins qu'une couche n'en remplace une autre à différentes échelles. Utilisez l'option GROUP pour associer des couches entre elles. Il est recommandé que le nom ne contienne pas d'espaces, de caractères spéciaux ou ne commence par un chiffre (ce qui pourrait causer des problèmes via des interfaces telles que les services OGC).

HORS SITE [r] [g] [b] | [chaîne hexadécimale]

Définit l'index de couleur à traiter comme transparent pour les calques raster.

r , g et b doivent être des entiers [0..255]. Pour spécifier les pixels noirs, les éléments suivants sont utilisés :

la chaîne hexadécimale peut être

Valeur RVB : « #rrggbb ». Pour spécifier le magenta, ce qui suit est utilisé :

Valeur RVBA (ajout de translucidité) : « #rrggbbaa ». Pour spécifier un magenta semi-translucide, les éléments suivants sont utilisés :

7.0 sürümünden beri kullanım dışı: Utilisez plutôt un bloc COMPOSITE.

Bibliothèque supplémentaire à charger par MapServer, pour cette couche. Ceci est couramment utilisé pour charger un support spécifique pour les couches SDE et Microsoft SQL Server, telles que :

Indique à MapServer de restituer cette couche une fois que toutes les étiquettes du cache ont été dessinées. Utile pour ajouter des lignes nettes et des éléments similaires. La valeur par défaut est false.

Passe une directive de traitement à utiliser avec cette couche. Les directives de traitement prises en charge varient selon le type de couche et le pilote sous-jacent qui les traite.

Directives ArcSDE - Toutes les options de traitement ArcSDE sont décrites dans ArcSDE . Voici deux exemples.

Directive Attributs - L'option de traitement ITEMS permet de spécifier le nom des attributs pour les couches en ligne ou de spécifier le sous-ensemble d'attributs à utiliser par la couche, tels que :

Regroupement - les directives d'objet cluster sont décrites dans CLUSTER

Directive de mise en commun des connexions - C'est ici que vous pouvez activer le regroupement de connexions pour certains types de couches. Le regroupement de connexions permettra à MapServer de partager le handle vers une base de données ouverte ou une connexion de couche tout au long d'un processus de dessin de carte unique. De plus, si FastCGI est activé, le descripteur de connexion restera ouvert indéfiniment, ou selon les options spécifiées dans la configuration FastCGI. Oracle Spatial , ArcSDE , OGR Vector Layers Through MapServer et PostGIS/PostgreSQL prennent actuellement en charge cette approche. "REPORTER” permet la mutualisation des connexions “TOUJOURS” fermera toujours la connexion après utilisation et n'essaiera pas non plus de réutiliser une connexion partagée du pool qui pourrait provenir d'une autre couche.

Directives de contour - les directives contour sont décrites dans Contour .

Rayon de densité de noyau

Rayon en pixels du filtre gaussien à appliquer au tableau bitmap une fois que toutes les caractéristiques ont été accumulées. Des valeurs plus élevées entraînent une augmentation du temps processeur nécessaire pour calculer les données filtrées.

Bordures de calcul de densité de noyau

Un noyau de rayon « r » ne peut pas être appliqué aux pixels « r » le long des bords de l'image. La valeur par défaut consiste à étendre le rectangle de recherche de la source de données d'entrée pour inclure les entités « r » pixels en dehors de l'étendue actuelle de la carte afin que la carte thermique calculée s'étende sur toute l'étendue de l'image résultante. Cela peut être désactivé lors de la mosaïque si le logiciel de mosaïque applique un méta-tampon de « r » pixels à ses requêtes, afin d'éviter la surcharge de performances liée au calcul de ces informations supplémentaires.

Normalisation de la densité du noyau

S'il est défini sur « AUTO », la bande raster créée sera mise à l'échelle de telle sorte que ses intensités vont de 0 à 255, afin de couvrir entièrement la palette de couleurs configurée. Un tel comportement peut ne pas être souhaitable (généralement pour le carrelage) car l'intensité résultante d'un pixel à un emplacement donné variera en fonction de l'étendue de la demande de carte actuelle. S'il est défini sur une valeur numérique, les échantillons seront multipliés par la valeur donnée. Il appartient à l'utilisateur de déterminer quelle valeur de mise à l'échelle utiliser pour que les pixels résultants couvrent toute la plage de 0 à 255, déterminant que cette valeur est principalement un processus d'essais et d'erreurs. Les pixels qui se trouvent en dehors de la plage 0-255 seront tronqués à 0 ou 255.

Rampe de couleur raster

RANGE_COLORSPACE=RGB|HSL - La prise en charge par défaut de RANGE interpole les couleurs entre les arrêts dans l'espace RVB, ce qui entraîne généralement des couleurs délavées. L'interpolation peut être effectuée dans l'espace HSL, ce qui entraîne généralement la sortie souhaitée pour les cartes thermiques.

Directive sur l'étiquetage - L'option de traitement LABEL_NO_CLIP peut être utilisée pour ignorer le découpage des formes lors de la détermination des points d'ancrage des étiquettes associées. Cela évite les changements de position de l'étiquette lorsque les étendues changent entre les tracés de carte. Cela évite également les étiquettes en double lorsque les entités apparaissent dans plusieurs tuiles adjacentes lors de la création de cartes tuilées.

Directive de rendu de ligne - L'option de traitement POLYLINE_NO_CLIP peut être utilisée pour ignorer le découpage des formes lors du rendu des lignes stylisées (en pointillés ou stylisées avec des symboles). Cela évite de modifier le style des lignes lorsque les étendues changent entre les tracés de carte. Cela évite également les effets de bord lorsque les entités apparaissent dans plusieurs tuiles adjacentes lors de la création de cartes en tuiles.

Directive de rendu de classe

L'option de traitement RENDERMODE spécifie comment les classes sont sélectionnées pour le rendu d'un calque. La valeur par défaut et le comportement historique sont FIRST_MATCHING_CLASS : seule la première classe applicable est sélectionnée pour restituer une entité (voir la description de CLASS ). L'autre valeur disponible est ALL_MATCHING_CLASSES : toutes les classes applicables sont utilisées pour restituer une entité, chacune étant utilisée en plus des précédentes. Il s'agit du comportement par défaut avec les styles SLD.

Directive sur les styles OGR - Cette directive peut être utilisée pour obtenir des styles d'étiquettes via MapScript. Pour plus d'informations, consultez le document OGR de MapServer.

Options spécifiques à MSSQL - MSSQL_READ_WKB=TRUE - Utilise le format WKB (Well Known Binary) au lieu du format natif lors de la récupération des géométries.

Filtre natif Directive

Cette directive peut être utilisée pour effectuer un filtrage spécifique au pilote. Pour les connexions à la base de données, la chaîne est une clause SQL WHERE qui est valide par rapport à la base de données sous-jacente.

Options spécifiques à PostGIS - FORCE2D=YES peut être utilisé pour forcer la récupération des géométries 2D uniquement à partir de PostGIS.

Options de rendu spécifiques au champ vectoriel - UV_SPACING : L'espacement est la distance, en pixels, entre les flèches à afficher dans le champ vectoriel. La valeur par défaut est 32. UV_SIZE_SCALE : Utilisé pour convertir les longueurs vectorielles (magnitude) du raster en pixels pour un meilleur rendu. La valeur par défaut est 1.

Ajustement du rendu AGG - Cette directive peut être utilisée pour définir le gamma linéaire à utiliser lors du rendu des entités surfaciques. La valeur par défaut de 0,75 (qui peut être remplacée au niveau OUTPUTFORMAT) peut être définie sur une valeur inférieure pour limiter/supprimer les contours pâles qui apparaissent entre les polygones adjacents. Une valeur de 0,5 est généralement suffisante.

Directives raster - Toutes les options de traitement raster sont décrites dans Raster Data . Ici, nous voyons les directives SCALE et BANDs utilisées pour mettre à l'échelle automatiquement les données raster et modifier le mappage des bandes.

Directives couche Union - Les options de traitement suivantes peuvent être utilisées avec les calques d'union : UNION_STATUS_CHECK (TRUE ou FALSE) - contrôle si l'état des calques source doit être vérifié et les calques invisibles (STATUS=OFF) doivent être ignorés. La valeur par défaut est FAUX. UNION_SCALE_CHECK (TRUE ou FALSE) - contrôle si la plage d'échelle des calques source doit être vérifiée et les calques invisibles (situés en dehors de la plage d'échelle et de la plage de zoom) doivent être ignorés. La valeur par défaut est VRAI. UNION_SRCLAYER_CLOSE_CONNECTION - remplace le paramètre de pool de connexions des couches sources. En introduisant ce paramètre, nous modifions le comportement actuel qui équivaut à : « UNION_SRCLAYER_CLOSE_CONNECTION=ALWAYS »

Signale le début d'un objet PROJECTION.

Définit le contexte d'affichage de cette couche (voir LABELREQUIRES).

Signale le début d'un objet SCALETOKEN. Autorise les substitutions de chaînes dépendantes de l'échelle. Voir MS RFC 86 : Substitutions de chaînes dépendantes de l'échelle .

Dans l'exemple précédent, %pri% serait remplacé par :

« 1 » pour les dénominateurs d'échelle inférieurs à 1 000, ce qui donne :

« 2 » pour les dénominateurs d'échelle entre 1 000 et 10 000 :

« 3 » pour les dénominateurs d'échelle supérieurs à 10 000 :

Définit l'unité des valeurs STYLE d'objet SIZE (la valeur par défaut est le pixel). Utile pour simuler la mise en mémoire tampon. nauticalmiles a été ajouté dans MapServer 5.6.

Définit l'état actuel du calque. Souvent modifié par MapServer lui-même. Par défaut, le calque est activé en permanence.

En mode CGI, les couches avec STATUS DEFAULT ne peuvent pas être désactivées à l'aide des mécanismes normaux. Il est recommandé de définir les couches sur STATUS DEFAULT lors du débogage d'un problème, mais de les remettre sur ON/OFF en utilisation normale.

Pour WMS , les couches dans le mapfile du serveur avec STATUS DEFAULT sont toujours envoyées au client.

Le STATUS des couches individuelles d'un GROUPE n'a aucun effet lorsque le nom du groupe est présent dans le paramètre LAYERS d'une requête CGI - toutes les couches du groupe seront renvoyées.

Style basé sur des attributs ou généré avec Javascript

<attribut>: élément à utiliser pour un style spécifique à une fonction. Les informations de style peuvent être représentées par un attribut séparé (chaîne de style) attaché à l'entité. MapServer prend en charge les représentations de chaîne de style suivantes :

Définition de STYLE MapServer - La chaîne de style peut être représentée comme un bloc MapServer STYLE selon l'exemple suivant :

MapServer CLASS définition - En spécifiant l'ensemble de la CLASSE au lieu d'un seul style, vous pouvez utiliser d'autres options (telles que la définition d'expressions, les attributs d'étiquette, plusieurs styles) pour chaque fonctionnalité.

Chaîne de style OGR - MapServer prend en charge le rendu du format de chaîne de style OGR conformément à la documentation OGR - Feature Style Specification. Actuellement, seules quelques sources de données prennent en charge le stockage des styles avec les fonctionnalités (comme MapInfo, AutoCAD DXF, Microstation DGN), mais ces styles peuvent facilement être transférés vers de nombreuses autres sources de données en tant qu'attribut distinct en utilisant l'outil de ligne de commande ogr2ogr comme suit :

AUTO: La valeur : AUTO peut être utilisée pour le coiffage automatique.

Le style automatique peut être fourni par le conducteur. Actuellement, seul le pilote OGR prend en charge le style automatique.

Lorsqu'il est utilisé pour un calque d'union , les styles des calques source seront utilisés.

Un fichier Javascript qui renvoie une nouvelle chaîne contenant soit une définition STYLE, soit une définition CLASS avec un ou plusieurs styles. Voir STYLEITEM Javascript .

L'échelle à laquelle les symboles et/ou le texte apparaissent en taille réelle. Cela permet une mise à l'échelle dynamique des objets en fonction de l'échelle de la carte. S'il n'est pas défini, ce calque apparaîtra toujours à la même taille. La mise à l'échelle n'a lieu que dans les limites de MINSIZE et MAXSIZE comme décrit ci-dessus. L'échelle est donnée comme dénominateur de la fraction d'échelle réelle, par exemple pour une carte à l'échelle 1:24 000, utilisez 24 000. Implémenté dans MapServer 5.0, pour remplacer le paramètre obsolète SYMBOLSCALE.

Utilisé comme alternative globale à CLASS TEMPLATE . Voir Modèle pour plus d'informations.

Nom du fichier ou de la couche tileindex. Un index de tuile est similaire à un index de bibliothèque ArcInfo. Le tileindex contient des entités surfaciques pour chaque tuile. L'élément qui contient l'emplacement des données tuilées est donné à l'aide du paramètre TILEITEM. Lorsqu'un fichier est utilisé comme index de tuile pour un fichier de formes ou des couches raster, l'index de tuile doit être un fichier de formes. Pour les couches OGR CONNECTIONTYPE, toute source de données prise en charge par OGR peut être un index de tuile. Normalement, l'emplacement doit contenir le chemin d'accès au fichier de tuiles par rapport au chemin de forme, et non par rapport à l'index de tuile lui-même. Si le paramètre DATA contient une valeur, elle est ajoutée à la fin de l'emplacement. Lorsqu'une couche tileindex est utilisée, elle fonctionne de la même manière qu'une référence directe à un fichier, mais toute source d'entités prise en charge peut être utilisée (c'est-à-dire postgres, oracle).

Tous les fichiers du tileindex doivent avoir le même système de coordonnées et pour les fichiers vectoriels le même ensemble d'attributs dans le même ordre.

À partir de MapServer 6.4 pour les couches raster et MapServer 7.2 pour les couches vectorielles, des index de tuiles avec des tuiles de différentes projections peuvent être utilisés. Pour cela, le paramètre TILESRS doit être spécifié.

Élément qui contient l'emplacement d'une tuile individuelle, la valeur par défaut est « emplacement ».

Nom de l'attribut qui contient le SRS d'une tuile individuelle. Ce SRS peut être exprimé au format WKT, sous forme de code EPSG:XXXX ou sous forme de chaîne PROJ. Si le tileindex contient des rasters dans différentes projections, cette option doit être spécifiée. Si le tileindex a été généré avec gdaltindex (GDAL >= 2.0) ou ogrtindex (GDAL >= 2.2), la valeur de TILESRS est la valeur de l'option -src_srs_name de gdaltindex/ogrtindex. Voir Tileindexes avec des tuiles dans différentes projections

Cette option n'est actuellement disponible que sur les couches raster.

Sensibilité pour les requêtes basées sur des points (c'est-à-dire via la souris et/ou les coordonnées cartographiques). Donné en UNITES DE TOLERANCE. Si la couche est un POINT ou une LIGNE, la valeur par défaut est 3. Pour tous les autres types de couche, la valeur par défaut est 0. Pour restreindre les recherches de polygones afin que le point doive se trouver dans le polygone, définissez la tolérance sur zéro. Ce paramètre ne s'applique pas aux opérations WFS GetFeature.

Unités de la valeur de TOLÉRANCE. La valeur par défaut est les pixels. Nauticalmiles a été ajouté dans MapServer 5.6.

TRANSPARENCE [entier|alpha] - obsolète

5.0 sürümünden beri kullanım dışı: Utilisez OPACITY à la place.

7.0 sürümünden beri kullanım dışı: Utilisez plutôt COMPOSITE.

Indique à MapServer si une couche particulière doit être transformée ou non d'un système de coordonnées en coordonnées d'image. La valeur par défaut est true. Cela vous permet de créer des fichiers de formes en coordonnées image/graphique et donc d'avoir des caractéristiques qui seront toujours affichées au même endroit sur chaque carte. Idéal pour placer des logos ou du texte dans des cartes. N'oubliez pas que le système de coordonnées graphiques a une origine dans le coin supérieur gauche de l'image, contrairement à la plupart des systèmes de coordonnées cartographiques.

La version 4.10 introduit la possibilité de définir des caractéristiques avec des coordonnées données en pixels (ou en pourcentages, voir UNITS), le plus souvent des caractéristiques en ligne, par rapport à autre chose que le coin UL d'une image. C'est ce que signifie "TRANSFORMER FAUX". En définissant une origine alternative, cela vous permet d'ancrer quelque chose comme une déclaration de droit d'auteur à une autre partie de l'image d'une manière indépendante de la taille de l'image.

Spécifie comment les données doivent être dessinées. N'a pas besoin d'être le même que le type de fichier de formes. Par exemple, un fichier de formes de polygones peut être dessiné comme une couche de points, mais un fichier de formes de points ne peut pas être dessiné comme une couche de polygones. Règles de bon sens.

Afin de différencier les POLYGONES et les POLYLINES (qui n'existent pas en tant que type), il suffit d'utiliser ou d'omettre respectivement le mot-clé COLOR lors de la classification. Si vous l'utilisez, c'est un polygone avec une couleur de remplissage, sinon c'est une polyligne avec seulement OUTLINECOLOR.

Un cercle doit être défini par un rectangle englobant minimum. C'est-à-dire deux points qui définissent le plus petit carré pouvant le contenir. Ces deux points sont les deux coins opposés de ladite boîte. Voici un exemple utilisant des points en ligne pour tracer un cercle :

La requête TYPE signifie que la couche peut être interrogée mais pas dessinée.

L'annotation TYPE est dépréciée depuis la version 6.2. Des fonctionnalités identiques peuvent être obtenues en ajoutant des blocs STYLE de niveau LABEL, et ne nécessitent pas de charger les jeux de données deux fois dans deux couches différentes comme c'était le cas avec les couches d'annotation TYPE .

Le graphique HowTo de création de graphiques dynamiques pour le graphique TYPE.

Unités de la couche. Les pourcentages (dans ce cas, une valeur comprise entre 0 et 1) ont été ajoutés dans MapServer 4.10 et sont principalement destinés aux fonctionnalités en ligne. nauticalmiles a été ajouté dans MapServer 5.6.

Un modèle JSON UTFGrid. Syntaxe d'expression MapServer (expressionObj). Si aucun UTFDATA n'est fourni, aucune donnée au-delà des valeurs UTFITEM ne sera exposée. Si UTFITEM est défini, les UTFDATA les exposent afin que les clés et les données puissent être connectées. Voir MS RFC 93 : prise en charge de la grille UTF et sortie UTFGrid .

L'attribut à utiliser comme ID pour l'UTFGrid. Si un UTFITEM n'est pas défini, l'ID séquentiel (basé sur l'ordre de rendu) est utilisé.Si UTFITEM est défini, UTFDATA les expose afin que les clés et les données puissent être connectées. Voir MS RFC 93 : prise en charge de la grille UTF et sortie UTFGrid .

Signale le début d'un bloc VALIDATION.

Depuis MapServer 5.4.0, les blocs VALIDATION sont le mécanisme préféré pour spécifier des modèles de validation pour les substitutions de paramètres d'exécution CGI. Voir Substitution à l'exécution .


COUCHE¶

Ce mot-clé permet de créer des paires nom-valeur pour lier des variables dans des instructions SQL. La liaison de variable empêche l'injection SQL en échappant correctement les chaînes et les entiers. S'applique uniquement aux connexions PostGIS et Oracle.

Signale le début d'un objet CLASS.

A l'intérieur d'une couche, une seule classe sera utilisée pour le rendu d'une entité. Chaque caractéristique est testée par rapport à chaque classe dans l'ordre dans lequel elles sont définies dans le mapfile. La première classe qui correspond à ses contraintes d'échelle min/max et à sa vérification EXPRESSION pour l'entité actuelle sera utilisée pour le rendu.

Cela peut être contrôlé avec la directive de traitement RENDERMODE.

Spécifiez le groupe de la classe qui serait pris en compte au moment du rendu. Le paramètre GROUP de l'objet CLASS doit être utilisé en combinaison avec CLASSGROUP.

Nom de l'élément dans la table attributaire à utiliser pour les recherches de classe.

Signale le début d'un objet CLUSTER.

L'option de configuration CLUSTER permet de combiner plusieurs entités de la couche en entités uniques (agrégées) en fonction de leurs positions relatives. Pris en charge uniquement pour les couches POINT.

Signale le début d'un objet COMPOSITE.

Un ou plusieurs blocs COMPOSITES peuvent être utilisés pour signaler que le rendu doit être effectué dans une image temporaire et fusionné sur l'image de carte finale dans une étape finale. Les options définies à l'intérieur du bloc COMPOSITE détermineront comment cette fusion doit être effectuée (par exemple en appliquant l'opacité, l'opérateur de composition ou les filtres de pixels)

Chaîne de connexion à la base de données pour récupérer les données distantes.

Une chaîne de connexion PostGIS est essentiellement une chaîne de connexion PostgreSQL standard, elle prend la forme de « user=nobody password=****** dbname=dbname host=localhost port=5432 »

Une chaîne de connexion Oracle : user/pass[@db]

Une chaîne de connexion SDE se compose d'un nom d'hôte, d'un nom d'instance, d'un nom de base de données, d'un nom d'utilisateur et d'un mot de passe séparés par des virgules.

Le pilote SDE natif de MapServer a été supprimé pour la version MapServer 7.0 (voir la discussion). Le support SDE est toujours accessible via le pilote OGR.

Données vectorielles pour des informations de connexion spécifiques pour diverses sources de données.

Voir Kernel Density Estimation (Dynamic Heatmap) pour des informations de connexion spécifiques pour l'estimation de la densité du noyau.

Ce mot-clé permet de définir des options de connexion exprimées sous forme de paires clé/valeur. Ceci n'est actuellement implémenté que pour les couches CONNECTIONTYPE OGR ou raster, afin de transmettre les options ouvertes aux pilotes GDAL/OGR.

Exemple pour une source de données GeoJSON pour spécifier l'option ouverte FLATTEN_NESTED_ATTRIBUTES du pilote OGR GeoJSON.

Type de connexion. La valeur par défaut est locale. Voir la documentation supplémentaire pour tout autre type.

Données vectorielles pour des informations de connexion spécifiques pour diverses sources de données. Voir Union Layer pour combiner les couches, ajouté dans MapServer 6.0

Voir Kernel Density Estimation (Dynamic Heatmap) pour des informations de connexion spécifiques pour l'estimation de la densité du noyau.

mygis est un autre type de connexion, mais il est obsolète, veuillez consulter la section MySQL du document Vector Data pour les détails de connexion.

Nom de fichier complet des données spatiales à traiter. Aucune extension de fichier n'est nécessaire pour les fichiers de formes. Peut être spécifié par rapport à l'option SHAPEPATH de l'objet Map.

S'il s'agit d'un calque SDE, le paramètre doit inclure le nom du calque ainsi que la colonne de géométrie, c'est-à-dire « mon calque, forme, ma version ».

S'il s'agit d'une couche PostGIS, le paramètre doit être sous la forme « <columnname> from <tablename> », où « columnname » est le nom de la colonne contenant les objets géométriques et « tablename » est le nom de la table à partir de laquelle les données géométriques sera lu.

Pour Oracle, utilisez « shape FROM table » ou « shape FROM (instruction SELECT) » ou des requêtes compatibles Oracle encore plus complexes ! Notez que l'utilisation de sous-requêtes spatiales a cependant des impacts importants sur les performances. Essayez d'utiliser le FILTRE de MapServer chaque fois que possible à la place. Vous pouvez également voir le SQL soumis en forçant une erreur, par exemple en soumettant un paramètre DATA dont vous savez qu'il ne fonctionnera pas, en utilisant par exemple un mauvais nom de colonne.

Dans un cas d'utilisation standard, lorsque PostGIS, SpatiaLite ou GeoPackage sont utilisés comme source de données, le filtre BBOX (les cadres de délimitation se croisent, && avec PostGIS) est utilisé automatiquement. Cependant, dans certains cas d'utilisation rares, une sous-requête peut prendre beaucoup de temps si les données sont vraiment importantes, car les données finales ne seront filtrées que dans la requête. Afin de filtrer les données plus tôt, c'est-à-dire avant la requête finale, on peut filtrer les données directement dans la sous-requête à l'aide de la !BOX! variable : WHERE ST_Intersects(wkb_geometry,!BOX!) .

Données vectorielles pour des informations de connexion spécifiques pour diverses sources de données.

Active le débogage d'une couche dans la carte actuelle.

Débogage avec les versions MapServer >= 5.0 :

La sortie détaillée est générée et envoyée à la sortie d'erreur standard (STDERR) ou au fichier d'erreur MapServer si celui-ci est défini à l'aide de la variable d'environnement «MS_ERRORFILE». Vous pouvez définir la variable d'environnement en utilisant le paramètre CONFIG au niveau MAP du mapfile, par exemple :

Vous pouvez également définir la variable d'environnement dans Apache en ajoutant ce qui suit à votre httpd.conf :

Une fois la variable d'environnement définie, le paramètre DEBUG mapfile peut être utilisé pour contrôler le niveau de sortie de débogage. Voici une description des valeurs DEBUG possibles :

DEBUG O ou OFF - seuls les appels msSetError() sont enregistrés dans MS_ERRORFILE. Aucune sortie msDebug() du tout. Ceci est la valeur par défaut et correspond au comportement d'origine de MS_ERRORFILE dans MapServer 4.x

DEBUG 1 ou ON - inclut toutes les sorties de DEBUG 0 plus les avertissements msDebug() sur les pièges courants, les échecs d'assertions ou les situations d'erreur non fatales (par exemple, valeurs manquantes ou invalides pour certains paramètres, fichiers de formes manquants dans tileindex, erreur de délai d'attente des serveurs WMS/WFS distants, etc. )

DÉBOGUER 2 - comprend toutes les sorties de DEBUG 1 ainsi que des avis et des informations de synchronisation utiles pour le réglage des fichiers de mappage et des applications

DÉBOGUER 3 - tout DEBUG 2 plus quelques sorties de débogage utiles pour résoudre les problèmes tels que les URL de connexion WMS appelées, les appels de connexion à la base de données, etc.

DÉBOGUER 4 - DEBUG 3 et encore plus de détails…

DÉBOGUER 5 - DEBUG 4 plus toute sortie msDebug() qui pourrait être plus utile aux développeurs qu'aux utilisateurs.

Vous pouvez également définir le niveau de débogage en utilisant la variable d'environnement «MS_DEBUGLEVEL».

Le paramètre DEBUG peut également être spécifié pour l'ensemble de la carte, en définissant le paramètre DEBUG dans l'objet MAP.

Pour plus de détails sur ce mécanisme de débogage, veuillez consulter Debugging MapServer .

Débogage avec les versions MapServer < 5:

La sortie détaillée est générée et envoyée à la sortie d'erreur standard (STDERR) ou au fichier journal MapServer si celui-ci est défini à l'aide du paramètre LOG dans l'objet WEB. Les utilisateurs d'Apache verront les détails de la synchronisation pour le dessin dans le fichier error_log d'Apache. Nécessite que MapServer soit construit avec l'option DEBUG=MSDEBUG (option de configuration –with-debug).

Deprecato dalla versione 6.0 : utilisez plutôt LAYER METADATA.

Basculez pour permettre à MapServer de renvoyer des données au format GML. Utile lorsqu'il est utilisé avec les opérations WMS GetFeatureInfo. « faux » par défaut.

L'encodage utilisé pour le texte dans la source de données de couche. La valeur doit être supportée par ICONV (par exemple «LATIN1»). Lorsque ENCODING est défini (et non égal à «UTF-8»), les attributs du texte de la source de données seront convertis en UTF-8.

Requis pour afficher les caractères internationaux dans MapServer. Plus d'informations peuvent être trouvées dans le document Label Encoding .

ÉTENDUE [minx] [miny] [maxx] [maxy]

L'étendue spatiale des données. Dans la plupart des cas, vous n'aurez pas besoin de le spécifier, mais cela peut être utilisé pour éviter le coût de vitesse lié au calcul de l'étendue des données par MapServer. Une application peut également éventuellement utiliser cette valeur pour remplacer l'étendue de la carte.

Signale le début d'un objet FEATURE.

Ce paramètre permet un filtrage d'attributs spécifiques aux données qui est effectué en même temps que le filtrage spatial, mais avant que les expressions CLASS ne soient évaluées. La chaîne est simplement une expression MapServer :

Les filtres natifs sont pris en charge via la clé NATIVE_FILTER PROCESSING :

Remarque

Jusqu'à MapServer 6, les filtres natifs pouvaient être spécifiés comme :

Mais ce n'est plus pris en charge.

Élément à utiliser avec des expressions FILTER simples. OGR et fichiers de formes uniquement.

Modèle à utiliser après l'ensemble des résultats d'une couche a été envoyé. Modes de requête multi-résultats uniquement.

GEOMTRANSFORM [<expression>|<Fichier Javascript>]

Utilisé pour indiquer que l'entité actuelle sera transformée.

<expression>: applique l'expression donnée à la géométrie.

(tampon([forme],dist)): Tamponnez la géométrie ( [shape] ) en utilisant les unités dist ground comme distance tampon. Pour les polygones, une dist négative produira un recul.

(simplifier([forme],tolérance)): simplifie une géométrie ( [forme] ) en utilisant l'algorithme standard de Douglas-Peucker.

(simplifypt([forme], tolérance)): simplifie une géométrie ( [forme] ), garantissant que le résultat est une géométrie valide ayant la même dimension et le même nombre de composants que l'entrée. la tolérance doit être non négative.

(généraliser([forme],tolérance)): simplifie une géométrie ( [shape] ) d'une manière comparable à l'algorithme ThinNoPoint de FME. Voir http://trac.osgeo.org/gdal/ticket/966 pour plus d'informations.

(smoothsia([forme], smoothing_size, smoothing_iteration, prétraitement)): va lisser une géométrie ( [forme] ) en utilisant l'algorithme SIA

Il existe une différence entre STYLE et LAYER GEOMTRANSFORM. Le niveau LAYER recevra les coordonnées au sol (mètres, degress, etc.) et le niveau STYLE recevra les coordonnées des pixels. L'argument des méthodes telles que simplifier () doit être dans les mêmes unités que les coordonnées des formes à ce point du flux de travail de rendu, c'est-à-dire les pixels au niveau STYLE et en unités au sol au niveau LAYER.

La variable [map_cellsize] est disponible si vous devez passer une valeur de pixel au niveau LAYER.

Pour que cette variable fonctionne dans l'analyseur d'expressions mathématiques, la [map_cellsize] doit être convertie en unité au sol de la couche. Si vous choisissez d'utiliser [map_cellsize] dans votre expression GEOMTRANSFORM, vous devez explicitement définir l'option UNITS dans la couche.

<Fichier Javascript>: Un fichier Javascript qui renvoie une nouvelle géométrie. Voir Transformation Javascript .

Signale le début d'un objet GRID.

Nom d'un groupe auquel appartient cette couche. Le nom du groupe peut ensuite être référencé en tant que nom de calque normal dans les fichiers modèles, ce qui permet d'effectuer des opérations telles que l'activation et la désactivation d'un groupe de calques à la fois.

Si un nom de groupe est présent dans le paramètre LAYERS d'une requête CGI, toutes les couches du groupe sont renvoyées (le STATUS des LAYER n'a aucun effet).

Modèle à utiliser avant que l'ensemble des résultats d'une couche a été envoyé. Modes de requête multi-résultats uniquement.

Signale le début d'un objet JOIN.

Supprimé dans la version 5.0 : veuillez plutôt consulter le paramètre ANGLE de l'objet LABEL.

Pour les versions MapServer < 5.0, il s'agit du nom de l'élément dans la table attributaire à utiliser pour les angles d'annotation de classe. Les valeurs doivent être en degrés.

Spécifie si les étiquettes doivent être dessinées lorsque les entités de cette couche sont dessinées, ou si elles doivent être mises en cache et dessinées une fois que toutes les couches ont été dessinées. La valeur par défaut est activée. La suppression des chevauchements d'étiquettes, le placement automatique, etc. ne sont disponibles que lorsque le cache d'étiquettes est actif.

Nom de l'élément dans la table attributaire à utiliser pour l'annotation de classe (c'est-à-dire l'étiquetage).

Échelle minimale à laquelle cette COUCHE est étiquetée. L'échelle est donnée comme dénominateur de la fraction d'échelle réelle, par exemple pour une carte à l'échelle 1:24 000, utilisez 24 000. Implémenté dans MapServer 5.0, pour remplacer le paramètre obsolète LABELMAXSCALE.

Échelle maximale à laquelle cette COUCHE est étiquetée. L'échelle est donnée comme dénominateur de la fraction d'échelle réelle, par exemple pour une carte à l'échelle 1:24 000, utilisez 24 000. Implémenté dans MapServer 5.0, pour remplacer le paramètre obsolète LABELMINSCALE.

Définit le contexte pour l'étiquetage de cette couche, par exemple :

signifie que ce calque ne sera PAS étiqueté si un calque nommé « orthoquads » est activé. L'expression consiste en une expression booléenne basée sur l'état des autres couches, chaque sous-chaîne [nom de la couche] est remplacée par un 0 ou un 1 selon l'ÉTAT de cette couche, puis évaluée comme normale. Les opérateurs logiques AND et OR peuvent être utilisés.

Supprimé dans la version 5.0 : veuillez consulter le paramètre SIZE de l'objet LABEL à la place.

Pour les versions MapServer < 5.0, il s'agit du nom de l'élément dans la table attributaire à utiliser pour les tailles d'annotation de classe. Les valeurs doivent être en pixels.

Les données de la couche actuelle ne seront rendues qu'à l'intersection des entités de la couche [layername]. [layername] doit référencer le NOM d'un autre LAYER défini dans le mapfile actuel. peut être n'importe quel type de couche de serveur de carte, c'est-à-dire vecteur ou raster. Si le calque actuel a un étiquetage configuré, alors seules les étiquettes dont le point d'étiquette tombe à l'intérieur de la zone non masquée seront ajoutées au cache d'étiquettes (les glyphes réels de l'étiquette peuvent être rendus au-dessus de la zone masquée.

À moins que vous ne vouliez que les caractéristiques de [layername] apparaissent réellement sur la carte générée, [layername] doit généralement être défini sur STATUS OFF.

Spécifie le nombre d'entités qui doivent être dessinées pour cette couche dans la fenêtre ACTUELLE. A des utilisations intéressantes avec des annotations et avec des données triées (c'est-à-dire des lacs par zone).

Largeur maximale, dans les unités géographiques de la carte, à laquelle cette COUCHE est dessinée. Si MAXSCALEDENOM est également spécifié, MAXSCALEDENOM sera utilisé à la place.

La largeur d'une carte en unités géographiques peut être trouvée en calculant les éléments suivants à partir des étendues :

Nuovo nella versione 5.0.0 : Remplacement de MAXSCALE.

Échelle minimale à laquelle cette COUCHE est dessinée. L'échelle est donnée comme dénominateur de la fraction d'échelle réelle, par exemple pour une carte à l'échelle 1:24 000, utilisez 24 000.

Ce mot-clé permet de stocker des données arbitraires sous forme de paires nom-valeur. Ceci est utilisé avec OGC WMS pour définir des éléments tels que le titre de la couche. Cela peut également permettre plus de flexibilité dans la création de modèles, car tout ce que vous mettez ici sera accessible via les balises de modèle.

Largeur minimale, dans les unités géographiques de la carte, à laquelle cette COUCHE est dessinée. Si MINSCALEDENOM est également spécifié, MINSCALEDENOM sera utilisé à la place.

La largeur d'une carte en unités géographiques peut être trouvée en calculant les éléments suivants à partir des étendues :

Échelle maximale à laquelle cette COUCHE est dessinée. L'échelle est donnée comme dénominateur de la fraction d'échelle réelle, par exemple pour une carte à l'échelle 1:24 000, utilisez 24 000. Implémenté dans MapServer 5.0, pour remplacer le paramètre MINSCALE obsolète.

Nom abrégé de cette couche. Ce nom est le lien entre le mapfile et les interfaces Web qui font référence à ce nom. Ils doivent être identiques. Le nom doit être unique, à moins qu'une couche en remplace une autre à différentes échelles. Utilisez l'option GROUP pour associer des couches entre elles. Il est recommandé que le nom ne contienne pas d'espaces, de caractères spéciaux ou ne commence par un chiffre (ce qui pourrait causer des problèmes via des interfaces telles que les services OGC).

HORS SITE [r] [g] [b] | [chaîne hexadécimale]

Définit l'index de couleur à traiter comme transparent pour les calques raster.

r , g et b doivent être des entiers [0..255]. Pour spécifier les pixels noirs, les éléments suivants sont utilisés :

la chaîne hexadécimale peut être

Valeur RVB : « #rrggbb ». Pour spécifier le magenta, ce qui suit est utilisé :

Valeur RGBA (ajout de translucidité) : « #rrggbbaa ». Pour spécifier un magenta semi-translucide, les éléments suivants sont utilisés :

Deprecato dalla versione 7.0 : utilisez plutôt un bloc COMPOSITE.

Bibliothèque supplémentaire à charger par MapServer, pour cette couche. Ceci est couramment utilisé pour charger un support spécifique pour les couches SDE et Microsoft SQL Server, telles que :

Indique à MapServer de restituer cette couche une fois que toutes les étiquettes du cache ont été dessinées. Utile pour ajouter des lignes nettes et des éléments similaires. La valeur par défaut est false.

Passe une directive de traitement à utiliser avec cette couche. Les directives de traitement prises en charge varient selon le type de couche et le pilote sous-jacent qui les traite.

Directives ArcSDE - Toutes les options de traitement ArcSDE sont décrites dans ArcSDE . Voici deux exemples.

Directive Attributs - L'option de traitement ITEMS permet de spécifier le nom des attributs pour les couches en ligne ou de spécifier le sous-ensemble d'attributs à utiliser par la couche, tels que :

Regroupement - les directives d'objet cluster sont décrites dans CLUSTER

Directive de mise en commun des connexions - C'est ici que vous pouvez activer le regroupement de connexions pour certains types de couches. Le regroupement de connexions permettra à MapServer de partager le handle vers une base de données ouverte ou une connexion de couche tout au long d'un processus de dessin de carte unique. De plus, si FastCGI est activé, le descripteur de connexion restera ouvert indéfiniment, ou selon les options spécifiées dans la configuration FastCGI. Oracle Spatial , ArcSDE , OGR Vector Layers Through MapServer et PostGIS/PostgreSQL prennent actuellement en charge cette approche. «REPORTER» permet la mutualisation des connexions «TOUJOURS» fermera toujours la connexion après utilisation et n'essaiera pas non plus de réutiliser une connexion partagée du pool qui pourrait provenir d'une autre couche.

Directives de contour - les directives contour sont décrites dans Contour .

Rayon de densité de noyau

Rayon en pixels du filtre gaussien à appliquer au tableau bitmap une fois que toutes les caractéristiques ont été accumulées. Des valeurs plus élevées entraînent une augmentation du temps processeur nécessaire pour calculer les données filtrées.

Bordures de calcul de densité de noyau

Un noyau de rayon « r » ne peut pas être appliqué aux pixels « r » le long des bords de l'image. La valeur par défaut consiste à étendre le rectangle de recherche de la source de données d'entrée pour inclure les entités « r » pixels en dehors de l'étendue actuelle de la carte afin que la carte thermique calculée s'étende sur toute l'étendue de l'image résultante. Cela peut être désactivé lors du tuilage si le logiciel de tuilage applique un méta-tampon de « r » pixels à ses requêtes, pour éviter le surcoût de performances lié au calcul de ces informations supplémentaires.

Normalisation de la densité du noyau

S'il est défini sur « AUTO », la bande raster créée sera mise à l'échelle de sorte que ses intensités s'étendent de 0 à 255, afin de couvrir entièrement la palette de couleurs configurée.Un tel comportement peut ne pas être souhaitable (généralement pour le carrelage) car l'intensité résultante d'un pixel à un emplacement donné variera en fonction de l'étendue de la demande de carte actuelle. S'il est défini sur une valeur numérique, les échantillons seront multipliés par la valeur donnée. Il appartient à l'utilisateur de déterminer quelle valeur de mise à l'échelle utiliser pour que les pixels résultants couvrent toute la plage de 0 à 255, déterminant que cette valeur est principalement un processus d'essais et d'erreurs. Les pixels qui se trouvent en dehors de la plage 0-255 seront tronqués à 0 ou 255.

Rampe de couleur raster

RANGE_COLORSPACE=RGB|HSL - La prise en charge par défaut de RANGE interpole les couleurs entre les arrêts dans l'espace RVB, ce qui entraîne généralement des couleurs délavées. L'interpolation peut être effectuée dans l'espace HSL, ce qui entraîne généralement la sortie souhaitée pour les cartes thermiques.

Directive sur l'étiquetage - L'option de traitement LABEL_NO_CLIP peut être utilisée pour ignorer le découpage des formes lors de la détermination des points d'ancrage des étiquettes associées. Cela évite les changements de position de l'étiquette lorsque les étendues changent entre les tracés de carte. Cela évite également les étiquettes en double lorsque les entités apparaissent dans plusieurs tuiles adjacentes lors de la création de cartes tuilées.

Directive de rendu de ligne - L'option de traitement POLYLINE_NO_CLIP peut être utilisée pour ignorer le découpage des formes lors du rendu des lignes stylisées (en pointillés ou stylisées avec des symboles). Cela évite de modifier le style des lignes lorsque les étendues changent entre les tracés de carte. Cela évite également les effets de bord lorsque les entités apparaissent dans plusieurs tuiles adjacentes lors de la création de cartes en tuiles.

Directive de rendu de classe

L'option de traitement RENDERMODE spécifie comment les classes sont sélectionnées pour le rendu d'un calque. La valeur par défaut et le comportement historique sont FIRST_MATCHING_CLASS : seule la première classe applicable est sélectionnée pour restituer une entité (voir la description de CLASS ). L'autre valeur disponible est ALL_MATCHING_CLASSES : toutes les classes applicables sont utilisées pour restituer une entité, chacune étant utilisée en plus des précédentes. Il s'agit du comportement par défaut avec les styles SLD.

Directive sur les styles OGR - Cette directive peut être utilisée pour obtenir des styles d'étiquettes via MapScript. Pour plus d'informations, consultez le document OGR de MapServer.

Options spécifiques à MSSQL - MSSQL_READ_WKB=TRUE - Utilise le format WKB (Well Known Binary) au lieu du format natif lors de la récupération des géométries.

Filtre natif Directive

Cette directive peut être utilisée pour effectuer un filtrage spécifique au pilote. Pour les connexions à la base de données, la chaîne est une clause SQL WHERE qui est valide par rapport à la base de données sous-jacente.

Options spécifiques à PostGIS - FORCE2D=YES peut être utilisé pour forcer la récupération des géométries 2D uniquement à partir de PostGIS.

Options de rendu spécifiques au champ vectoriel - UV_SPACING : L'espacement est la distance, en pixels, entre les flèches à afficher dans le champ vectoriel. La valeur par défaut est 32. UV_SIZE_SCALE : Utilisé pour convertir les longueurs vectorielles (magnitude) du raster en pixels pour un meilleur rendu. La valeur par défaut est 1.

Ajustement du rendu AGG - Cette directive peut être utilisée pour définir le gamma linéaire à utiliser lors du rendu des entités surfaciques. La valeur par défaut de 0,75 (qui peut être remplacée au niveau OUTPUTFORMAT) peut être définie sur une valeur inférieure pour limiter/supprimer les contours pâles qui apparaissent entre les polygones adjacents. Une valeur de 0,5 est généralement suffisante.

Directives raster - Toutes les options de traitement raster sont décrites dans Raster Data . Ici, nous voyons les directives SCALE et BANDs utilisées pour mettre à l'échelle automatiquement les données raster et modifier le mappage des bandes.

Directives couche Union - Les options de traitement suivantes peuvent être utilisées avec les calques d'union : UNION_STATUS_CHECK (TRUE ou FALSE) - contrôle si l'état des calques source doit être vérifié et les calques invisibles (STATUS=OFF) doivent être ignorés. La valeur par défaut est FAUX. UNION_SCALE_CHECK (TRUE ou FALSE) - contrôle si la plage d'échelle des calques source doit être vérifiée et les calques invisibles (situés en dehors de la plage d'échelle et de la plage de zoom) doivent être ignorés. La valeur par défaut est VRAI. UNION_SRCLAYER_CLOSE_CONNECTION - remplace le paramètre de pool de connexions des couches sources. En introduisant ce paramètre, nous modifions le comportement actuel qui équivaut à : « UNION_SRCLAYER_CLOSE_CONNECTION=ALWAYS »

Signale le début d'un objet PROJECTION.

Définit le contexte d'affichage de cette couche (voir LABELREQUIRES).

Signale le début d'un objet SCALETOKEN. Autorise les substitutions de chaînes dépendantes de l'échelle. Voir MS RFC 86 : Substitutions de chaînes dépendantes de l'échelle .

Dans l'exemple précédent, %pri% serait remplacé par :

« 1 » pour les dénominateurs d'échelle inférieurs à 1 000, ce qui donne :

« 2 » pour les dénominateurs d'échelle compris entre 1 000 et 10 000 :

« 3 » pour les dénominateurs d'échelle supérieurs à 10 000 :

Définit l'unité des valeurs STYLE de l'objet SIZE (la valeur par défaut est le pixel). Utile pour simuler la mise en mémoire tampon. nauticalmiles a été ajouté dans MapServer 5.6.

Définit l'état actuel du calque. Souvent modifié par MapServer lui-même. Par défaut, le calque est activé en permanence.

En mode CGI, les couches avec STATUS DEFAULT ne peuvent pas être désactivées à l'aide des mécanismes normaux. Il est recommandé de définir les couches sur STATUS DEFAULT lors du débogage d'un problème, mais de les remettre sur ON/OFF en utilisation normale.

Pour WMS , les couches dans le mapfile du serveur avec STATUS DEFAULT sont toujours envoyées au client.

Le STATUS des couches individuelles d'un GROUPE n'a aucun effet lorsque le nom du groupe est présent dans le paramètre LAYERS d'une requête CGI - toutes les couches du groupe seront renvoyées.

Style basé sur des attributs ou généré avec Javascript

<attribut>: élément à utiliser pour un style spécifique à une fonction. Les informations de style peuvent être représentées par un attribut séparé (chaîne de style) attaché à l'entité. MapServer prend en charge les représentations de chaîne de style suivantes :

Définition de STYLE MapServer - La chaîne de style peut être représentée comme un bloc MapServer STYLE selon l'exemple suivant :

MapServer CLASS définition - En spécifiant l'ensemble de la CLASSE au lieu d'un seul style, vous pouvez utiliser d'autres options (telles que la définition d'expressions, les attributs d'étiquette, plusieurs styles) pour chaque fonctionnalité.

Chaîne de style OGR - MapServer prend en charge le rendu du format de chaîne de style OGR conformément à la documentation OGR - Feature Style Specification. Actuellement, seules quelques sources de données prennent en charge le stockage des styles avec les fonctionnalités (comme MapInfo, AutoCAD DXF, Microstation DGN), mais ces styles peuvent facilement être transférés vers de nombreuses autres sources de données en tant qu'attribut distinct en utilisant l'outil de ligne de commande ogr2ogr comme suit :

AUTO: La valeur : AUTO peut être utilisée pour le coiffage automatique.

Le style automatique peut être fourni par le conducteur. Actuellement, seul le pilote OGR prend en charge le style automatique.

Lorsqu'il est utilisé pour un calque d'union , les styles des calques source seront utilisés.

Un fichier Javascript qui renvoie une nouvelle chaîne contenant soit une définition STYLE, soit une définition CLASS avec un ou plusieurs styles. Voir STYLEITEM Javascript .

L'échelle à laquelle les symboles et/ou le texte apparaissent en taille réelle. Cela permet une mise à l'échelle dynamique des objets en fonction de l'échelle de la carte. S'il n'est pas défini, ce calque apparaîtra toujours à la même taille. La mise à l'échelle n'a lieu que dans les limites de MINSIZE et MAXSIZE comme décrit ci-dessus. L'échelle est donnée comme dénominateur de la fraction d'échelle réelle, par exemple pour une carte à l'échelle 1:24 000, utilisez 24 000. Implémenté dans MapServer 5.0, pour remplacer le paramètre obsolète SYMBOLSCALE.

Utilisé comme alternative globale à CLASS TEMPLATE . Voir Modèle pour plus d'informations.

Nom du fichier ou de la couche tileindex. Un index de tuile est similaire à un index de bibliothèque ArcInfo. Le tileindex contient des entités surfaciques pour chaque tuile. L'élément qui contient l'emplacement des données tuilées est donné à l'aide du paramètre TILEITEM. Lorsqu'un fichier est utilisé comme index de tuile pour un fichier de formes ou des couches raster, l'index de tuile doit être un fichier de formes. Pour les couches OGR CONNECTIONTYPE, toute source de données prise en charge par OGR peut être un index de tuile. Normalement, l'emplacement doit contenir le chemin d'accès au fichier de tuiles par rapport au chemin de forme, et non par rapport à l'index de tuile lui-même. Si le paramètre DATA contient une valeur, elle est ajoutée à la fin de l'emplacement. Lorsqu'une couche tileindex est utilisée, elle fonctionne de la même manière qu'une référence directe à un fichier, mais n'importe quelle source d'entités prise en charge peut être utilisée (c'est-à-dire postgres, oracle).

Tous les fichiers du tileindex doivent avoir le même système de coordonnées et pour les fichiers vectoriels le même ensemble d'attributs dans le même ordre.

À partir de MapServer 6.4 pour les couches raster et MapServer 7.2 pour les couches vectorielles, des index de tuiles avec des tuiles de différentes projections peuvent être utilisés. Pour cela, le paramètre TILESRS doit être spécifié.

Élément qui contient l'emplacement d'une tuile individuelle, la valeur par défaut est « emplacement ».

Nom de l'attribut qui contient le SRS d'une tuile individuelle. Ce SRS peut être exprimé au format WKT, sous forme de code EPSG:XXXX ou sous forme de chaîne PROJ. Si le tileindex contient des rasters dans différentes projections, cette option doit être spécifiée. Si le tileindex a été généré avec gdaltindex (GDAL >= 2.0) ou ogrtindex (GDAL >= 2.2), la valeur de TILESRS est la valeur de l'option -src_srs_name de gdaltindex/ogrtindex. Voir Tileindexes avec des tuiles dans différentes projections

Cette option n'est actuellement disponible que sur les couches raster.

Sensibilité pour les requêtes basées sur des points (c'est-à-dire via la souris et/ou les coordonnées cartographiques). Donné en UNITES DE TOLERANCE. Si la couche est un POINT ou une LIGNE, la valeur par défaut est 3. Pour tous les autres types de couche, la valeur par défaut est 0. Pour restreindre les recherches de polygones afin que le point doive se trouver dans le polygone, définissez la tolérance sur zéro. Ce paramètre ne s'applique pas aux opérations WFS GetFeature.

Unités de la valeur de TOLÉRANCE. La valeur par défaut est les pixels. Nauticalmiles a été ajouté dans MapServer 5.6.

TRANSPARENCE [entier|alpha] - obsolète

Deprecato dalla versione 5.0 : Utilisez OPACITY à la place.

Deprecato dalla versione 7.0 : utilisez plutôt COMPOSITE.

Indique à MapServer si une couche particulière doit être transformée ou non d'un système de coordonnées en coordonnées d'image. La valeur par défaut est true. Cela vous permet de créer des fichiers de formes en coordonnées image/graphique et donc d'avoir des caractéristiques qui seront toujours affichées au même endroit sur chaque carte. Idéal pour placer des logos ou du texte dans des cartes. N'oubliez pas que le système de coordonnées graphiques a une origine dans le coin supérieur gauche de l'image, contrairement à la plupart des systèmes de coordonnées cartographiques.

La version 4.10 introduit la possibilité de définir des caractéristiques avec des coordonnées données en pixels (ou en pourcentages, voir UNITS), le plus souvent des caractéristiques en ligne, par rapport à autre chose que le coin UL d'une image. C'est ce que signifie « TRANSFORMER FAUX ». En définissant une origine alternative, cela vous permet d'ancrer quelque chose comme une déclaration de droit d'auteur à une autre partie de l'image d'une manière indépendante de la taille de l'image.

Spécifie comment les données doivent être dessinées. N'a pas besoin d'être le même que le type de fichier de formes. Par exemple, un fichier de formes de polygones peut être dessiné comme une couche de points, mais un fichier de formes de points ne peut pas être dessiné comme une couche de polygones. Règles de bon sens.

Afin de différencier les POLYGONES et les POLYLINES (qui n'existent pas en tant que type), il suffit d'utiliser ou d'omettre respectivement le mot-clé COLOR lors de la classification. Si vous l'utilisez, c'est un polygone avec une couleur de remplissage, sinon c'est une polyligne avec seulement OUTLINECOLOR.

Un cercle doit être défini par un rectangle englobant minimum. C'est-à-dire deux points qui définissent le plus petit carré pouvant le contenir. Ces deux points sont les deux coins opposés de ladite boîte. Voici un exemple utilisant des points en ligne pour tracer un cercle :

La requête TYPE signifie que la couche peut être interrogée mais pas dessinée.

L'annotation TYPE est dépréciée depuis la version 6.2. Des fonctionnalités identiques peuvent être obtenues en ajoutant des blocs STYLE de niveau LABEL, et ne nécessitent pas de charger les jeux de données deux fois dans deux couches différentes comme c'était le cas avec les couches d'annotation TYPE .

Le graphique HowTo de création de graphiques dynamiques pour le graphique TYPE.

Unités de la couche. Les pourcentages (dans ce cas, une valeur comprise entre 0 et 1) ont été ajoutés dans MapServer 4.10 et sont principalement destinés aux fonctionnalités en ligne. nauticalmiles a été ajouté dans MapServer 5.6.

Un modèle JSON UTFGrid. Syntaxe d'expression MapServer (expressionObj). Si aucun UTFDATA n'est fourni, aucune donnée au-delà des valeurs UTFITEM ne sera exposée. Si UTFITEM est défini, les UTFDATA les exposent afin que les clés et les données puissent être connectées. Voir MS RFC 93 : prise en charge de la grille UTF et sortie UTFGrid .

L'attribut à utiliser comme ID pour l'UTFGrid. Si un UTFITEM n'est pas défini, l'ID séquentiel (basé sur l'ordre de rendu) est utilisé. Si UTFITEM est défini, les UTFDATA les exposent afin que les clés et les données puissent être connectées. Voir MS RFC 93 : prise en charge de la grille UTF et sortie UTFGrid .

Signale le début d'un bloc VALIDATION.

Depuis MapServer 5.4.0, les blocs VALIDATION sont le mécanisme préféré pour spécifier des modèles de validation pour les substitutions de paramètres d'exécution CGI. Voir Substitution à l'exécution .


Impossible de compiler sous Windows mingw

Vous avez demandé -- vous venez d'essayer de compiler le dernier r7741 et vous ne pouvez pas. J'ai pu compiler et vérifier correctement il y a environ 2 jours.

fait la même chose avec mon 9.0. Je n'ai pas pris la peine d'essayer 9.1.

Faites-moi savoir si vous avez besoin d'un journal complet.

Ожения (5)

Téléchargez toutes les pièces jointes au format : .zip

Стория изменений (66)

Commentaire:1 Modifié il y a 10 mois par robe

Pour répondre à votre question avant de la poser.

cd liblwgeom make make check

Cela fonctionne compile et fait des passes de contrôle. Donc je suppose qu'il doit y avoir un autre problème de commande

Comment:2 Modifié il y a 10 mois par strk

Votre erreur semble être dans libpgcommon, pas dans liblwgeom. Ce répertoire n'utilise _pas_ PGXS, peut-être devrait-il le faire.

Comment:3 Modifié il y a 10 mois par strk

Ajout de bnordgren dans Cc, étant l'auteur du patch initial pour libpgcommon

Comment:4 Modifié il y a 10 mois par strk

Pour référence, #1053 est le ticket sur le nouveau répertoire libpgcommon.

Commentaire:5 следующий: 9 Modifié il y a 10 mois par strk

Regina, libpgcommon utilise en fait PGSQL_BE_CPPFLAGS, donc _devrait_ trouver tout le nécessaire pour postgresql. où est votre netdb.h ? J'en ai un dans /usr/include et quelques-uns sous postgresql-xxx/include/server/port/win32. Je soupçonne que PGXS se chargerait d'ajouter -I. /port pour win32

Comment:6 Modifié il y a 10 mois par strk

Regina, pour confirmer : cd libpgcommon && make

Comment:7 Changé il y a 10 mois par robe

échoue. Le journal ressemble à ceci :

Comment:8 Changé il y a 10 mois par robe

J'ai un netdb.h et c'est dans --

C'est pourtant le seul que je vois. N'en voyez pas un dans mes dossiers msys ou mingw

Comment:9 ответ на: 5 Modifié il y a 10 лет par bnordgren

Regina, libpgcommon utilise en fait PGSQL_BE_CPPFLAGS, donc _devrait_ trouver tout le nécessaire pour postgresql. où est votre netdb.h ? J'en ai un dans /usr/include et quelques-uns sous postgresql-xxx/include/server/port/win32. Je soupçonne que PGXS se chargerait d'ajouter -I. /port pour win32

J'ai moi-même ajouté PGSQL_BE_CPPFLAGS, à la suite de $PGCONFIG --includedir-server, donc si nous trouvons ce qui doit être ajouté pour Windows, c'est l'endroit pour le mettre. Le fichier netdb.h se trouve-t-il dans l'un des répertoires pouvant être extraits de pg_config ?

Je n'utilise pas PGXS car, comme je le lis, il crée des fichiers *.so et complète les modules d'extension postgresql. libpgcommon doit être statique.

Commentaire:10 Modifié il y a 10 mois par bnordgren

Étant donné que win32 semble être un cas particulier, je viens d'ajouter manuellement le répertoire d'inclusion si l'hôte est un mingw32. (par exemple, cela ne devrait pas écraser le système netdb.h si vous compilez sous Linux) Voyez si cela le résout :

Vous devrez réexécuter autogen.sh et configurer .

Commentaire:11 следующий: 12 Modifié il y a 10 mois par robe

Malheureusement, cela n'a pas fonctionné après la configuration d'autogen.sh. Toujours le même problème.

Commentaire:12 ответ на: 11 Modifié il y a 10 лет par bnordgren

Malheureusement, cela n'a pas fonctionné après la configuration d'autogen.sh. Toujours le même problème.

Juste pour confirmer, vous avez modifié manuellement configure.ac pour appliquer le correctif dans le lien github ci-dessus, n'est-ce pas ? (. avant le autogen.sh et configure)

Si c'est le cas, je ne suis pas sûr de comprendre pourquoi le répertoire supplémentaire n'a pas été récupéré. Nous devrons peut-être faire appel à quelqu'un avec plus d'expérience avec autoconf, car je suis limité à copier et coller des extraits prometteurs. :)

Commentaire:13 Modifié il y a 10 mois par strk

Vous avez besoin de AC_CANONICAL_HOST pour que $host soit défini. Essayez d'ajouter une ligne 'echo "-----"$host' pour voir ce que vous obtenez.

Commentaire:14 Modifié il y a 10 mois par strk

Oubliez ça, nous imprimons déjà $ à la fin de la configuration :

PostGIS est maintenant configuré pour $

Qu'est-ce que ça dit là, robe ?

Commentaire:15 Changé il y a 10 mois par robe

Commentaire:16 Modifié il y a 10 mois par strk

Veuillez essayer r7748 (la citation manquait dans le patch de Bryce)

Commentaire:17 Changé il y a 10 mois par robe

Je pense que c'est mieux, mais maintenant j'obtiens différentes erreurs :

Changé il y a 10 mois par robe

erreurs après le correctif de configuration mingw

Commentaire:18 Modifié il y a 10 mois par robe

En fait, mes 9.0 et 9.1beta3 sont allés un peu plus loin et se compilent en postgis-2.0.dll mais échouent lors de la création de la dll raster.

J'avais une inclusion supplémentaire de proj pour ma version 8.4 que j'avais insérée pendant le débogage et qui, selon moi, pouvait être à l'origine du problème, mais s'en débarrasser n'a pas aidé.

Commentaire:19 Modifié il y a 10 mois par robe

Malheureusement, mon postgis.dll construit ne fonctionne pas sur ma 9.0 ne fonctionne pas et échoue en cas de régression avec ceci:

Commentaire:20 Modifié il y a 10 mois par strk

Veuillez essayer r7749 pour le problème avec 9.x et raster. Quant à l'autre, il semble qu'il s'agisse à nouveau d'un problème d'ordre de bibliothèque, mais je ne sais pas comment le résoudre car l'ordre semble être piloté par PGXS lui-même. Faites-moi savoir si nous sommes bons avec 9.0 et 9.1 d'abord.

Commentaire:21 Modifié il y a 10 mois par strk

@robe, pour tester si l'ordre des bibliothèques _est_ le problème avec votre 8.4, vous pouvez essayer de les exécuter manuellement, sous le répertoire postgis/ :

A défaut (appel initial) :

Comment:22 Changé il y a 10 mois par robe

strk avec r7757 qui corrige ma capacité à compiler vers une dll raster pour mon 9.0. Cependant, j'ai toujours le problème le plus urgent que la dll qu'il génère n'est pas utilisable.

le journal de régression affiche toujours la même chose :

Commentaire:23 Changé il y a 10 mois par robe

D'accord pour 8.4, ce hack le fait compiler en .dll. make check me donne un libgeos_c.dll introuvable mais sûr que c'est probablement assez facile à corriger. Je n'ai pas essayé de voir si j'ai le même problème de chargement dans PostgreSQL qu'avec 9.0

Commentaire:24 Modifié il y a 10 mois par robe

J'ai confirmé que mon postgis.dll 8.4 n'est pas bon non plus - obtenez la même erreur lorsque je vais installer dans une nouvelle base de données

Commentaire:25 следующий: 26 Modifié il y a 10 mois par strk

La macro PG_MODULE_MAGIC est dans libpgcommon/lwgeom_pg.c, enveloppée dans un ifdef. Pourriez-vous essayer de commenter les parties #ifdef/#endif peut-être ? Ou pourrait encore être un problème de commande.

Commentaire:26 о ответ на: 25 Modifié il y a 10 лет par bnordgren

La macro PG_MODULE_MAGIC est dans libpgcommon/lwgeom_pg.c, enveloppée dans un ifdef. Pourriez-vous essayer de commenter les parties #ifdef/#endif peut-être ? Ou pourrait encore être un problème de commande.

C'est le même code qu'il existait avant le déménagement (source :/trunk/postgis/[email protected]​). Avant la formation de libpgcommon, postgis et raster incluaient ce code séparément. Après avoir créé libpgcommon, j'avais des problèmes avec raster-2.0.so en raison d'une définition de symbole en double (une fois dans libpgcommon et une fois dans raster.) J'ai choisi de supprimer la définition de rt_pg.c en faveur de l'emplacement commun. postgis-2.0.so était bien car il n'incluait le symbole qu'une seule fois. Et tous se sont réjouis d'avoir réussi les tests de régression.

Si je comprends bien le problème, Linux copie ce symbole lors de la liaison de postgis-2.0.so à libpgcommon.a , mais Windows dllwrap le filtre (peut-être parce qu'il n'est jamais référencé). Si nous ne pouvons pas trouver un moyen de satisfaire tous les éditeurs de liens, je suggérerais de déplacer cet extrait de code dans rt_pg.c et un fichier *.c de votre choix dans le répertoire postgis.

Commentaire:27 Changé il y a 10 mois par robe

La suppression des éléments ifdef n'a pas aidé. Je pense que Bryce a probablement raison - nous devrons peut-être remettre les liens dans raster et postgis séparément.

Je vais essayer cela ensuite et voir si cela résout les choses. Quoi qu'il en soit, si def doit être supprimé, car nous ne prenons en charge rien de moins que 8.4 sur 2.0 de toute façon et la dernière fois que nous prenons en charge 8.2, je pense que c'était en 1.4

Comment:28 Changé il y a 10 mois par robe

Bon je pense avoir fait des progrès. J'ai ajouté PG_MODULE_MAGIC à postgis/lwgeom_geos.c

juste avant les données de référence (ligne 23).

Commentaire:29 Modifié il y a 10 mois par strk

Peut-être avez-vous besoin d'un type de commutateur DLLEXPORT explicite pour les symboles destinés à être utilisés en dehors du fichier libpgcommon.a ?

Commentaire:30 Modifié il y a 10 mois par bnordgren

Quelque chose ne va pas. J'ai commencé à avoir des problèmes similaires lors de la préparation du patch pour #1161. En fait, chaque fois que je déplaçais une fonction vers libpgcommon qui devait être exposée à SQL, je commençais à avoir des problèmes avec la régression. J'ai décidé de ne déplacer que les fonctions C, et non des choses comme :

La partie hoakey est que transform_geom a également été déplacé vers libpgcommon dans ma construction, et les régressions passent très bien. Même plateforme, même concept (déplacement d'une V1 PG_FUNCTION vers libpgcommon depuis postgis), deux résultats différents. Cela semble être un problème d'éditeur de liens très étrange. Il serait peut-être plus sage de conserver toutes les fonctions V1 PG dans /postgis ou /raster , et de ne factoriser que le code C.

En outre, nous ne voulons vraiment pas exposer transform_geom à SQL à partir des modules postgis et raster, je ne pense pas.

Commentaire:31 следующие: 33 35 Modifié il y a 10 mois par robe

Je pensais qu'aucune des fonctions de libpgcommon n'était récupérée, mais il semble que ce ne soit que celles de lwgeom_transform.c. Le lwgeom_pg.c qui a des DONNÉES, par ex. lwgeom_pg.h semble s'être bien installé puisque je peux utiliser ST_Force_4D etc. de PostgreSQL en utilisant ce binaire.

J'ai reçu un avis sur le fait que proj ne peut pas être lié dynamiquement ou quelque chose, alors c'est peut-être un signal. Je ne me souviens pas avoir vu cet avis avant ce passage à libpgcommon, mais il est possible que je n'ai tout simplement pas fait attention.

Je suis cependant perplexe - pourquoi lwgeom_pg.h a-t-il les DATUMS pour lwgeom_pg.c, mais pourtant lwgeom_transform.c les DATUMS sont simplement jetés là-dedans au lieu de dans le fichier d'en-tête. Y a-t-il une raison à ce qui me semble être une incohérence ? J'ai essayé de déplacer les DATUMS vers le lwgeom_transform.h et il s'est compilé, mais n'a pas semblé résoudre mon problème.

ASTUCE ASTUCE : Mark C., si vous faites attention -- ce serait maintenant le bon moment pour exprimer vos paroles de sagesse puisque vous en savez plus sur ce truc de mingw que n'importe lequel d'entre nous.

Commentaire:32 Modifié il y a 10 mois par robe

J'avais essayé de déplacer le Datum du côté postgis, en essayant de me rappeler si je l'avais également retiré de libpgcommon. Comme je l'ai rappelé, il a compilé mais a toujours donné la même erreur. Je suis d'accord bien que nous voulions probablement exposer uniquement sur postgis ou raster.

Commentaire:33 ответ на: 31 следующий: 34 Modifié il y a 10 лет par bnordgren

Je pensais qu'aucune des fonctions de libpgcommon n'était récupérée, mais il semble que ce ne soit que celles de lwgeom_transform.c. Le lwgeom_pg.c qui a des DONNÉES, par ex. lwgeom_pg.h semble s'être bien installé puisque je peux utiliser ST_Force_4D etc. de PostgreSQL en utilisant ce binaire.

Les déclarations de fonction dans lwgeom_pg.h ne sont que des déclarations. Ils ne semblent pas être implémentés dans lwgeom_pg.c . Je pense que la partie importante w.r.t. exposer le code à la couche SQL est cette macro PG_FUNCTION_INFO_V1(fn_name). Je parierais que ces fonctions sont implémentées quelque part sous le répertoire postgis/.

Cela pourrait bien être un problème, mais je m'en remets à strk.

Je suis cependant perplexe - pourquoi lwgeom_pg.h a-t-il les DATUMS pour lwgeom_pg.c, mais pourtant lwgeom_transform.c les DATUMS sont simplement jetés là-dedans au lieu de dans le fichier d'en-tête. Y a-t-il une raison à ce qui me semble être une incohérence ? J'ai essayé de déplacer les DATUMS vers le lwgeom_transform.h et il s'est compilé, mais n'a pas semblé résoudre mon problème.

Mon intention était de suggérer que le implémentations être déplacé dans le répertoire postgis, comme dans ce commit sur github : https://github.com/bnordgren/postgis/commit/b657f94874fee490dfdb000bdb8037290624ffc5

Il y a plus de travail à faire, car ce code utilise l'api de projection-cache privée. Je l'ai converti en api publique dans ce commit : https://github.com/bnordgren/postgis/commit/3daa078ff5901befb8ddc373e0c519e4a24ab2a5

Cela fonctionne pour moi sur Linux, mais cela fonctionnait aussi pour moi avant. Cela peut valoir le coup.

La chose super irritante est qu'entre cet après-midi et ce soir, le raster a commencé à avoir des régressions en raison du fait qu'il ne pouvait pas trouver le symbole "lwgeom_init_allocators". (Mais cela fonctionne toujours bien pour postgis.) Pour la vie de moi, je ne sais pas ce qui a changé.

Commentaire:34 ответ на: 33 Modifié il y a 10 лет par bnordgren

La chose super irritante est qu'entre cet après-midi et ce soir, le raster a commencé à avoir des régressions en raison du fait qu'il ne pouvait pas trouver le symbole "lwgeom_init_allocators". (Mais cela fonctionne toujours bien pour postgis.) Pour la vie de moi, je ne sais pas ce qui a changé.

. et ce matin, cela fonctionne pour moi (mais j'ai dû résoudre certaines instabilités du système via fsck .)

Commentaire:35 ответ на: 31 Modifié il y a 10 лет par mcayland

ASTUCE ASTUCE : Mark C., si vous faites attention -- ce serait maintenant le bon moment pour exprimer vos paroles de sagesse puisque vous en savez plus sur ce truc de mingw que n'importe lequel d'entre nous.

J'essaie de faire attention, bien qu'assez carrément pour le moment :/ J'ai peur de ne pas vraiment savoir sans essayer de construire une copie moi-même. J'avais une configuration de compilateur croisé mingw, mais c'est pour l'ancienne version 3.4.5 plutôt que pour le compilateur 4.5.0 plus récent, il me faudrait donc un certain temps pour me remettre à niveau sur ce point, j'en ai peur :(

Commentaire:36 Changé il y a 10 mois par robe

J'utilise toujours 3.4.5, pas 4.5. Je ne pouvais pas faire en sorte que les nouveaux gccs compilent GEOS, alors j'ai abandonné cela il y a quelque temps. Donc, votre 3.4.5 devrait fonctionner correctement.

Commentaire:37 Modifié il y a 10 mois par strk

Robe : est-ce que raster dll se charge correctement ? Je vois qu'il y a un PG_MODULE_MAGIC explicite dans rt_pg.c

Commentaire:38 Modifié il y a 10 mois par robe

POUR VOTRE INFORMATION. À partir de r7766, j'étais de retour à la compilation, mais l'obtention de l'extension MAGIC thingymagig nécessitait une erreur. (Ceci compile mon installation de Windows 9.0 - je n'ai pas essayé les autres)

Dans postgis/lwgeom_functions_basic.c et cela semblait résoudre ce problème et postgis vérifie que les tests plpgsql ont réussi. Ouais pipi.

Cependant, mon raster est un peu foutu. Il semble générer le rtpostgis-20.dll, mais échoue lors de la vérification avec toutes sortes de choses comme

Je vais essayer le raster généré pour voir s'il est bon.

Commentaire:39 Modifié il y a 10 mois par robe

Bon, le rtpostgis-2.0.dll semble s'installer correctement et je pourrais faire des tests simples comme créer des rasters factices et lire des métadonnées. Il semble donc que quelque chose cloche dans le processus d'installation.

Commentaire:40 Modifié il y a 10 mois par strk

@robe : tu veux dire avec ou sans changements ? Si avec : quels changements ? Si sans : quelle révision ?

Commentaire:41 Modifié il y a 10 mois par strk

r7757 contient une autre grande secousse, je suis tout ouïe pour une expérience mingw avec elle.

Commentaire:42 Changé il y a 10 mois par robe

Est-ce le bon numéro de révision. C'est à rebours non ?

Pour ton autre question. Mon 9.0 fonctionne avec des modifications (je veux dire que les dlls sont bonnes, la vérification de make fonctionne pour postgis), mais l'installation échoue avec ce qui précède. les fichiers sont à la fois bons si postgis et raster .dll. Voir mon patch ci-joint pour arriver au point que j'ai décrit.

Changé il y a 10 mois par robe

Comment:43 Modifié il y a 10 mois par strk

Oups, c'était r7768. J'espère que cela fonctionnera sans patchs de votre côté (croisez les doigts).

Commentaire:44 Changé il y a 10 mois par robe

1 pas en avant et 1 pas en arrière.

J'ai dû me débarrasser de votre ifdef 0 (blocage de la magie du module dans rt_pg), pour que le raster ne donne pas l'erreur "vous avez besoin de magie" lors du chargement. Encore besoin du patch magique du module pour le côté postgis. La vérification du raster échoue toujours avec

bien que les binaires après les changements magiques fonctionnent bien.

Sur le plan positif, il s'installe maintenant. Ne plus obtenir le "Impossible de créer un fichier régulier `_inst.2160_'" plus d'erreur.


Étape 5 - Interrogation des données spatiales

Supposons qu'on nous demande de trouver les dix pays les plus septentrionaux du monde. C'est facile d'utiliser PostGIS et les données que nous avons importées.

Reconnectez-vous à la base de données test1.

Lister les tables de la base de données :

Cela renverra deux tables :

Nous utilisons la table ne_110m_admin_0_countries, qui contient les données qui nous aident à répondre à notre question. Cette table a une colonne admin qui contient le nom du pays et une colonne wkb_gemoetry qui contient des données géométriques. Si vous souhaitez voir toutes les colonnes de la table ne_110m_admin_0_countries, vous pouvez exécuter la commande :

Vous voyez les colonnes et leurs types de données. Le type de données de la colonne wbk_geometry&rsquos ressemble à ceci :

La colonne wbk_geometry contient des polygones. Nous traitons des pays et de leurs frontières irrégulières, et donc chaque pays de notre base de données n'a pas de valeur unique pour la latitude. Ainsi, pour obtenir la latitude de chaque pays, nous trouvons d'abord le centroïde de chaque pays à l'aide de la fonction PostGIS ST_Centroid. Nous extrayons ensuite la valeur centroïde&rsquos Y à l'aide de la fonction ST_Y. Nous pouvons utiliser cette valeur comme latitude.

Nous ordonnons les résultats par ordre décroissant car le pays le plus au nord aura la latitude la plus élevée.

Exécutez cette requête et vous verrez les dix premiers pays les plus au nord :

Maintenant que vous avez votre réponse, vous pouvez quitter la base de données avec

Vous pouvez trouver plus d'informations sur les différentes fonctions PostGIS dans la section Référence PostGIS de la documentation PostGIS.


Voir la vidéo: Using PostGIS to Handle Geospatial Data - Dylan Herron (Octobre 2021).