KML ScreenOverlay doesn`t support a transparency
I just tried to use semi-transparent ScreenOverlay in loaded KML file, and transparency doesn`t work.
<?xml version="1.0" encoding="UTF-8"?>
<kml :gx="http://www.google.com/kml/ext/2.2" xmlns:kml="http://www.opengis.net/kml/2.2" xmlns:atom="http://www.w3.org/2005/Atom">
<ScreenOverlay>
<name>NAME</name>
<open>1</open>
<color>6bffffff</color>
<drawOrder>99</drawOrder>
<Icon>
<href>http://dummyimage.com/200x70/ffffff/00.png?text=TAY15C:+0.2km+262km/h</href>
</Icon>
<overlayXY x="0" y="0.5" xunits="fraction" yunits="fraction"/>
<screenXY x="0" y="101" xunits="pixels" yunits="pixels"/>
<rotationXY x="0.5" y="0.5" xunits="fraction" yunits="fraction"/>
<size x="-1" y="-1" xunits="pixels" yunits="pixels"/>
</ScreenOverlay>
</kml>
This works fine in Google Earth (Overlay is semi-transparent), but it does not in Locus ( Overlay is just white).
you`re maybe first who use this "secret" function
it`s not well tested anyway this problem is fixed now
you`re maybe first who use this "secret" function
it`s not well tested anyway this problem is fixed now
If by "secret" you think about ScreenOverlay, I`m really happy to be it`s first tester:) It is amazing! It is a way of transmitting information back from server to Locus. Very cool indeed. To be honest I`m really amazed with your implementation of KML/Network KML. I`m testing its features and everything works so nice. I think it is one of the most powerful features in Locus. I`m comparing its behaviour with Google Earth behaviour and you did really good job. Congrats. Small problems like the one above and lack of HTTPS support and micro-icons generation still exists, but they are minor in comparison to overall functionality of you KML implementation. Respect.
If by "secret" you think about ScreenOverlay, I`m really happy to be it`s first tester:) It is amazing! It is a way of transmitting information back from server to Locus. Very cool indeed. To be honest I`m really amazed with your implementation of KML/Network KML. I`m testing its features and everything works so nice. I think it is one of the most powerful features in Locus. I`m comparing its behaviour with Google Earth behaviour and you did really good job. Congrats. Small problems like the one above and lack of HTTPS support and micro-icons generation still exists, but they are minor in comparison to overall functionality of you KML implementation. Respect.
thanks. I`m also sometimes also surprised that it works :)
When there will be some free time, I have to do tree structure like in Google Earth to allow some better features, like selecting specific objects, settings transparency to GroundOverlays etc. but ... later (not so important now)
thanks. I`m also sometimes also surprised that it works :)
When there will be some free time, I have to do tree structure like in Google Earth to allow some better features, like selecting specific objects, settings transparency to GroundOverlays etc. but ... later (not so important now)
This will be Pr0! But as you said, not important. It is more important to just mimic a behaviour of Google Earth. I will try to help you with that:)
This will be Pr0! But as you said, not important. It is more important to just mimic a behaviour of Google Earth. I will try to help you with that:)
I just discovered that dynamic icon-colouring (with transparency) work like a charm. Perfect!
I just discovered that dynamic icon-colouring (with transparency) work like a charm. Perfect!
Confirmed. It is solved. Great job!
Confirmed. It is solved. Great job!
I just found another error related to that. maybe error is a too big word.
It is inconsistency with the Google Earth behaviour:
I`m using this image as a ScreenOverlay
Here are the effects:
1. Image is an effect in Google Earth with color = 99000000
2. This is also in Google Earth, but with color = 99FFFFFF
3. Is the effect of the both above in Locus. For both above colour values, the effect in Locus is the same.
Of course it looks fine in both configurations in Locus, but inconsistency between clients (fragmentation) can lead to the situation that the programmer will need to make additional conditional clauses to differentiate between clients ( Locus vs. GE) and implement a relevant behaviour for each.
The above example is trivial,, but you never know how this will behave with different colours and transparencies. And I believe you would like to have keep your "secret feature" good:)
I just found another error related to that. maybe error is a too big word.
It is inconsistency with the Google Earth behaviour:
I`m using this image as a ScreenOverlay
Here are the effects:
1. Image is an effect in Google Earth with color = 99000000
2. This is also in Google Earth, but with color = 99FFFFFF
3. Is the effect of the both above in Locus. For both above colour values, the effect in Locus is the same.
Of course it looks fine in both configurations in Locus, but inconsistency between clients (fragmentation) can lead to the situation that the programmer will need to make additional conditional clauses to differentiate between clients ( Locus vs. GE) and implement a relevant behaviour for each.
The above example is trivial,, but you never know how this will behave with different colours and transparencies. And I believe you would like to have keep your "secret feature" good:)
Same situation occurs in Iconstyle->Color
Same situation occurs in Iconstyle->Color
I have created a Autohotkey script to inject into a KMZ file a transparency that you can select.
It requires that 7za.exe in the same directory as the script, or in your system common path.
Save the text below to a .ahk file and enjoy. Cheers :-)
#SingleInstance,Force
#Persistent
#NoTrayIcon
StrTempPath = c:KMLTransparency
;select KMZ file
FileSelectFile, StrKMZInputFile
;stuff we need to create a tidy output file name
StringGetPos, IntPointPosition, StrKMZInputFile, ., R1
StringMid, StrKMZOutputFile, StrKMZInputFile, 1, %IntPointPosition%
;create a temp dir on C
FileCreateDir, %StrTempPath%
;extract the KMZ to temp dir
CMD = %A_ScriptDir%7za.exe x -y -o%StrTempPath% %StrKMZInputFile%
RunWait, %CMD%,, Hide
;input the transparency
InputBox, HexTransparency, Input transparency in Hex [00-ff],,,,100,,,,,80
;define the output KMZ file name
StrKMZOutputFile = %StrKMZOutputFile%_transp%HexTransparency%.kmz
FileSelectFile, StrKMZOutputFile, , %StrKMZOutputFile%, , *.kmz
;get the KML file name
loop, %StrTempPath%*.kml
StrKMLInputFile = %A_LoopFileFullPath%
;temporary kml file with injected transparency
StrKMLOutputFile = %StrTempPath%doc2.kml
loop, read, %StrKMLInputFile%
{
IfNotInString, A_LoopReadLine, ;remove lines with transparency if already there
{
fileappend, %A_LoopReadLine%`n, %StrKMLOutputFile%
}
ifinstring, A_LoopReadLine,
{
;inject transparency
fileappend, `t`t%HexTransparency%ffffff`n, %StrKMLOutputFile%
}
}
;replace the original KML with the new temp KML file
filemove, %StrTempPath%doc2.kml, %StrKMLInputFile%, 1
;filedelete, %StrKMZOutputFile%
;compress the KML and its bitmaps to a KMZ (that is a zip file)
CMD = %A_ScriptDir%7za.exe a -y -r -tzip %StrKMZOutputFile%
RunWait, %CMD%, %StrTempPath%, Hide
;remove the temp dir on C:
FileRemoveDir, %StrTempPath%, 1
IfExist, %StrKMZOutputFile%
MsgBox, Operation successful
return
I have created a Autohotkey script to inject into a KMZ file a transparency that you can select.
It requires that 7za.exe in the same directory as the script, or in your system common path.
Save the text below to a .ahk file and enjoy. Cheers :-)
#SingleInstance,Force
#Persistent
#NoTrayIcon
StrTempPath = c:KMLTransparency
;select KMZ file
FileSelectFile, StrKMZInputFile
;stuff we need to create a tidy output file name
StringGetPos, IntPointPosition, StrKMZInputFile, ., R1
StringMid, StrKMZOutputFile, StrKMZInputFile, 1, %IntPointPosition%
;create a temp dir on C
FileCreateDir, %StrTempPath%
;extract the KMZ to temp dir
CMD = %A_ScriptDir%7za.exe x -y -o%StrTempPath% %StrKMZInputFile%
RunWait, %CMD%,, Hide
;input the transparency
InputBox, HexTransparency, Input transparency in Hex [00-ff],,,,100,,,,,80
;define the output KMZ file name
StrKMZOutputFile = %StrKMZOutputFile%_transp%HexTransparency%.kmz
FileSelectFile, StrKMZOutputFile, , %StrKMZOutputFile%, , *.kmz
;get the KML file name
loop, %StrTempPath%*.kml
StrKMLInputFile = %A_LoopFileFullPath%
;temporary kml file with injected transparency
StrKMLOutputFile = %StrTempPath%doc2.kml
loop, read, %StrKMLInputFile%
{
IfNotInString, A_LoopReadLine, ;remove lines with transparency if already there
{
fileappend, %A_LoopReadLine%`n, %StrKMLOutputFile%
}
ifinstring, A_LoopReadLine,
{
;inject transparency
fileappend, `t`t%HexTransparency%ffffff`n, %StrKMLOutputFile%
}
}
;replace the original KML with the new temp KML file
filemove, %StrTempPath%doc2.kml, %StrKMLInputFile%, 1
;filedelete, %StrKMZOutputFile%
;compress the KML and its bitmaps to a KMZ (that is a zip file)
CMD = %A_ScriptDir%7za.exe a -y -r -tzip %StrKMZOutputFile%
RunWait, %CMD%, %StrTempPath%, Hide
;remove the temp dir on C:
FileRemoveDir, %StrTempPath%, 1
IfExist, %StrKMZOutputFile%
MsgBox, Operation successful
return
Replies have been locked on this page!