繁体   English   中英

KML 图层未显示在 Google 地图中

[英]KML Layer is not shown in Google Maps

我在 Google 地图中显示某些 KML 时遇到问题,碰巧在通过 addLayerToMap 方法后,它没有在地图上呈现。

有趣的是,当我将它放入 Google MyMaps 时,它会正常工作,即使我从那里导出并设置为在应用程序的 Google 地图中显示,它也能正常显示。

我注意到 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();
    }
}

我正在尝试手动将组件添加到地图(折线、多边形、标记等),但没有成功。

尝试使用以下代码检查文件夹中是否存在 kml 文件,如果存在,请在谷歌地图中显示它们。

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();
}
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM