We're using UAVs to map islands that frequently change shape faster than Google Earth updates the satellite imagery, so when we plot our missions, it often looks like the flights were over water.
Is the any way to load and display a georeferenced image made using photogrammetry like a KMZ file or image with a TFW/JGW World File?
Pieter
(Pieter)
May 30, 2022, 12:26pm
2
Hi,
This is possible with TTMSFNCGoogleMaps with KML/KMZ Layers:
TMSFNCGoogleMaps1.BeginUpdate;
TMSFNCGoogleMaps1.AddKMLLayer('URL TO KMZ/KML');
TMSFNCGoogleMaps1.EndUpdate;
Not sure about the TFW/JFW world file we'll have to investigate the possibilities.
Pieter,
Thanks for the response, but I can't get it to work using a local file, even using a KML polygon.
This code brings up the map at the correct location and zoom, but doesn't display the KML
Map.SetCenterCoordinate(28.033049,-97.039843);
Map.SetZoomLevel(18);
Map.BeginUpdate;
Map.AddKMLLayer('C:\Users\hmarn\Documents\HMA\KML Libr\LBNI\20220511 - LBNI.kml');
Map.EndUpdate;
Map.Initialize;
This same KML loads and displays fine in Google Earth
Any suggestions appreciated
Pieter
(Pieter)
May 31, 2022, 7:35am
4
This is not possible. The file needs to be accessible online because Google needs to have access to the file. Local KML / KMZ files are not possible.
Having to host KMZ files somewhere adds several new layers of complexity.
Is there no way to utilize Google Earth's ability to load and display local files in TMS FNC Maps?
Something like load the file in Google Earth and then reference that display or cache?
Any way to load the files in the local instance of Google Earth and then save then in some other form for use in Maps?
Below is an example of a Orthomosaic loaded in Google Earth from a local, hard drive, based KMZ file
Thanks
Pieter
(Pieter)
May 31, 2022, 9:59am
6
Supposedly, Google Earth uploads the KML file to a server and then parses it or uses the link pointing to that file. In Google Maps, this is not possible.
There is currently no support to parse offline/local KML files.
Thanks again for the response
I just came across the "Overlay" capability of TMS FNC Maps
It seems I might be able to end up at the same place using a carefully positioned and sized orthomosaic JPG.
The Guide PDF shows another web-based file for that.
Can overlays be loaded using local files?
Now I understand your point - I'm confusing Google Earth with Google Maps
Thanks
Pieter
(Pieter)
May 31, 2022, 12:33pm
9
You can base64 the image and then add an overlayview within specific bounds. Like demonstrated in the code below.
procedure TForm1.Button1Click(Sender: TObject);
var
ov: TTMSFNCGoogleMapsOverlayView;
b64: string;
begin
TMSFNCGoogleMaps1.BeginUpdate;
ov := TMSFNCGoogleMaps1.AddOverlayView;
b64 := 'data:image/jpeg;base64,' + TTMSFNCUtils.FileToBase64('C:\Users\TMS\Downloads\newark_nj_1922-661x516.jpeg');
ov.Text := '<img src="' + b64 + '" style="position:absolute;width:100%;height:100%;">';
ov.Bounds.NorthEast.Latitude := 40.773941;
ov.Bounds.NorthEast.Longitude := -74.12544;
ov.Bounds.SouthWest.Latitude := 40.712216;
ov.Bounds.SouthWest.Longitude := -74.22655;
ov.Mode := omBounds;
ov.Padding := 0;
ov.BackgroundColor := gcNull;
ov.BorderColor := gcNull;
TMSFNCGoogleMaps1.EndUpdate;
end;
This works very well and loads much faster than a medium resolution KMZ.
Will it work with a TIFF file set for invisible background?
Pieter
(Pieter)
June 1, 2022, 5:31pm
11
Hi,
I suppose you can load any kind of image, so PNG, which supports transparency by default, should be possible. Then the b64 conversion looks like
b64 := 'data:image/png;base64,' + TTMSFNCUtils.FileToBase64('MyImage.png');
Pieter,
I can't get it to work with anything except JPG files, which don't support transparency
In your example, you use the 4 letter for code JPEG, so for TIFF Files I've tried TIF as well as TIFF.
Neither of those or using PNG images seem to load, although you can see the outline of a bounding box on the map
I emailed you an example of a TIFF image with a transparent backgound.
Could you please see if you can get that to load, and send me the code you use?
Thanks
Peter,
Your code works well for JPG images of various sizes, but I have yet to be able to get any TIFF or PNG images to load.
Could you please provide example code and a sample image for displaying either a TIFF or PNG?
Thanks in advance
Pieter
(Pieter)
June 7, 2022, 9:55am
14
This demo shows a PNG with transparency.
Demo.zip (96.9 KB)
The image is included.
Pieter,
Works perfectly.
Turns out the way I was converting from TIFF to PNG was wrong. Using a photo editing program (in my case Affinity) to load the TIFF then export to PNG did the trick.
Using this method and the image parameters in a TFW "World File" lets you load and display even quite detailed orthomosaic images into Google Maps.
The registration of clicking on a spot on the orthomosaic, then looking at the returned lat/lon coordinates appears excellent.
Powerful tool, thanks again for your help
Pieter
(Pieter)
June 7, 2022, 12:06pm
16
Nice! Thanks for the update.