我在Google Maps中显示某些KML时遇到问题,这种情况发生在经过方法addLayerToMap之后,它没有呈现在地图上。
有趣的是,当我将其放在Google MyMaps中时,它同样可以正常工作,即使我从那里导出并设置为在应用程序的Google Maps中显示,它也可以正常显示。
我注意到MyMaps极大地改变了KML的结构,它甚至更小(在行数和大小方面)。
KML文件(原始):https://drive.google.com/file/d/1Z4AZMP1xNMgVNNXjK11-kD0gwlPLmJmR/view?usp=sharing
PS:在无效的图像路径上,我手动进行了更改,没有任何结果。
KML文件(由Google MyMaps解析):https://drive.google.com/file/d/1WPT3ZogzjTNa9ITeZze1cYf3ly4JFpUZ/view?usp=sharing
我用来读取KML的方法(适用于我尝试过的大多数KML,包括Google自己的示例):
private void retrieveFileFromResource() {
try {
KmlLayer kmlLayer = new KmlLayer(mMap, R.raw.teste3, getActivity());
kmlLayer.addLayerToMap();
moveCameraToKml(kmlLayer);
} catch (IOException e) {
e.printStackTrace();
} catch (XmlPullParserException e) {
e.printStackTrace();
}
}
我正在尝试将组件(折线,多边形,标记等)手动添加到地图,但是没有成功。
答案 0 :(得分:0)
尝试使用下面的代码检查文件夹中是否存在kml文件,如果存在,则将其显示在Google地图中。
private void retrieveFileFromResources()
{
try
{
int check = this.getResources().getIdentifier(teste3,"folder name", this.getPackageName());
if(check != 0)
{
InputStream inputstream = this.getResources().openRawResource(this.getResources().getIdentifier(teste3,"folder name",this.getPackageName()));
KmlLayer kmlLayer = new KmlLayer(mMap, inputStream, getApplicationContext());
kmlLayer.addLayerToMap();
}
else
{
Toast.makeText(this,"Request KML Layer not available",Toast.LENGTH_LONG).show();
}
}catch(IOException e)
{
e.printStackTrace();
}
catch(XmlPullParseException e)
{
e.printStackTrace();
}
}