【问题标题】:Displaying a map in Quicklook preview在 Quicklook 预览中显示地图
【发布时间】:2012-07-11 15:23:05
【问题描述】:

我正在为 GPS 记录文件格式(.fit 文件)编写 Quicklook 生成器插件。我把一些东西推到一起,加载文件并使用NSGraphics/NSBezier 东西绘制路径:

(上面can be found here的可怕代码)

这很好,但是在谷歌地图数据或类似数据上显示会更好(记录的轨迹覆盖相当小的距离 - 例如,上面覆盖了大约 20 公里乘 10 公里 - 太小而无法在单个地图上显示地球,所以地图需要以某种方式动态加载)

到目前为止我尝试过的事情:

  1. 返回显示 Javascript GMap 实例的 HTML。不起作用,因为 Quicklook HTML 呈现不允许 Javascript(或 Flash、Java 等)
  2. 返回包含静态 Google 地图图像的 HTML。 Quicklook 不会加载远程图像。
  3. 获取 NSGraphicsContext 并在其中显示标准 WebKitView,已修改 from some thumbnailing code - 因为您无法从辅助线程初始化 WebKit(这似乎适用于缩略图,但不适用于预览?)

使用2.,我可以在 ObjC 中下载静态 Google 地图图像,然后使用 HTML 显示,但静态地图并不理想(固定大小,因此无法缩放,并且初始加载速度可能很慢)

我遇到了MacMapKit,我还没有尝试过,但由于它是基于 WebKit 的,我怀疑它会遇到与 3. 相同的问题

有什么方法可以在我忽略的 Quicklook 中显示地图吗?

【问题讨论】:

    标签: macos google-maps quicklook


    【解决方案1】:
    • 尝试直接在您的生成器中获取 Google 数据(无论您尝试如何)是不可能的,因为您的插件主机已被沙盒化并拒绝与网络的任何连接

      李>
    • 尝试返回 HTML 数据和一些巧妙的 javascript 也不起作用,因为快速查看面板也出于安全原因防止网络访问,并且没有公开的解决方法

    恐怕您找不到真正解决问题的方法,除非使用您自己的地图数据。

    不过,您的用例很有趣,您应该向Apple's Bug Report website 提交错误。

    【讨论】:

    • 啊,当然 - 我忘记了沙盒的东西。找到an non-functional plugin,它尝试了各种方法将网络数据放入 QL 插件(ObjC 网络方法,调用 curl)。哦好的,谢谢!我将放弃在地图上显示路径,而专注于其他比例指标(具有指定间距的网格、显示总体轨迹距离的标签等)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-07
    • 1970-01-01
    • 2016-02-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多