我有一个 SQLite 数据库,其中包含坐标和平铺的地图数据/图像,可用于计算Google Earth 插件的 KMZ/KML 中GroundOverlay的相应LatLonBox元素。我可以进行必要的查询来确定插件上的哪些图像(也就是我可以正确创建GroundOverlay边界)。
问题:这只是一个示例用例,我实际上并不打算使用 OSM 地图图块 - 假设我下载了这张图片:
OSM 地图图块 http://otile1.mqcdn.com/tiles/1.0.0/osm /7/41/79.png
来自 -> http://otile1.mqcdn.com/tiles/1.0.0/osm/7/41/79.png
并将其放入 sqlite 数据库。
假设我然后计算了该图像的LatLonBox并通过 javascript 创建了一个 kml 文件:
var groundOverlay = ge.createGroundOverlay('');
groundOverlay.setIcon(ge.createIcon(''))
groundOverlay.getIcon().setHref("http://otile1.mqcdn.com/tiles/1.0.0/osm/7/41/79.png");
groundOverlay.setLatLonBox(ge.createLatLonBox(''));
var center = ge.getView().copyAsLookAt(ge.ALTITUDE_RELATIVE_TO_GROUND);
var north = -38.822591;
var south = -40.979898;
var east = -61.875;
var west = -64.6875;
var rotation = 0;
var latLonBox = groundOverlay.getLatLonBox();
latLonBox.setBox(north, south, east, west, rotation);
ge.getFeatures().appendChild(groundOverlay);
示例 KML 文件:
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<kml xmlns="http://www.opengis.net/kml/2.2">
<GroundOverlay>
<name> 00</name>
<Icon>
<href>http://otile1.mqcdn.com/tiles/1.0.0/osm/7/41/79.png</href>
<drawOrder>0</drawOrder>
</Icon>
<LatLonBox>
<north>-38.822591</north>
<south>-40.979898</south>
<east>-61.875</east>
<west>-64.6875</west>
<rotation>0.0</rotation>
</LatLonBox>
</GroundOverlay>
</kml>
除了指向http://otile1.mqcdn.com/tiles/1.0.0/osm/7/41/79.png的href元素之外,我希望它指向我数据库中的图像。它不必直接指向数据库中的图像,我可以使用 javascript 来获取感兴趣的特定图像,但是一旦我有了图像数据,我就会迷失方向。
因此,我可以通过 javascript/html5 在我的本地文件系统上访问带有感兴趣图像的 sqlite 数据库,并解析一个几乎完整的 KML 文件(缺少 href 元素,因为我不知道如何获取正确的 href 元素)。
一旦我到了这一点,我不知道该去哪里。我将如何在谷歌地球插件上显示该图像,或者甚至可以不将其托管在服务器上?是否可以使用 javascript 来提供这些图像(也可以像浏览器中的服务器一样将数据库中的图像链接到可以在 kml 文档中引用的特定 href)?
这里答案的第三个元素 让我认为它可能是可能的,但由于它没有被尝试过,它的目的是提供一个 KML 文件而不是 KML 文件中的 href 元素,我不知道它是否甚至适用.
这可以单独使用javascript完成还是必须以某种方式/某处托管图像?