【发布时间】:2017-05-18 11:27:34
【问题描述】:
我正在开发一个 Android 应用程序,并且我正在使用 Google Maps Android API 来显示我在西班牙使用 ArcGIS 制作的 KML 图层。我通过将文件地理数据库栅格数据集导出到 KML 使用 ArcGIS 创建了该图层。 ArcGIS 中文件的空间参考位于 ED_1950_UTM_Zone_30N(投影坐标系)中,形状为西班牙。
问题:该图层在我的应用地图中正确显示,但图层的形状与国家/地区的形状不完全匹配(见附图)但是,当我在 PC Windows 桌面版和 Android 版 Google 地球中打开此 KML 时,KML 图层会完美地适应国家/地区地图边界。
我在 GitHub 上报告了这个问题,但没有答案:https://github.com/googlemaps/android-maps-utils/issues/394
这是我添加 KML 层的一段代码:
try {
mMap.clear();
KmlLayer layer = new KmlLayer(mMap, R.raw.kriging_sqri, getApplicationContext());
layer.addLayerToMap();
mapModeKML = true;
} catch (XmlPullParserException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
这是我的 kriging_sqri.kml 文件的内容,位于 res/raw:
<?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:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.opengis.net/kml/2.2 http://schemas.opengis.net/kml/2.2.0/ogckml22.xsd http://www.google.com/kml/ext/2.2 http://code.google.com/apis/kml/schema/kml22gx.xsd">
<Document id="Kriging_shp3_Clip">
<name>Kriging_shp3_Clip</name>
<Snippet></Snippet>
<GroundOverlay id="0">
<Snippet></Snippet>
<drawOrder>1000</drawOrder>
<name>Kriging_shp3_Clip</name>
<Icon>
<href>file:///storage/emulated/0/BioApp/Layer0.png</href>
<viewBoundScale>1.0</viewBoundScale>
</Icon>
<LatLonBox>
<north>44.67706278743195</north>
<south>35.085026094869</south>
<east>6.152473147346782</east>
<west>-10.78014121100213</west>
<rotation>0</rotation>
</LatLonBox>
</GroundOverlay>
</Document>
</kml>
这就是我的应用程序显示 KML 图层的方式(注意它的形状与国家/地区的陆地边界不匹配,在其南部和东海岸特别显着)。
但同样的 KML 可以在 Google 地球应用程序中正确显示(我已经在桌面和 Android 版本上尝试过)。这是它在 Google 地球的 Android 应用中的外观:
任何帮助将不胜感激!
【问题讨论】:
标签: android google-maps-android-api-2 kml