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)
die kml Datei (hier nur unter <Location> den Ort editieren):
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
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.
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.