0

Google マップ API 3 からマップを統合する Android アプリケーションを構築しています。このチュートリアルを読みましたが、このコード ブロックが何をするのか理解できません。

private void setupWebView(){
  final String centerURL = "javascript:centerAt(" +
  mostRecentLocation.getLatitude() + "," +
  mostRecentLocation.getLongitude()+ ")";
  webView = (WebView) findViewById(R.id.webview);
  webView.getSettings().setJavaScriptEnabled(true);
  //Wait for the page to load then send the location information
  webView.setWebViewClient(new WebViewClient(){
    @Override
    public void onPageFinished(WebView view, String url){
      webView.loadUrl(centerURL);
    }
  });
  webView.loadUrl(MAP_URL);
}

このコードが何をするのか、誰かが私に徹底的に説明してくれませんか? ありがとう!

4

1 に答える 1

3

遅くなりましたが、多分それは他の誰かを助けるでしょう。

私は初心者なのでよくわかりませんが、「centerAt」という JavaScript 関数を呼び出しているのではないかと思います。このチュートリアルhttps://developers.google.com/maps/articles/android_v3をご覧ください。その関数「centerAt」を使用した JavaScript ブリッジ定義を参照してください。

<script type="text/javascript" 
  src="http://maps.googleapis.com/maps/api/js?sensor=true"></script>
<script type="text/javascript">
  var map;
  function initialize() {
    var latitude = 0;
    var longitude = 0;
    if (window.android){
      latitude = window.android.getLatitude();
      longitude = window.android.getLongitude();
    }
    var myLatlng = new google.maps.LatLng(latitude,longitude);
    var myOptions = {
      zoom: 8,
      center: myLatlng,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    }
    map = new google.maps.Map(document.getElementById("map_canvas"),
      myOptions);
  }
  function centerAt(latitude, longitude){
    myLatlng = new google.maps.LatLng(latitude,longitude);
    map.panTo(myLatlng);
  }
  </script>

要約すると、あなたが実際に行っているのは、JavaScript ブリッジを使用して Android アプリにマップを表示することです。そのため、Android コードから、それに定義された JavaScript 関数を使用し、それらを URL 経由で呼び出します。

繰り返しますが、私は初心者です (Google マップの初日)、おそらく間違っています。

于 2012-11-27T23:56:47.567 に答える