【问题标题】:getting googlemaps to accept a local KML file?让 googlemaps 接受本地 KML 文件?
【发布时间】:2010-03-05 14:14:43
【问题描述】:

我正在尝试让 googlemaps 接受本地 KML 文件。

final Intent myIntent = new Intent(android.content.Intent.ACTION_VIEW,
Uri.parse("geo:0,0?q=file://" + Environment.getExternalStorageDirectory() + "/locate.kml"));
startActivity(myIntent);

文件在 SD 卡上,并且是有效的 kml 文件。 Googlemaps 加载,但说找不到文件。

final Intent myIntent = new Intent(android.content.Intent.ACTION_VIEW,
Uri.parse("geo:0,0?q=http://www.website.com/locate.kml"));
startActivity(myIntent);

工作正常。 geo:0,0?q= 似乎记录不足,谁能帮助我了解如何使用它来引用本地文件?

【问题讨论】:

    标签: android uri google-maps android-intent


    【解决方案1】:

    我认为问题在于,当您尝试使用 google 地图打开 URL 时,应用程序会使用您提供的 url 向 google 发送搜索请求。
    然后google服务器从你提供的url中获取数据并返回结果。

    由于谷歌服务器无法访问诸如“file://”之类的 url 或任何诸如“http://localhost”之类的本地 URL,因此您会收到错误消息。 这就是第二条命令起作用的原因,谷歌服务器可以访问http://www.website.com/locate.kml

    【讨论】:

    【解决方案2】:

    看来要等到Android 2.1才能做到

    http://code.google.com/p/android/issues/detail?id=2454

    【讨论】:

      【解决方案3】:

      JavaScript 在沙盒中运行,因此它无法在没有专有扩展的情况下访问本地文件。

      【讨论】:

      • 这是在 Android 设备上,未嵌入网页中。
      • 好吧,对不起。 Environment.getExternalStorageDirectory() 的值是多少?
      • /sdcard 我正在用另一段代码编写文件;文件 kmlfile = new File(Environment.getExternalStorageDirectory(), "locate.kml");并且意图确实启动了谷歌地图,它只是说“找不到文件:///sdcard/locate.kml
      猜你喜欢
      • 2011-01-29
      • 1970-01-01
      • 1970-01-01
      • 2015-02-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-01
      • 1970-01-01
      相关资源
      最近更新 更多