如何在iPhone应用程序的UIWebView中加载谷歌街景?

时间:2011-01-18 12:28:45

标签: iphone google-maps view uiwebview

我正在尝试在我的应用中使用谷歌地图街景,所以我想在我的Webview中加载html文件。但是需要flash播放器来显示街景。

这需要adobe flash播放器吗?

任何人都知道如何在我们的iPhone应用中使用街景?

此致

2 个答案:

答案 0 :(得分:1)

是的,可以在UIWebView中加载Google StreetView。以下是加载Google StreetView的示例代码示例 -



let urlAddress = "http://maps.google.co.uk/maps?f=q&source=s_q&hl=en&geocode=&q=bran+castle&sll=44.439972,26.096894&sspn=0.000869,0.003664&ie=UTF8&hq=Bran+Castle&hnear=Bran+Castle,+Strada+General+Traian+Mo%C8%99oiu+nr.+28+E574,+Bran+507025,+Romania&t=k&layer=c&cbll=45.516381,25.368123&panoid=0d7jjq7vdWGTxFyonEKnBQ&cbp=12,209.81,,1,-18.52&ll=45.516381,25.368123&spn=0,0.008444&z=17";            
        
        let request = NSURLRequest(URL: NSURL(string: urlAddress)!)
        glWebView.loadRequest(request)




加载此街景后。 Google会向您发出此网址仅属于Google地图的提醒。要隐藏该警报消息,只需在WebViewDidFinish方法中添加以下javascript查询 -



webView.stringByEvaluatingJavaScriptFromString("document.getElementsByClassName('ml-unsupported-link-dialog-container')[0].style.display='none'")




答案 1 :(得分:0)

从技术上讲,这是不可能的,但是如果你可以获得特定纬度和经度的全景图像ID,那么它是可能的。在我之前的回答中,我说这是可能的,因为我知道该特定位置的全景ID。使用该代码,您可以在UIWebview中打开steetview,但它会显示警告。通过触摸webview中的任何位置,该消息将消失。

Bu谷歌介绍SDK在你的iOS应用程序中加载streetview,而不是离开你的应用程序。您需要做的就是添加GoogleMaps' sdk使用可可豆荚并运行以下源代码,以显示特定纬度和经度的谷歌街景。



let panoSvc = GMSPanoramaService()
            panoSvc.requestPanoramaNearCoordinate(CLLocationCoordinate2D(latitude: 32.847683, longitude: -96.771638), radius:100, callback: { (panorama, error) in
                if error == nil {
                    DispatchQueue.main.async(execute: {
                        let panoView = GMSPanoramaView(frame: .zero)
                        self.view = panoView
                        panoView.moveNearCoordinate((panorama?.coordinate)!, radius: 200)
                        print("Panorama ID: ", panorama?.panoramaID)
                        print("Panorama Co-ordinate: ", panorama?.coordinate)
                    })
                }
                else {
                    Utility.showCustomMsg(self.view, label: "Not Found", detailslbl:"Street View is not available for this location.", isSuccessImg: false, duration: 3)
                    {
                        self.navigationController?.popViewController(animated: true)
                    }
                }
            })




很酷......感谢Google的员工。