georeferenziertes Luftbild in Sketchup einzufügen
#1
Ich habe mir über das Geoportal in Berlin
http://www.stadtentwicklung.berlin.de/ge...is-broker/
eine georeferenzierte Tiff erzeugt (Stadtplan). 


Code:
$ exiftool -gt* -geo* output.tif 
GT Model Type                   : Projected
GT Raster Type                  : Pixel Is Area
GT Citation                     : DHDN / Soldner Berlin
Geo Tiff Version                : 1.1.0
Geog Citation                   : DHDN
Geog Angular Units              : Angular Degree
Geog To WGS84                   : 598.1 73.7 418.2 0.202 0.045 -2.455 6.7


Ich kann diese tif mit GDAL http://www.gdal.org in eine *.kmz umwandeln


Code:
$ gdal_translate -of KMLSUPEROVERLAY output.tif output.kmz -co FORMAT=PNG

Google Earth zeigt diese kmz perfekt an (Stadtplanausschnitt auf Weltkarte)

Frage:
Ich möchte diesen georeferenzierten Stadtplanausschnitt in Sketchup einladen.
Im Ergebnis soll es dem Layer "Location Snapshot" über "Datei/Geostandort/Mehr Bilder einfügen" entsprechen.

Die kmz-Datei enthält keine *.dae Collada Elemente und ist somit in Sketchup leer.

Kennt jemand eine Möglichkeit ein georeferenziertes Luftbild in Sketchup einzufügen?

...ggf. Ruby Script etc.


Angehängte Dateien Thumbnail(s)
   
Zitieren
#2
Stellt der Import der Pixelgrafik und die manuelle Ausrichtung an einem normal importierten Geostandort eine Alternative dar?
Zitieren
#3
Genau so mache ich es bisher auch als workaround, d.h. zuerst unter  "Datei/Geostandort/Mehr Bilder einfügen" eine OSM Karte einladen und dann den Stadtplan im "Röntgenmodus" zurecht zu zupfen.

Da alle Geo-Referenzdaten vorhanden sind, muss es doch irgendein Austauschformat geben, dass eine Ortho-Bild einlesen kann (so wie der Layer "Location Snapshot" die OSM Karte darstellt)
Zitieren
#4
mit dem inzwischen kostenfreien Google Earth Pro und dem SketchUp-Plugin 'GEMaker' zwecks Erzeugung einer referenzierten KML-Datei welche in GE zur Lokalisierung geöffnet werden kann:

In SketchUp unter "Fenster > Voreinstellungen > OpenGL" die Option "Maximale Texturgrösse..." aktivieren.

Norbert
Zitieren
#5
Danke für den Tip.
Ein interessanter Ansatz (4k UHD in Earth Pro) und ich habe das mal durchgespielt:

Sketchup Make 2017
-> ... Mehr Bilder hinzufügen -> Region auswählen -> OSM Karte (kein google mehr Undecided ) eingefügt
-> interessanterweise ist die OSM Karte etwas gedreht
-> mit Plugin DanielTal_GEMaker *.kml mit 4 Eckpunkten erstellt

Earth Pro
-> kml geladen
-> Kamera senkrecht und Karte nach Norden ausgerichtet
-> Gelände (Höhenverstärkung) deaktiviert
-> 4K Bild speichern

Sketchup Make 2017
-> Bild aus Earth eingefügt
-> Maßstab und Drehung gegenüber der OSM Karte korrigiert


Ergebnis:
Von dem manuellen gefrickel mal abgesehn  passt es leider nicht.
Da scheinen die Koordinatensysteme und Projektionen nicht zu passen.

Deshalb noch einmal meine Frage:
Hat jemand eine Idee, in welchem Austauschformat man ein georeferenziertes Bild in Sketchup einladen kann?


Angehängte Dateien Thumbnail(s)
   
Zitieren
#6
ich habe es jetzt mittels einer selbst gebastelten kml (Geo-Koordinaten) und einer Collada Datei (Rechteck mit Luftbild als Textur) gelöst.
Ich brauche nur noch in meinem Script die Koordinaten in der kml editieren, wenn die Luftbilder immer die gleiche Seitenlänge haben.

einen Ordner anlegen mit drei Dateien (kml, dae und die Textur)
Code:
$ ls
alkis.dae doc.kml texture.png
 

die kml Datei (hier nur unter <Location> den Ort editieren):
Code:
<kml xmlns="http://www.opengis.net/kml/2.2" xmlns:gx="http://www.google.com/kml/ext/2.2">
<Folder>
<name>ALKIS</name>
<visibility>1</visibility>
<Placemark>
<name>Model</name>
<description/>
<Style id="default"/>
<Model>

<altitudeMode>relativeToGround</altitudeMode>

<Location>
<latitude>52.584264</latitude>
<longitude>13.363248</longitude>
<altitude>0</altitude>
</Location>

<Orientation>
<heading>-0</heading>
<tilt>0</tilt>
<roll>0</roll>
</Orientation>

<Scale>
<x>1</x>
<y>1</y>
<z>1</z>
</Scale>

<Link>
<href>alkis.dae</href>
</Link>

</Model>
</Placemark>
</Folder>
</kml>

die Collada Datei mit einem Rechteck: 
  100+100=200 Meter Kantenlänge, 
  Mittelpunkt = Schwerpunkt und dem 
  Maßstabsfaktor 5, dh Seitenlänge = 5x200=1000m

Hier nur in "<unit meter="5" name="meter" />" den Faktor anpassen
oder bei Bedarf in "<float_array id="ID12" count="12">100 -100 0 -100 100 0 -100 -100 0 100 100 0</float_array>"  die Kantenlänge editieren
Code:
<?xml version="1.0" encoding="UTF-8" standalone="no" ?>
<COLLADA xmlns="http://www.collada.org/2005/11/COLLADASchema" version="1.4.1">
   <asset>
       <unit meter="5" name="meter" />
       <up_axis>Z_UP</up_axis>
   </asset>
   <library_visual_scenes>
       <visual_scene id="ID1">
           <node name="SketchUp">
               <instance_geometry url="#ID2">
                   <bind_material>
                       <technique_common>
                           <instance_material symbol="Material2" target="#ID3">
                               <bind_vertex_input semantic="UVSET0" input_semantic="TEXCOORD" input_set="0" />
                           </instance_material>
                       </technique_common>
                   </bind_material>
               </instance_geometry>
           </node>
       </visual_scene>
   </library_visual_scenes>
   <library_geometries>
       <geometry id="ID2">
           <mesh>
               <source id="ID8">
                   <float_array id="ID12" count="12">100 -100 0 -100 100 0 -100 -100 0 100 100 0</float_array>
                   <technique_common>
                       <accessor count="4" source="#ID12" stride="3">
                           <param name="X" type="float" />
                           <param name="Y" type="float" />
                           <param name="Z" type="float" />
                       </accessor>
                   </technique_common>
               </source>
               <source id="ID9">
                   <float_array id="ID13" count="12">-0 -0 1 -0 -0 1 -0 -0 1 -0 -0 1</float_array>
                   <technique_common>
                       <accessor count="4" source="#ID13" stride="3">
                           <param name="X" type="float" />
                           <param name="Y" type="float" />
                           <param name="Z" type="float" />
                       </accessor>
                   </technique_common>
               </source>
               <source id="ID11">
                   <float_array id="ID14" count="8">1 -1 0 0 0 -1 1 0</float_array>
                   <technique_common>
                       <accessor count="4" source="#ID14" stride="2">
                           <param name="S" type="float" />
                           <param name="T" type="float" />
                       </accessor>
                   </technique_common>
               </source>
               <vertices id="ID10">
                   <input semantic="POSITION" source="#ID8" />
                   <input semantic="NORMAL" source="#ID9" />
               </vertices>
               <triangles count="2" material="Material2">
                   <input offset="0" semantic="VERTEX" source="#ID10" />
                   <input offset="1" semantic="TEXCOORD" source="#ID11" />
                   <p>0 0 1 1 2 2 1 1 0 0 3 3</p>
               </triangles>
           </mesh>
       </geometry>
   </library_geometries>
   <library_materials>
       <material id="ID3" name="material">
           <instance_effect url="#ID4" />
       </material>
   </library_materials>
   <library_effects>
       <effect id="ID4">
           <profile_COMMON>
               <newparam sid="ID6">
                   <surface type="2D">
                       <init_from>ID5</init_from>
                   </surface>
               </newparam>
               <newparam sid="ID7">
                   <sampler2D>
                       <source>ID6</source>
                   </sampler2D>
               </newparam>
               <technique sid="COMMON">
                   <lambert>
                       <diffuse>
                           <texture texture="ID7" texcoord="UVSET0" />
                       </diffuse>
                   </lambert>
               </technique>
               <extra>
                   <technique profile="GOOGLEEARTH">
                       <double_sided>1</double_sided>
                   </technique>
               </extra>
           </profile_COMMON>
       </effect>
   </library_effects>
   <library_images>
       <image id="ID5">
           <init_from>texture.png</init_from>
       </image>
   </library_images>
   <scene>
       <instance_visual_scene url="#ID1" />
   </scene>
</COLLADA>

Jetzt die drei Dateien in eine zip packen.
Wichtig: innerhalb der Zip dürfen die Dateien nicht in einem Unterordner stehen.
Am besten geht das mit 7zip: 
drei Dateien markieren, rechte Maus, 7zip / hinzufügen zu "meine.zip"
jetzt umbenennen in kmz und in Sketchup oder Google Earth einlesen.

In Sketchup wird beim Import der kmz auch der Geo-Standort korrekt eingetragen.


Angehängte Dateien Thumbnail(s)
   
Zitieren
#7
Danke für das Teilen der Lösung!
Zitieren


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste