我有一个让我疯狂了两天的问题。
我们有一个Google地图应用,可以提取KML文件,将历史地图显示为图片叠加层。在上周,我们的应用程序开始显示非常模糊的图像,这些图像是从googleusercontent服务器而非我们自己的服务器中提取的。更令人费解的是,Google缓存中的图像与我服务器上的图像尺寸不同 - 它们的尺寸要小三倍。
我没有任何运气迫使Google不在其缓存中使用该文件的版本。当我更改文件的名称或目录时,我会从googleusercontent网址收到404错误,但它不会加载正在引用的实际链接。
以下是一个示例KML文件(从Google Earth导出)。该图像与KML文件位于同一目录中。
<?xml version="1.0" encoding="UTF-8"?>
<kml xmlns="http://www.opengis.net/kml/2.2" xmlns: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">
<GroundOverlay>
<name>panel1</name>
<Icon>
<href>panel1.png</href>
<viewBoundScale>0.75</viewBoundScale>
</Icon>
<LatLonBox>
<north>37.5422476694301</north>
<south>37.53370251727466</south>
<east>-77.43246990568036</east>
<west>-77.44384562932868</west>
</LatLonBox>
</GroundOverlay>
</kml>
以下是我在地图上加载KMLOverlay的电话。
this.GOOGLE_MAP = new google.maps.Map(document.getElementById('richmond_map'),{
center: new google.maps.LatLng(<lat_value>, <lng_value>),
zoom:16,
streetView: new google.maps.StreetViewPanorama($('#street')[0],{disableDefaultUI: true})
});
var d = new Date();
this.OVERLAY = new google.maps.KmlLayer({url: <url_to_KML_file>, clickable: false, map: this.GOOGLE_MAP, preserveViewport: true, zIndex:2 });