0

我正在构建一个 android 应用程序,它将集成来自 google maps api 3 的地图。我已经阅读了本教程,但无法理解这段代码的作用。

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 调用它们。

同样,我是初学者(使用谷歌地图的第一天),可能我错了。

于 2012-11-27T23:56:47.567 回答