Nouvelle version
Multi-géométrie
J'ai mis en place la prise en compte des multi-géométries :
- MULTIPOLYGON
- MULTILINESTRING
- MULTIPOINT
Requêtes
J'ai rajouté la possibilité d'exécuter les requêtes présente dans l'éditeur SQL de PgAdmin III, mais pour que cela soit possible, il faut respecter certaines règles:
- Un seul éditeur SQL de PgAdmin III doit être ouvert.
- Pour que la ou les requête(s) soient exécutées, il ne faut pas être positionné sur un nom de table dans le navigateur d'objets de PgAdmin III , ou alors que la table soit déjà chargée dans le visualiseur. Une table sélectionnée prendra toujours le pas sur une ou des requêtes.
- Le premier champ doit être géométrique ou une géométrie issue d'une fonction de traitement géométrique (ST_Buffer, ST_Intersection....) par requête sera utilisé pour l'affichage. Ce champ ou cette géométrie sera encapsulé par la fonction AsBinary et aura pour alias geom :
- SELECT AsBinary(wkb_geometry) as geom ....
- SELECT AsBinary(ST_Buffer(wkb_geometry, 1.0)) as geom...
- SELECT AsBinary(ST_Intersection(a.wkb_geometry,b.wkb_geoemetry)) as geom...
- ....
- Le second champ doit permettre de déterminer le type de géométrie, il doit donc être encapsulé par la fonction GeometryType, un alias n'est pas nécessaire :
- SELECT ..., GeometryType(wkb_geometry)...
- SELECT ..., GeometryType(ST_Buffer(wkb_geometry,1.0))...
- SELECT ..., GeometryType(ST_Intersection(a.wkb_geometry,b.wkb_geometry))...
- ....
- Chaque requête devra se terminer par un point virgule, ce qui permettra de pouvoir exécuter plusieurs requêtes a la suite.
Exemple
Ci-dessous deux requêtes se terminant par des points virgules :
- La première requête va charger la commune qui a pour nom 'Sainte-Croix-de-Quintillargues'
- La seconde requête va charger tous les bâtiments de cette commune.
Après avoir lancé le plugin PostGISViewer, les deux requêtes sont exécutées et donne le résultat suivant :
Les couches créées portent comme nom query avec un identifiant qui s'incrémente pour toute la cession du visualiseur.
Toutes suggestions, remarques pour l'amélioration de cet outil seront les bienvenues.
A suivre...
Marvellous ... I am using it, but utils are not working (i.e. Buffer)
RépondreSupprimerthank you trap,
RépondreSupprimerI tried the buffer tool, and it's work.
to perform it :
select the tools tab,
double clicked on the buffer tool,
In the Input part :
- select the input feature set in the combobox,
- i don't change Buffer Distance,Quadrant segments and End cap style,
In the output part :
- click on the plus button and select the output directory and give a shape name for the result computation.
Click on the OK button to execute the computation, a ToolProgress dialog box appears with some results.
Click on the Close Button and now click on the plus icon in the main toolbar to load the new shape.
Formidable, je n'ai eu qu'a créer un dossier "data" dans le répertoire "postgisviewer" pour éliminer l'erreur générée à la première visualisation de table. Il faut penser à vider ce répertoire en fin de session de tous les "shp" qui sont générés à la volée indépendamment des "export".
RépondreSupprimerJe relève que les vues ne s'affichent pas dans le visualisateur bien qu'elles soient référencées dans "geometry_columns", est-ce normal, pensez-vous y remédier ?
Pas de problème pour des query basiques, bravo cela facilite grandement le travail courant avec postgis.
Cebe734
Cebe734,
RépondreSupprimerJe viens de créer une vue dans ma base de test, puis de la référencer dans la table geometry_columns. Si je sélectionne cette vue dans le navigateur d'objets, puis lance PostGISViewer, rien ne se passe. J'ai vérifié dans le fichier plugins.ini de PgAdmin III, aucune variable ne permet de pointer sur une vue, contrairement aux tables pour lesquelles existe une variable $$TABLE, donc a ce niveau je ne peux rien faire actuellement.
Par contre une requête permet d'afficher le contenu de la vue.
bonjour,
RépondreSupprimerj'essai de lancer le plug in sur une table contenant un champ geom de type point et rien ne se passe. je pense avoir suivi à la lettre la proc d'install.
xavier
bonjour, j ai testé avec pgadmin III et j'ai une fenêtre Microsoft.NET FRAMEWORK avec l'exception System.ArgumentOutOfRangeException : " l index était hors limites. il ne doit pas être négatif et doit être inférieur à la taille de la collection
RépondreSupprimerNom du paramètre: index .
Ou Puis je vous envoyer la suite du fichier ?
Cordialement
-------
windows 7 premium 64 bit, .net 3.5 et 4.0, pgadmin 1.21.1 ( oct 3 2010,rev REL-1_12_1), Postgresql 9.0 ( x86) compile with VS 1500 32 bit , pgviewer 1.000 pixelius France 2010
I too am getting the same error as Anonyme a dit. I'm using 1.14 pgAdmin III standalone to PostgreSQL 9.1. Tried with embedded pgAdmin but got same error. I'm running Windows 7 64bit.
RépondreSupprimer** Exception Text **
System.ArgumentOutOfRangeException: Index was out of range. Must be non-negative and less than the size of the collection.
Parameter name: index
at System.ThrowHelper.ThrowArgumentOutOfRangeException()
at System.Collections.Generic.List`1.get_Item(Int32 index)
at MapWindow.Main.BaseList`1.get_Item(Int32 index)
at MapWindow.Map.MapLayerCollection.get_Item(Int32 index)
at pgviewer.mainmod.main(frmMain frm) in C:\Documents and Settings\jel\Mes documents\Visual Studio 2008\Projects\pgviewer\pgviewer\mainmod.vb:line 487
at System.EventHandler.Invoke(Object sender, EventArgs e)
at System.Windows.Forms.Form.OnLoad(EventArgs e)
at System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
at System.Windows.Forms.Control.CreateControl()
at System.Windows.Forms.Control.WmShowWindow(Message& m)
at System.Windows.Forms.Control.WndProc(Message& m)
at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
** Loaded Assemblies **
mscorlib
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.5448 (Win7SP1GDR.050727-5400)
CodeBase: file:///C:/Windows/Microsoft.NET/Framework64/v2.0.50727/mscorlib.dll
pgviewer
Assembly Version: 1.0.0.0
Win32 Version: 1.0.0.0
CodeBase: file:///C:/Program%20Files%20(x86)/pgAdmin%20III/1.14/PostGisViewer/PGViewer.exe
Microsoft.VisualBasic
Assembly Version: 8.0.0.0
Win32 Version: 8.0.50727.5420 (Win7SP1.050727-5400)
CodeBase: file:///C:/Windows/assembly/GAC_MSIL/Microsoft.VisualBasic/8.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualBasic.dll
System
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.5447 (Win7SP1GDR.050727-5400)
CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System/2.0.0.0__b77a5c561934e089/System.dll
System.Windows.Forms
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.5446 (Win7SP1GDR.050727-5400)
CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Windows.Forms/2.0.0.0__b77a5c561934e089/System.Windows.Forms.dll
System.Drawing
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.5420 (Win7SP1.050727-5400)
CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Drawing/2.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll
System.Configuration
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.5420 (Win7SP1.050727-5400)
CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Configuration/2.0.0.0__b03f5f7f11d50a3a/System.Configuration.dll
System.Xml
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.5420 (Win7SP1.050727-5400)
CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Xml/2.0.0.0__b77a5c561934e089/System.Xml.dll
System.Runtime.Remoting
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.5420 (Win7SP1.050727-5400)
CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Runtime.Remoting/2.0.0.0__b77a5c561934e089/System.Runtime.Remoting.dll
MapWindow
Assembly Version: 6.0.0.0
Win32 Version: 6.0.0.0
CodeBase: file:///C:/Program%20Files%20(x86)/pgAdmin%20III/1.14/PostGisViewer/MapWindow.DLL
System.Core
Assembly Version: 3.5.0.0
Win32 Version: 3.5.30729.5420 built by: Win7SP1
CodeBase: file:///C:/Windows/assembly/GAC_MSIL/System.Core/3.5.0.0__b77a5c561934e089/System.Core.dll
Npgsql
Assembly Version: 2.0.9.0
Win32 Version: 2.0.9.0
CodeBase: file:///C:/Program%20Files%20(x86)/pgAdmin%20III/1.14/PostGisViewer/Npgsql.DLL
System.Data
Assembly Version: 2.0.0.0
Win32 Version: 2.0.50727.5420 (Win7SP1.050727-5400)
CodeBase: file:///C:/Windows/assembly/GAC_64/System.Data/2.0.0.0__b77a5c561934e089/System.Data.dll
Mono.Security
Assembly Version: 2.0.0.0
Win32 Version: 2.0.0.0
CodeBase: file:///C:/Program%20Files%20(x86)/pgAdmin%20III/1.14/PostGisViewer/Mono.Security.DLL
In the error stack above there is:
RépondreSupprimerat pgviewer.mainmod.main(frmMain frm) in C:\Documents and Settings\jel\Mes documents\Visual Studio 2008\Projects\pgviewer\pgviewer\mainmod.vb:line 487
Why is this referring to a directory etc that simply does not exist on my computer?
Simon
Pareil pour moi, les tables c'est ok mais pas les requêtes avec l'erreur suivante :
RépondreSupprimerConsultez la fin de ce message pour plus de détails sur l'appel du débogage
juste-à-temps (JIT) à la place de cette boîte de dialogue.
************** Texte de l'exception **************
System.ArgumentOutOfRangeException: L'index était hors limites. Il ne doit pas être négatif et doit être inférieur à la taille de la collection.
Nom du paramètre : index
à System.ThrowHelper.ThrowArgumentOutOfRangeException(ExceptionArgument argument, ExceptionResource resource)
à System.ThrowHelper.ThrowArgumentOutOfRangeException()
à System.Collections.Generic.List`1.get_Item(Int32 index)
à MapWindow.Map.MapLayerCollection.get_Item(Int32 index)
à pgviewer.mainmod.main(frmMain frm) dans C:\Documents and Settings\jel\Mes documents\Visual Studio 2008\Projects\pgviewer\pgviewer\mainmod.vb:ligne 487
à pgviewer.frmMain.frmMain_Load(Object sender, EventArgs e) dans C:\Documents and Settings\jel\Mes documents\Visual Studio 2008\Projects\pgviewer\pgviewer\frmMain.vb:ligne 28
à System.EventHandler.Invoke(Object sender, EventArgs e)
à System.Windows.Forms.Form.OnLoad(EventArgs e)
à System.Windows.Forms.Form.OnCreateControl()
à System.Windows.Forms.Control.CreateControl(Boolean fIgnoreVisible)
à System.Windows.Forms.Control.CreateControl()
à System.Windows.Forms.Control.WmShowWindow(Message& m)
à System.Windows.Forms.Control.WndProc(Message& m)
à System.Windows.Forms.ScrollableControl.WndProc(Message& m)
à System.Windows.Forms.ContainerControl.WndProc(Message& m)
à System.Windows.Forms.Form.WmShowWindow(Message& m)
à System.Windows.Forms.Form.WndProc(Message& m)
à System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
à System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
à System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
Après avoir testé les releases 1.10, 1.12.3, 1.14.0 et 1.14.1, le problème survient avec les releases 1.14.x
Supprimerj'attends avec impatience votre correctif
Pour continuer sur mes tests, à l'ouverture de la fenêtre query votre programme ne la reconnait pas et donc pour lui il n'y a pas de requête chargée d'où le plantage
SupprimerEn espérant vous avoir aidé
For days I'm finding impossible to download the plug-in because there is a bug in the download page, the word of the captcha is not shown. I have read that it is wrong is happening to more people. Please, can you put a copy on another server?
RépondreSupprimerBravo pour ce travail, j'ai hâte de le tester mais le lien de téléchargement du viewer renvoie sur un fichier inexistant dans dl.free. Merci par avance.
RépondreSupprimerLink die
RépondreSupprimerThe link still not working.
RépondreSupprimerBonjour, je voulais savoir si il était possible de sortir les coordonnées de points ou de polygones à partir d'une table ou la colonne geometry est codée... Si oui, comment faire???
RépondreSupprimerIl y a un virus dans le link. Please fix?
RépondreSupprimerLink die please fix it.
RépondreSupprimerБудьте так добры, постройте новую версию с последним изданием Npgsql.dll
RépondreSupprimerБиблиотека более не требует mono.security и пользуется Microsoft .NET System.Numerics, разгружает систему и улучшает скорость работы.
Madamme and Monsigniore, the powers that be,
Can you please create new build for pgviewer.exe using latest edition of Npgsql.dll.
It switched to Microsoft's .NET System.Numerics from mono.security. Which helps to lighter weight and better system speed.
Гит адрес библиотеки ( Git address of the library )
https://github.com/npgsql/npgsql