mesh2kml
Versione 1.0.2 (7,99 KB) da
Serge
Export textured geometry (surface or patch) to GoogleEarth as a KML and a Collada DAE files
Export textured geometry (surface or patch) to GoogleEarth as a KML and a
Collada DAE files
mesh2kml(...) -surface or patch inputs, see bellow
mesh2kml(...out) -one common output filename or paths to {dae img kml}
mesh2kml(...out,prp) -Collada & GoogleEarth property value pairs
color: color, default=[0.7 0.7 0.7] OR..
image, RGB(A)|BW(A)|filename (optional)
alpha: opacity, default=[1] (opaque) OR..
image, BW|filename (optional)
latlon: flag to interpret xyz as Lat,Lon,Alt, default=0
twosided: flag to render faces from both sides, default=1
position: [latitude_deg longitude_deg altitude_m]
altmode: default='absolute', 'clampToGround', 'relativeToGround',
'relativeToSeaFloor', 'clampToSeaFloor'
orientation:[heading_NtoE pitch_NtoUp roll_UPtoE] (deg), default=[0,0,0]
scale: [x y z] scale factors, default=[1,1,1]
camera: [heading_deg tilt_deg range_m]
M = mesh2kml(...) -return final properties as struct
Surface:
mesh2kml(x,y,z...) -NxM vertex coordinates
mesh2kml(x,y,z,c...) -NxMx3 face colors, last row & col ignored (TO DO)
mesh2kml(x,y,z,u,v...) -NxM texture coordinates
mesh2kml(..,nx,ny,nz...) -NxM vertex normals
mesh2kml(S) -above surface properties as struct
Patch:
mesh2kml(P...) -patch properties as struct, with fields:
vertices: Nx3 vertex positions
faces: Mx3 triangle faces (right hand rule)
normals: Nx3 vertex normals (optional)
uv: Nx2 texture coordinates for each vertex
Remarks:
-Collada (dae) files can be dragged and dropped into GoogleEarth.
-A kml file is written only if 'position' is provided.
-For lat,lon 6dp gives ~15 cm precision at equator, 8dp is ~1.5 mm.
-Textures wrap circularly if UV is outside the [0-1] range.
-Texture pixels blend and image edge pixels blend with opposite edge.
-If normals are not provided they are auto generated. Vertices shared by
triangles get a smoothed normal using triangle area weighting.
-To avoid normal smoothing when specifying a patch each vertex should be
referenced by only one face.
-Faces are auto generated using vertices(:,1:2), if missing.
Notes:
-Altitude exaggeration in GoogleEarth will affect the model's origin.
-The only way to visualise textured polygons in MatLab is to draw each
polygon as a quad with its own image chip, which is very limiting.
-To generate dae template draw a polygon in Google SketchUp 2017 > export
as kmz > open kmz with winzip > extract dae file > modify as needed.
-SketchUp duplicates all polygons to face both ways, but mesh2kml uses an
undocumented Collada tag: <effect><extra><technique><double_sided>.
-SketchUp can export a quad mesh dae but they don't work in GoogleEarth.
-GoogleEarth ignores camera references in dae file.
To do:
-Allow one colour per face, see surf2patch.
-Allow multi patch input using array of structures as input.
-Allow quad patch input by converting it to a tri patch.
-Allow input to be a handle to a displayed surface or patch object.
-Allow export as kmz file.
-Use ridge detection when triangulating surfaces.
-Test generated normals.
-Add more patch examples.
-Remove thin triangles from patch inputs.
Cita come
Serge (2024). mesh2kml (https://www.mathworks.com/matlabcentral/fileexchange/62156-mesh2kml), MATLAB Central File Exchange. Recuperato .
Compatibilità della release di MATLAB
Creato con
R2012a
Compatibile con qualsiasi release
Compatibilità della piattaforma
Windows macOS LinuxCategorie
- MATLAB > Graphics > 2-D and 3-D Plots > Surfaces, Volumes, and Polygons >
- MATLAB > External Language Interfaces > Other languages > Google > Google Earth >
- MATLAB > Mathematics > Computational Geometry > Elementary Polygons >
- MATLAB > Graphics > Formatting and Annotation > 3-D Scene Control > Lighting, Transparency, and Shading >
Scopri di più su Surfaces, Volumes, and Polygons in Help Center e MATLAB Answers
Tag
Community Treasure Hunt
Find the treasures in MATLAB Central and discover how the community can help you!
Start Hunting!Scopri Live Editor
Crea script con codice, output e testo formattato in un unico documento eseguibile.