在Quicklook预览中显示地图

时间:2012-07-11 15:23:05

标签: macos google-maps quicklook

我正在编写一个用于GPS日志文件格式(.fit文件)的Quicklook生成器插件。我推了一些加载文件并使用NSGraphics / NSBezier内容绘制路径的东西:

Plot of path

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

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

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

  1. 返回显示Javascript GMap实例的HTML。因为Quicklook HTML呈现不允许Javascript(或Flash,Java等)
  2. ,所以不起作用
  3. 返回包含静态Google地图图片的HTML。 Quicklook不会加载远程图像。
  4. 获取NSGraphicsContext并在其中显示一个标准的WebKitView,修改后的from some thumbnailing code - 这个错误,因为你无法从辅助线程初始化WebKit(这似乎适用于缩略图,但不适用于预览?)
  5. 使用2.我可以在ObjC中下载静态Google地图图像,然后使用HTML显示该图像,但静态地图并不理想(固定大小,因此没有缩放,初始加载可能会很慢)< / p>

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

    有没有办法在Quicklook中显示我正在俯瞰的地图?

1 个答案:

答案 0 :(得分:1)

  • 尝试直接在您的生成器中获取Google数据(无论您尝试这样做的方式)都是不可能的,因为您的插件主机是沙箱并拒绝任何与网络的连接

  • 尝试返回HTML数据并且一些聪明的javascript也无法正常工作,因为“快速查看”面板还可以出于安全原因防止网络访问,并且没有公开的方法可以解决这个问题

除了使用您自己的地图数据之外,我担心您无法找到问题的真正解决方案。

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