如何将Google Maps地图添加到OS X Cocoa应用程序

如何将Google Maps地图添加到OS X Cocoa应用程序,第1张

概述我正在使用XCode 4开发一个 Cocoa应用程序.其中一个窗口有一个标签视图.其中一个标签应显示某个位置的Google地图地图.我在选项卡中添加了一个WebView(WebKit框架)并将其定义为插座,以便我可以使用窗口控制器对其进行 *** 作. 我设法使用以下内容在Web视图中显示URL(maps.google.com): [[mapView mainFrame] loadRequest:[NSU 我正在使用XCode 4开发一个 Cocoa应用程序.其中一个窗口有一个标签视图.其中一个标签应显示某个位置的Google地图地图.我在选项卡中添加了一个WebVIEw(WebKit框架)并将其定义为插座,以便我可以使用窗口控制器对其进行 *** 作.

我设法使用以下内容在Web视图中显示URL(maps.Google.com):

[[mapVIEw mainFrame] loadRequest:[NSURLRequest requestWithURL:[NSURL URLWithString:@"http://maps.Google.com"]]];

然而,这不是我正在寻找的结果.理想情况下,我想要一个类似于iPhoto的地图视图.从this教程我知道你必须在服务器上有一个HTML文件才能使工作正常.由于我的应用程序是本地OS X应用程序(不涉及任何服务器),我想知道是否有任何方式以不同的方式执行此 *** 作并在应用程序的de目录中具有HTML本地(不确定这将如何与所需的一起工作与Google绑定的Google Maps API密钥)?

编辑:

我已经解决了部分问题.您实际上可以在本地存储HTML文件(我把它放在我项目的“Supporting files”文件夹中).然后,您可以使用以下代码访问此文件:

Nsstring *pagePath;NSBundle *aBundle = [NSBundle mainBundle];pagePath = [aBundle pathForResource:@"test2" ofType:@"HTML"];// make a file: URL out of the pathNSURL *pageURL = [NSURL fileURLWithPath: pagePath];

下一步是使用以下内容显示地图:

[[mapVIEw mainFrame] loadRequest:[NSURLRequest requestWithURL: pageURL]];

这将在我的WebVIEw中显示地图.作为起点,我使用了Google Maps API教程here中的示例.此特定示例显示了一个以瑞典斯德哥尔摩为中心的地图.

我还没有设法解决的一件事是如何访问显示地图的JavaScript函数(在上面的例子中,这将是使用body onload调用的initialize()函数).对于我的情况,我想调整这个函数来接受两个参数,一个经度和一个纬度,然后从显示地图的Objective-C对象中调用它.根据Apple的文档,可以使用可通过WebVIEw实例访问的WebScriptObject实例从Objective-C中调用JavaScript:

ID wso = [mapVIEw windowscriptObject];

然后使用callWebScriptMethod:withArguments:一个应该能够执行JavaScript函数.但是,如果我删除body标签的onload并使用windowscriptInstance调用JavaScript initialize()函数,则地图不会显示.有人知道我做错了什么吗?

解决方法 最后一块拼图是正确的时机.在完成WebVIEw加载之前,您无法使用JavaScript做任何事情.通过向您的控制器发送webVIEw:dIDFinishLoadForFrame:将此信号发送回您的控制器.查看WebFrameLoadDelegate协议参考 here上的Apple文档.您的控制器应实现其中一些方法,具体取决于所需的行为(协议方法是可选的).

运行此方法后,WebVIEw即可开始工作,您可以在其中访问JavaScript函数:

- (voID) webVIEw:(WebVIEw *) webVIEw dIDFinishLoadForFrame:(WebFrame *) frame {    NSArray *args = [NSArray arrayWithObjects:                     [NSNumber numberWithfloat: 59.325225],[NSNumber numberWithfloat:18.0700],nil];    [[webVIEw windowscriptObject] callWebScriptMethod:@"initialize" withArguments:args];}

一个很好的参考点是我解剖的CallJS sample app,以使整个工作起作用.

总结

以上是内存溢出为你收集整理的如何将Google Maps地图添加到OS X Cocoa应用程序全部内容,希望文章能够帮你解决如何将Google Maps地图添加到OS X Cocoa应用程序所遇到的程序开发问题。

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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1001031.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存