我正在尝试在 Google 地球中覆盖整个地球的地图。图像是否需要特定尺寸?
2 回答
您可以通过制作 KML 文件在 Google 地球中生成图像。在 KML 文件中GroundOverlay
,您可以使用一个标签来实现您的目标,如下所示:
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<Folder>
<name>Ground Overlays</name>
<description>Examples of ground overlays</description>
<GroundOverlay>
<name>Large-scale overlay on terrain</name>
<description>Overlay shows Mount Etna erupting
on July 13th, 2001.</description>
<Icon>
<href>http://code.google.com/apis/kml/documentation/etna.jpg</href>
</Icon>
<LatLonBox>
<north>37.91904192681665</north>
<south>37.46543388598137</south>
<east>15.35832653742206</east>
<west>14.60128369746704</west>
<rotation>-0.1556640799496235</rotation>
</LatLonBox>
</GroundOverlay>
</Folder>
</kml>
以下是一些链接,可帮助您了解 kml 文件和图像叠加层:
实际上,将西设置为 -180 并将东设置为 180 并不完全有效,但 -179.99 和 179.99 确实有效。其他问题:
我创建了一个只有一个像素(256,128)“点亮”的 1024x512 透明图像。正如您在http://test.barrycarter.info/gmap17.php中看到的那样,点亮像素(靠近美国威斯康星州沃索)的大小与附近的明尼阿波利斯和圣保罗双城差不多。
如果在某个点之后放大,像素就会神秘地消失。
GroundOverlays 是可点击的(我找不到关闭它的方法),所以如果你点击地图进行缩放,你会得到一个烦人的弹出窗口。使用秤效果很好。
我还在 http://test.barrycarter.info/gmap18.php创建了一个 2048x1024 透明图像,其中一个像素点亮,但即使那个像素也太大了。更高分辨率的加载速度也明显变慢。
另一方面,放置过多的地面叠加层会使地图渲染变得非常缓慢。谷歌可能会自己渲染 KML 地图,但我认为地面叠加层仍然是“img src”。
这里的圣杯是找到分辨率和图像数量的正确组合:例如,64 张图像,每张图像覆盖地球的 1/64。
编辑:由于谷歌地图以 2 级显示整个世界,并缩放至 20 级,因此您最终需要在每个方向上 2^18==262144 像素,前提是您的像素是整个地图在 lavel 20 缩放时的大小. 这是 4096 张图像,每张 4096x4096 或 68.7 千兆像素。当然,如果您不需要 20 级缩放,则可以减少很多。