Posts mit dem Label Map werden angezeigt. Alle Posts anzeigen
Posts mit dem Label Map werden angezeigt. Alle Posts anzeigen

Mittwoch, 5. Juni 2013

Bentley Map und der ORACLE Spatial Index

Zur Unterstützung von räumlichen Anfragen aus Bentley Map heraus an die ORACLE Tabellen muss die angefragte Featuretabelle einen räumlichen Index aufweisen.

Der räumliche Index ist in der Regel vom Typ = "spatial.index" und wird über die Geometriespalte erzeugt.

Ist dieser nicht vorhanden, können die räumlichen Abfragekriterien (Ansicht, Zaun, etc.) in Bentley Map nicht genutzt werden.


Der Datenimport oder die Datenabfrage wird dann mit einem Fehler beendet.


In dem nachstehenden SQL Script wird ein räumlicher Index mit dem Namen "gully_geometrie_spix" auf der Spalte "geometrie" der Tabelle " gully" erzeugt.

create index gully_geometrie_spix
   on gully(geometrie)
   indextype is mdsys.spatial_index
   parameters('sdo_indx_dims=2, layer_gtype=point');


Weiterhin sind die Index-Parameter zu berücksichtigen, handelt es sich beispielsweise um 2D Datenmengen, ist der Parameter "sdo_indx_dims=2" zu verwenden.

Als Geometrietypen können
  • point
  • line
  • polygon
  • multipoint
  • mulitline
  • multipolygon
verwendet werden.

Burkhard Steuck
http://www.geomapping.de

Freitag, 31. Mai 2013

Daten aus ORACLE Spatial importieren

Geometriedaten, die in einer ORACLE Spatial Tabelle gespeichert sind, können in Bentley Map importiert werden, dazu sind die nachstehenden Voraussetzungen zu erfüllen.

In der Datenbank muss eine Tabelle vorhanden sein, die
  1. einen Primärschlüssel ("id") und
  2. eine Geometriespalte ("mdsys.sdo_geometry")
enthält.

Nachstehend wird eine Tabelle "GULLY" erzeugt, die die Forderungen erfüllt.

create table gully
  (
    id number not null enable,
    geometrie mdsys.sdo_geometry,
    constraint gully_pk primary key (id)
 );


Weiterhin muss die Tabelle mit dem nachstehenden SQL Script in dem Metadaten-Katalog registriert werden.

insert into user_sdo_geom_metadata (table_name, column_name, diminfo, srid)
values (

     'gully', 
     'geometrie',
     mdsys.sdo_dim_array
     (mdsys.sdo_dim_element('x', -10000, 10000, 0.00050),
     mdsys.sdo_dim_element('y',  -10000, 10000, 0.00050)),
     null

);

Über das nachstehende SQL Script wird ein Punkt mit der Koordinate (X=12, Y=14 und Z=0)eingefügt.

insert into gully (id, geometrie) values (
 1,
 sdo_geometry(
      2001,
      null,
      sdo_point_type(12, 14, null),
      null,
      null)
);


Mit dem SQL Kommando "Commit" werden die Änderungen festgeschrieben.

commit;

In Bentley Map muss auf der Karteikarte "Importe" des Hauptdialogs "Map Interoperabilität" eine Verbindug mit der ORACLE Datenbank hergestellt werden, dazu muss zunächst ein "neuer Datenimport" mit der rechten Maustaste erstellt werden.
Anschließend muss mit der rechten Maustaste eine ORACLE Verbindugn hinzugefügt werden.




Aus der Liste der verfügbaren Tabellen wird die betreffende Tabelle ausgewählt.


Im unteren Bereich des Dialogs können teilweise die Verbindungs- und die Darstellungsparameter verändert werden.

Bezüglich der räumlichen Kriterien stellen Sie den Dialog wie folgt ein:



An dieser Stelle kann die Symbolik der zu importierenden Geometrien festgelegt werden.




Über die rechte Maustaste können die Daten in die Zeichnung importiert werden.

Die importiereten Daten können jetzt in Bentley Map genutzt werden.

Burkhard Steuck
www.geomapping.de

Freitag, 4. November 2011

Bentley Map - Flächen mit Löchern

Wer kennt das nicht?
Eine Fläche soll eine innere Aussparung besitzen und MicroStation generiert daraus eine orphane Zelle oder es liegen räumlich getrennte (disjunkte) Flächen vor, die aber ein Objekt darstellen.
  • Fläche mit Loch oder Aussparungsfläche (1)
  • disjunkten Flächen (1-3)
Die Berücksichtigung von Löchern in Flächen funktionierte
nur über das Gruppieren von Flächen mit dem gleichzeitigen Bestimmen der
Umrings- und der Lochfläche. Hierzu wurde der Datentyp Zelle ohne Name
verwendet, für den es im Bereich der Speicherung von Geometriedaten in
Datenbanken keinen Pendant gibt.
Weiterhin konnten Flächen, die aus mehreren Flächen
bestehen nicht zusammengefasst und verwaltet werden.

Bentley Map V8i bietet die Lösung:
Über den Bentley Geospatial Administrator wird eine Feature Collection (Sammlung von gleichartigen geometrischen Objekten) angelegt, wobei der Gesamtkontext der Flächen über das übergeordnete Sammelobjekt (Feature Collection) gewährleistet ist.
Das Datenbanktechnische Pendant zur Feature Collection ist der OGC Datentyp "Multiple Polygones" und somit ist der häufigen Forderung nach OGC konformer Datenspeicherung genüge getan.
In unserem Beispiel bestehen die Einzel- und die Gesamtfläche aus:

Fläche (1) = + 8.881 m²
Fläche (2) = + 4.965 m²
Fläche (3) = + 3.894 m²
Loch (1) = - 732 m²
------------------------------------
Gesamtfläche = 17.008 m²

Anlegen einer Feature Collection vom Typ Fläche:
  1. Starten Sie den Bentley Geospatial Administrator
  2. Öffnen Sie die Standard Schemadatei: Geo_example.xml im Verzeichnis C:\ProgramData\Bentley\MicroStation V8i (SELECTseries)\WorkSpace\Projects\Examples\Geospatial\geo_example\xml\schema
  3. Wählen Sie den Knoten "FEATURES" unter "ALL USERS" mit der rechten Maustaste aus
  4. Erzeugen Sie über "ADD" ein primäres Feature "PRIMARY FEATURE"
  5. Nehmen Sie die Einstellungen im Dialog vor
  6. Name=Kiesteiche, Display Name= Kiesteiche, Geometry Type=Polygon, Create Feature Collection = Ja, Category = Nichts
  7. Schließen sie die Eingabe mit OK ab
  8. Jetzt haben Sie eine Feature Collection vom Typ Fläche erzeugt, welches Sie in der Liste unter Features sehen sollten
  9. Ohne jetzt auf weitere Einzelheiten (Attributwerte, Einstellungen zur Symbolik, Anmerkungstexte etc.) einzugehen, müssen wir der Fetuare Collection entsprechende Platzierungsmethoden zuordnen
  10. Klicken Sie mit der rechten Maustaste auf das Feature (Kiesteiche_Collection) und wählen Sie über "INSERT" die "POYGON PLACEMENT COLLECTION METADATA..." aus
  11. Nehmen Sie die Einstellungen im Dialog vor
  12. Workspace=all, Method Type=Place Polygon, Show Properties at Placemaent der Rest sollte deaktiviert sein
  13. Schließen Sie Ihre Eingabe mit "OK" ab
  14. Das Feature Kiesteiche hat eine Standard Platzierungsmethode erhalten
  15. Damit das Feature Kiesteiche in Bentley Map zur Verfügung steht, muss es in der Liste im "COMMAND MANGER" eingetragen werden
  16. Wählen Sie dazu den Knoten "COMMAND MANAGER" unter "USER INTERFACE" und "ALL USERS" mit der rechten Maustaste aus
  17. über den Befehl "UPDATE COMMAND MANAGER LIST" wird der Command Manager in Bentley Map aktualisiert
  18. Bestätigen Sie den nachfolgenden Dialog mit "OK"
  19. Sämtliche Einstellungen im Geospatial Administrator müssen gespeichert und in die XML Dateien übertragen bzw. exportiert werden
  20. Drücken Sie dazu im Menü die Schaltflächen
    "SAVE" und "EXPORT"
  21. Starten Sieanschließend Bentley Map mit dem Workspace "Geo_example_designer" und wählen Sie eine neue oder bestehende DGN Zeichnung aus
  22. Im "COMMAND MANAGER" sollte unter der Kategorie "UNKNOWN" das Feature Kiesteiche zu sehen sein
Wenn Sie jetzt Flächen vom Typ Kiesteiche_Collection über den Commandmanager durch einen Doppleklick aktivieren, werden Sie gefragt, ob Sie eine neue Fläche erstellen oder eine bestehende Fläche oder Sammlung von Flächen erweitern wollen.
Um eine Ausparungsfläche oder Loch in eine existierende Fläche zu digitalisieren
  • identifizieren Sie eine bereits existierende Fläche
  • digitalisieren Sie eine oder mehrere Flächen innerhalb der existierenden Flächen
  • die innenliegenden Flächen werden automatisch als Löcher erkannt, die Flächenfüllung wird unterbrochen
  • die Analyse der Flächen zeigt, dass die Löcher automatisch Berücksichtigung finden
Um eine disjunkte Fläche zu erstellen
  • identifizieren Sie eine bereits existierende Fläche
  • digitalisieren Sie eine oder mehrere Flächen außerhalb der existierenden Flächen
  • die räumlich getrennten Flächen werden automatisch zur Gesamtfläche hinzugerechnet