当前位置: 首页 > 面试题库 >

确定Google Streetview功能的存在

暴骏奇
2023-03-14
问题内容

有没有一种方法可以确定Android应用程序是否可以提供Google Streetview全景图(即使用Java)。

对于PHP或Python或其他服务器端技术,似乎没有其他选择。

调用不存在全景图的Google Streetview的影响仅仅是黑屏和“旋转的东西”。


问题答案:

我为此创建了一个小技巧。:)

strings.xml

<string name="html_streetview">    <![CDATA[
<html>
<head>
   <script src="http://maps.google.com/maps/api/js?v=3&amp;sensor=false" type="text/javascript"></script>
 </head>
<body>
<script type="text/javascript">
 Android.echo();
 var testPoint = new google.maps.LatLng(%1$s, %2$s,true);
 var svClient = new google.maps.StreetViewService();
 svClient.getPanoramaByLocation(testPoint, 50,function (panoramaData, status) {
   if (status == google.maps.StreetViewStatus.OK) {
     Android.hasStreetview();
   } else {
     Android.hasNotStreetview();
   }
 });
</script>
</body>
</html>
]]>
</string>

现在,在活动上添加用于街景视图的按钮,并将以下代码放入onclick方法中:

    if (webView == null) {
      webView = new WebView(this);
      webView.setVisibility(View.INVISIBLE);
      webView.getSettings().setJavaScriptEnabled(true);
      webView.addJavascriptInterface(new JavascriptCheck(this), "Android");
      webView.setWebViewClient(new WebViewClient() {
          public void onReceivedError(WebView view, int errorCode, String description, String failingUrl) {
               Toast.makeText(this, "Streetview loading", Toast.LENGTH_SHORT).show();
               super.onReceivedError(view, errorCode, description, failingUrl);
                }
      });
    }

    Toast.makeText(this, "Streetview loading", Toast.LENGTH_SHORT).show();

    webView.loadDataWithBaseURL(baseurl, 
      getString(R.string.html_streetview, latitude, longitude), "text/html", "UTF-8", baseurl);

现在是活动的内部类:

public class JavascriptCheck {
   private final Context context;

   public JavascriptCheck(Context context) {
      this.context = context;
   }

   public void echo() {
       Log.d("JavascriptChecker", "javascript called");
   }

   public void hasStreetview() {
       pushStreetviewState(true);
   }

   public void hasNotStreetview() {
      pushStreetviewState(false);
   }

   private void pushStreetviewState(final boolean hasStreetview) {
       Log.d("JavascriptChecker", hasStreetview);
       // TODO do your stuff needed here
   }
}

这是一个相当糟糕的解决方法,但可能会有所帮助。:)



 类似资料:
  • 我们正在Spring Cloud+NetflixOS上构建一个微服务架构,到目前为止,它非常棒。然而,我们已经注意到,当我们第一次启动Eureka+2个单独的微服务时,Service1无法连接到Service2长达30秒,即使两者都很快注册到Eureka并单独出现。这发生在本地或部署(通过Tutum在AWS上) 我们得到的错误是:

  • 我偶然发现了表达式通过android-在xml中应用selectableItembackground并支持v7。 我想看看该表达式的确切功能,因为我不明白开头的问号象征着什么以及它是如何准确地完成任务的。 它说它是支持库v7的一部分,但我试着查找它,却找不到有用的信息 到底是什么, 定义它的位置和 它到底是做什么的。

  • 更准确地说,函数接口定义为具有一个抽象方法的任何接口。 然后他继续介绍示例,其中一个是接口: 我能够测试是否可以使用lambda函数代替比较器参数,并且它能够工作(例如)。

  • 问题内容: 在python中,我尝试执行以下操作以定义函数: 但是由于某种原因,这是错误的。我收到此错误: 我该如何解决? 谢谢 问题答案: 这不是在python中声明函数的方式。您要写的是: 也就是说,如果您已经具有和函数。

  • 问题内容: 在C ++中,我可以打印调试输出,如下所示: 如何在Python中做类似的事情? 问题答案: 有一个名为的模块可提供这些信息。 用法示例: 但是,请记住,有一种更简单的方法来获取当前正在执行的文件的名称:

  • 使用MapView的方法实现定位功能,可以获取坐标和当前地址信息(可以获取到街道信息),比使用CLLocationManager精准。 [Code4App.com]