gpt4 book ai didi

android - 我如何将 kml 文件发送到 Google 地球,就像 MyTracks(开源)一样?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:38:08 25 4
gpt4 key购买 nike

我不知道您是否看到了惊人的 Mytrack 更新,但它允许将 kml 文件发送到 Google 地球应用程序并在 Google 应用程序中显示它(当然,如果安装的话)。

enter image description here

源代码在那里:http://code.google.com/p/mytracks/source/browse/

但我找不到实现这样事情的方法。

我想我在这里找到了一些东西:http://code.google.com/r/jshih-mytracks3/source/browse/MyTracks/src/com/google/android/apps/mytracks/io/file/SaveActivity.java?spec=svn5178eb75934b7f0c4c23ec26b7d79a0787de18b8&r=5178eb75934b7f0c4c23ec26b7d79a0787de18b8

else if (playTrack) {
Intent intent = new Intent()
.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_NEW_TASK)
.putExtra(GOOGLE_EARTH_TOUR_FEATURE_ID, KmlTrackWriter.TOUR_FEATURE_ID)
.setClassName(GOOGLE_EARTH_PACKAGE, GOOGLE_EARTH_CLASS)
.setDataAndType(Uri.fromFile(new File(savedPath)), GOOGLE_EARTH_KML_MIME_TYPE);
startActivity(intent);

硬编码方式给出了这段代码:

    Intent intent = new Intent()
.addFlags(
Intent.FLAG_ACTIVITY_CLEAR_TOP
| Intent.FLAG_ACTIVITY_NEW_TASK)
.putExtra("com.google.earth.EXTRA.tour_feature_id","tour")
.setClassName("com.google.earth", "com.google.earth.EarthActivity")
.setDataAndType(Uri.fromFile(new File("/sdcard/test.kml")),
"application/vnd.google-earth.kml+xml");
startActivity(intent);

但是上面的代码只是显示了与这段代码结果相同的路径:

 Intent mapIntent = new Intent(Intent.ACTION_VIEW); 
Uri uri1 = Uri.parse("file:///sdcard/test.kml");
mapIntent.setData(uri1);
startActivity(Intent.createChooser(mapIntent, "Sample"));

我的目标是通过“播放”按钮获得相同的结果。

最佳答案

您需要指定 KML 文件的 URI KML MIME 类型,如下所示。

File file = new File(Environment.getExternalStorageDirectory(), "sample_tour.kml");
Intent intent = new Intent(Intent.ACTION_VIEW);
intent.setDataAndType(Uri.fromFile(file), "application/vnd.google-earth.kml+xml");
intent.putExtra("com.google.earth.EXTRA.tour_feature_id", "my_track");
startActivity(intent);

这目前没有记录,但我们正在寻求解决这个问题。

一定要分别使用 Intent::setDataAndType 而不是 Intent::setDataIntent::setType (它们各自覆盖另一个).

“my_track”是对您的地标 ID 的引用。 Intent 额外自动开始游览。

<Placemark id="my_track">
<gx:Track>
...
</gx:Track>
</Placemark>

关于android - 我如何将 kml 文件发送到 Google 地球,就像 MyTracks(开源)一样?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11483657/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com