在monodroid的web视图中显示谷歌地图

时间:2012-04-12 15:30:13

标签: xamarin.android

以下是思考...我有一个源自Activity的基本活动,在我的一个派生活动中,我需要显示一个包含我当前位置的谷歌地图。如果我没有使用此基本活动,我将从地图活动中获取我的活动并使用com.google.android.maps.MapView地图控件。但是,我不能,我不能......

所以我试图用地图活动派生我的基类,但即使这样它也不起作用我仍然有相同的异常

  

Android.Views.InflateException:错误导致类com.google.android.maps.MapView

所以,我想在网页视图中显示地图,但我只是想显示地图,没有谷歌工具栏等等...我在网上找到一种方法去做,我发现了一些链接,其中一个是this,我很喜欢,但我不知道如何使用JavaScript。有人能帮助我吗?

1 个答案:

答案 0 :(得分:0)

因此,您在样本中加载WebView的URL很可能是:http://gmaps-samples.googlecode.com/svn/trunk/articles-android-webmap/simple-android-map.html

此html页面包含显示在您链接到的示例底部的JavaScript。您希望将其作为资产或服务器存储在应用程序中,以便轻松修改。

该HTML的来源是:

<html> 
<head> 
<meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> 
<meta http-equiv="content-type" content="text/html; charset=UTF-8"/> 
<title>Simple V3 Map for Android</title> 

<script type="text/javascript" src="http://maps.google.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> 
</head> 
<body style="margin:0px; padding:0px;" onload="initialize()"> 
  <div id="map_canvas" style="width:100%; height:100%"></div> 
</body> 
</html>

由于这使用了普通的Google Maps JavaScript API,因此可以通过将其添加到myOptions数组来轻松禁用defaultUI:

disableDefaultUI: true,

就像文档在这里说的那样:https://developers.google.com/maps/documentation/javascript/controls#DisablingDefaults