Kazu46Machi / earth-api-samples

Automatically exported from code.google.com/p/earth-api-samples
0 stars 0 forks source link

overlayXY and screenXY are swapped #193

Closed GoogleCodeExporter closed 8 years ago

GoogleCodeExporter commented 8 years ago
1. Open KML Interactive Sampler and paste/run the following KML:

<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
 <ScreenOverlay>
   <Icon>

<href>http://kml-samples.googlecode.com/svn/trunk/resources/top_left.jpg</href>
   </Icon>
   <overlayXY x="0" y="0" xunits="pixels" yunits="insetPixels"/>
   <screenXY x="15" y="15" xunits="pixels" yunits="insetPixels"/>
   <size x="-1" y="-1" xunits="pixels" yunits="pixels"/>
 </ScreenOverlay>
</kml>

2. Open Earth API Interactive Sampler and paste/run the following JavaScript:

if (window.screenOverlay) {
 ge.getFeatures().removeChild(window.screenOverlay);
}

var icon = ge.createIcon('');
icon.setHref('http://kml-samples.googlecode.com/svn/trunk/resources/top_left.jpg
');

var screenOverlay = ge.createScreenOverlay('');
screenOverlay.setIcon(icon);

screenOverlay.getScreenXY().setXUnits(ge.UNITS_PIXELS);
screenOverlay.getScreenXY().setYUnits(ge.UNITS_INSET_PIXELS);
screenOverlay.getScreenXY().setX(15);
screenOverlay.getScreenXY().setY(15);

screenOverlay.getOverlayXY().setXUnits(ge.UNITS_PIXELS);
screenOverlay.getOverlayXY().setYUnits(ge.UNITS_INSET_PIXELS);
screenOverlay.getOverlayXY().setX(0);
screenOverlay.getOverlayXY().setY(0);

screenOverlay.getSize().setXUnits(ge.UNITS_PIXELS);
screenOverlay.getSize().setYUnits(ge.UNITS_PIXELS);
screenOverlay.getSize().setX(-1);
screenOverlay.getSize().setY(-1);

ge.getFeatures().appendChild(screenOverlay);

window.screenOverlay = screenOverlay;

3. Observe that the results are different. Now paste this JS into the Earth
API sampler:

if (window.screenOverlay) {
 ge.getFeatures().removeChild(window.screenOverlay);
}

var icon = ge.createIcon('');
icon.setHref('http://kml-samples.googlecode.com/svn/trunk/resources/top_left.jpg
');

var screenOverlay = ge.createScreenOverlay('');
screenOverlay.setIcon(icon);

screenOverlay.getScreenXY().setXUnits(ge.UNITS_PIXELS);
screenOverlay.getScreenXY().setYUnits(ge.UNITS_INSET_PIXELS);
screenOverlay.getScreenXY().setX(0);
screenOverlay.getScreenXY().setY(0);

screenOverlay.getOverlayXY().setXUnits(ge.UNITS_PIXELS);
screenOverlay.getOverlayXY().setYUnits(ge.UNITS_INSET_PIXELS);
screenOverlay.getOverlayXY().setX(15);
screenOverlay.getOverlayXY().setY(15);

screenOverlay.getSize().setXUnits(ge.UNITS_PIXELS);
screenOverlay.getSize().setYUnits(ge.UNITS_PIXELS);
screenOverlay.getSize().setX(-1);
screenOverlay.getSize().setY(-1);

ge.getFeatures().appendChild(screenOverlay);

window.screenOverlay = screenOverlay;

4. Observe that the KML and JS result in the same thing, but
OverlayXY/ScreenXY are swapped.

Original issue reported on code.google.com by api.roman.public@gmail.com on 30 Mar 2009 at 5:51

GoogleCodeExporter commented 8 years ago

Original comment by api.roman.public@gmail.com on 22 May 2009 at 1:41

GoogleCodeExporter commented 8 years ago
Due to the fact that many existing users are already using this swapped API, we 
won't
be able to fix it. Instead, we'll update the docs to acknowledge this error.

Original comment by api.roman.public@gmail.com on 29 May 2009 at 8:33

GoogleCodeExporter commented 8 years ago
Updated docs to clearly state that screenXY/overlayXY are swapped and will 
remain
swapped. Should be up shortly.

Original comment by api.roman.public@gmail.com on 3 Jun 2009 at 9:48

GoogleCodeExporter commented 8 years ago
thanks very much for this article and examples. I has been searching how to 
insert the logo into Google Earth window several days. Finaly, I found this 
solution - it was very helpful.
But I am not able to reach the effect "open some link after clicking on my 
logo". 

Original comment by jaroslav.piroh@gmail.com on 22 Jan 2013 at 3:51