Friday 24 January 2014

Display WMS/WFS requests sent by Map (FDO)



If you need to monitor / check http requests sent by FDO WMS/WFS providers you can use Fiddler. Setting it up correctly took me some time and caused head scratching as well. Fiddler is not aware of FDO http requests – you need to reroute the requests to Fiddlers internal proxy server. I sit behind a network proxy which makes things bit more complicated. 

FDO WMS in Map - http requests are shown in Fiddler
Here is my configuration – actually quite simple:

- Fiddler (4.4.5.9)
- Fiddler Options > Gateway > "Use System Proxy"
(when changing settings there restart Fiddler).

- Map 2013 SP2 Data Connect > FDO WMS Provider, proxy settings:
  Proxy-server: 127.0.0.1, port: 8888 (Fiddlers internal proxy)
  username /-password: my Windows credentials required to get through our network proxy server.
 
This doesn't work for all WMS servers I have tested so far. 
 
Further information can be found at the Map guy(de) blog.




 



FDO WMS/WFS - Anfragen abfangen



Wenn es mit FDO WMS/WFS nicht richtig funktioniert kann es hilfreich sein die Anfrage (GetCapabilities, GetMap etc.), die Map an den WMS/WFS Server sendet, zu kennen. Ein geeignetes Tool dafür ist Fiddler.

Jetzt gibt es im Zusammenhang mit Map (bzw. FDO) noch zu beachten, dass Fiddler nicht ohne weiteres die Http-Anfragen von Map erkennt. Dazu muss man Map so konfigurieren, dass die Anfragen über den Fiddler-eigenen internen Proxy Server umgeleitet werden.

Komplizierter wird die Situation dann, wenn man - wie ich - selber noch hinter einem Proxy Server sitzt.

Ich habe das nach einigen Versuchen soweit hinbekommen, dass ich für diverse WMS Server die Aufrufe nachverfolgen kann. Für einige WMS Server geht die Abfrage überhaupt nicht mehr (Fehlermeldung: Der HTTP-Server hat als Gateway oder Proxy während der Verarbeitung der Anforderung eine ungültige Antwort vom Upstream-Server erhalten.). Bei einigen WMS Servern sehe ich die Anfragen nicht - das liegt eventuell an HTTPS Konfiguration.


WMS Layer in Map - entsprechende Requests werden in Fiddler angezeigt
Hier die Kurzbeschreibung meiner Konfiguration:
- Fiddler (4.4.5.9)
- Fiddler Options > Gateway > "Use System Proxy"
(Achtung: wenn man dort Einstellungen setzt unbedingt Fiddler neu starten).

- Map 2013 SP2 FDO WMS, Proxyeinstellungen:
  Proxyserver: 127.0.0.1, Anschluss: 8888 (der interne Proxy von Fiddler)
  Benutzername /-passwort: mein Windows Benutzername - erforderlich, um mich am richtigen Netzwerk-Proxyserver in unserem Netzwerk anzumelden
  
Map 2013 - Proxyeinstellungen für FDO WMS und Fiddler


Hilfreiche Infos zu dem Thema gibt es auch im Map guy(de)Blog.

Thursday 23 January 2014

"Convert to industry model" – known limitations in Map 2013 Sp2



Map 2013 comes with a new feature called "Convert to industry model" which allows import of GIS data (via FDO) and CAD drawings (DWG) into an industry model (command: _mapconverttomodel). There are a few limitations I have found so far setting the tool up for different SHP and DWG imports into Oracle based industry models:

-       mapping file stores file name of input data file used when creating the mapping file. Later on mapping file cannot be applied to file with different file name. You need to adapt file name (either of file or in mapping file)

-      you cannot import multiple SHP files at the same time although you can set up the mapping for. Right now you need to import each file separately – this also requires to create a mapping fileseparately

-      the mapping dialog box is a bit confusing when you open an existing mapping file as it shows all boxes ticked on the data source side although not all attributes have been configuried for import

-      an empty layer in DWG file will stop the import process if the layer is part of your mapping but does not contain any cad features to import

-      so far all polygon SHP files have been imported incorrectly with the result that Oracle Spatial throws error messages when validating the geometry (same result is shown when you run 1-Click Maintanence with the Geometry check option enabled). Polygon features are displayed in Map nonetheless. Geometry can be mended with Oracle Spatial SQL (or just use GeoRaptor in SQLDeveloper).

-        When importing a SHP with an DATE datatype and it is mapped to VARCHAR2 column then Map adds "DATE" in front of the date. You need to clean it up yourself with SQL.

According to support some issues have already been resolved in Map 2014.

new articles will be published in English as well


According to Google statistics for this blog quite a few page requests come from non-german speaking countries. I will publish all new articles in English as well as long as the topic is not too specific (e.g. related to localized version or to country kits).

Have fun, Rob

"In Fachschale konvertieren" – Überblick Einschränkungen in Map 2013


Ich habe inzwischen für verschiedene Tabellen einen Datenimport (ESRI SHP, DXF/DWG) über die Funktion "In Fachschale konvertieren" konfiguriert. In Map 2013 SP2 gibt es einige Einschränkungen / Probleme, die ich hier mal aufführe. Soweit ich vom Support gehört habe, sollen zumindest einige Probleme in 2014 behoben worden sei.

-      in der Mappingdatei wird der Dateiname abgespeichert, der beim Anlegen des Mappings verwendet wurde.  Die Mappingdatei lässt sich später nicht verwenden, wenn der Name der neuen Importdatei davon abweicht. Man muss den Dateinamen anpassen.

-      Man kann nicht mehrere SHP Dateien gleichzeitig importieren. Zwar lässt sich das Mapping erstellen, aber später wird nur die erste SHP Datei importiert, die anderen werden ignoriert. Man muss also jede SHP Datei einzeln importieren und jeweils auch eine separate Mapping Datei vorhalten

-      Anzeige des Mappings ist verwirrend beim erneuten Verwenden – bei der Quelle sind alle Spalten markiert obwohl nur ein Teil davon tatsächlich gemappt ist und importiert wird

Links - bei Datenquelle - sind alle Häkchen gesetzt, obwohl nur ein Teil der Attribute tatsählich gemappt sind.


-       beim DWG Import – hat man einen DWG Layer gemappt, der keine Daten enthält wird der Import abgebrochen, man muss die Mappingdatei anpassen und den Layer aus dem Mapping entfernen.

-     Alle Polygon SHP Dateien wurden so importiert, dass Oracle bei der Prüfung Spatial Fehler meldet (1-Klick Wartung zeigt die Fehler ebenfalls). Die Polygone werden zwar in Map dargestellt, aber sind trotzdem inkorrekt. Nach dem Import muss man also  die Oracle Spatial Korrekturfunktionen anwenden, um die Fehler zu beheben (Tipp: geht einfach mit SQL Developer und GeoRaptor)

-      Import Datumsfeld in SHP Datei wird immer  mit dem Zusatz "DATE" importiert (zumindest wenn das Ziel ein VARCHAR2 Feld ist)

Monday 20 January 2014

In Fachschale konvertieren : "FEHLER: Die Eigenschaft 'XYZ' wurde nicht gefunden."

Situation:

(1) SHP Import über "In Fachschale konvertieren" eingerichtet, Mapping-Datei abgespeichert.
(2) neue SHP Datei importieren
(3) Fehlermeldung beim Import:

FEHLER: Die Eigenschaft 'ORT' wurde nicht gefunden.

Ursache: in ursprünglicher SHP Datei, die zum Einrichten verwendet wurde, war der Name einer Tabellenspalte in Grossbuchstaben. Das ist so auch in der Mapping Datei hinterlegt.
In der neu gelieferten SHP Datei ist der Name der Tabellenspalte in Gross- und Kleinbuchstaben.

Lösung: Mapping Datei anpassen.

Map 2013, SP2

Friday 17 January 2014

UPDATE aus Formular aufrufen mit VB.Net - einfaches Beispiel

Wir haben den Fall, dass regelmässig Daten über Excel importiert werden. Die Excelliste enthält die Objektkoordinaten als X,Y Werte. In einem View kann man zwar die X,Y Werte in Spatial-Objekte umwandeln, aber da es keine Basistabelle mit Spatial-Index gibt funktioniert die Abfrage der Featureklasse in Map oder MapGuide nicht (sobald man einen SpatialFilter anwenden will).

Beim Import kann man einen Trigger einsetzen, der die X,Y Werte in Spatial Objekte umwandelt. Das verlangsamt den Excel Import deutlich - zumindest bei mir. Vielleicht kann man da auch noch den Trigger verbessern.

Alternativ kann man nach dem Import die Umwandlung durchführen. Damit der Schritt einfach möglich ist, erfolgt der Aufruf über eine Schaltfläche und etwas Vb.Net Script aus dem Formular heraus. Hier ein Beispiel, wie man dann die Aktualisierung anstossen kann:


Public Overrides Sub Button_Click()

   dim fc_name as String
   dim update_sql as String

   fc_name = Me.Dialog.FeatureClass.Name
  
   update_sql = "UPDATE " +    fc_name  + " fc_alias1 " +   " set geom = (select MDSYS.SDO_GEOMETRY(2001,352257, NULL,SDO_ELEM_INFO_ARRAY(1,1,1), SDO_ORDINATE_ARRAY( fc_alias2.ZNXKORDINA, fc_alias2.ZNYKORDINA)) from " + fc_name + " fc_alias2 where fc_alias1.fid = fc_alias2.fid)"
  
   'Me.Application.MessageBox(update_sql)
  
   Me.Document.Connection.ExecuteNonQuery(update_sql)
  
   Me.Application.MessageBox("Aktualisiert.")

End Sub


Map 2013, SP2

Thursday 16 January 2014

GWS message resource id is not defined.

Diese Meldung erscheint beim Bildaufbau:

Abfrage konnte nicht vorbereitet werden.
Beschreiben der Klasse fehlgeschlagen.
GWS message resource id is not defined.


Soweit ich mich erinnere, habe ich diese Meldungen in einigen Forenanfragen schon mal gesehen. Im vorliegende Fall entsteht die Meldung mangels fehlender Oracle - Berechtigung:

Security Admin - SELECT Berechtigung nicht gesetzt

Der Benutzer öffnet ein Gastdokument bei dem für einige Featureklassen keine SELECT Berechtigung besteht. Beim Bildaufbau mit einem Darstellungsmodell, dass die fraglichen Featureklassen referenziert kommt es dann zur oben gezeigten Meldung.

Die Meldung tritt aber auch in anderen Zusammenhängen auf.

Map 2013, SP2.