Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了android – 如何将一个kml文件发送到Google Earth,就像MyTracks(开源)一样?大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
@H_502_1@我不知道你是否看过惊人的myTrack更新,但它允许将一个kml文件发送到Google Earth应用程序并将其显示在Google应用程序中(当然,如果已安装). @H_674_1@源代码在那里:http://code.google.com/p/mytracks/source/browse/

@H_674_1@但我无法找到实现这一目标的方法.

@H_674_1@我想我在这里找到了一些东西: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);
@H_674_1@硬编码方式提供此代码

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);
@H_674_1@但是上面的代码显示了与此代码相同结果的路径:

Intent mapIntent = new Intent(Intent.ACTION_VIEW); 
    Uri uri1 = Uri.parse("file:///sdcard/test.kml"); 
    mapIntent.setData(uri1); 
    startActivity(Intent.createChooser(mapIntent,"Sample"));
@H_674_1@我的目标是通过“播放”按钮获得相同的结果.

解决方法

您需要指定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);
@H_674_1@这目前没有记录,但我们正在寻求解决这个问题.

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

@H_674_1@“my_track”是对地标ID的引用.意图额外自动开始游览.

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

大佬总结

以上是大佬教程为你收集整理的android – 如何将一个kml文件发送到Google Earth,就像MyTracks(开源)一样?全部内容,希望文章能够帮你解决android – 如何将一个kml文件发送到Google Earth,就像MyTracks(开源)一样?所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。