2009-10-21 53 views
4

MapKit不支持駕車路線。所以我想我可以在webview中顯示駕駛方向。我在uiwebview中顯示谷歌地圖,但它顯示了整個網站,我只是想顯示一些縮放地圖部分,以便它看起來像iPhone的原始地圖應用程序。此外,我不知道這是否違反了蘋果的人機界面準則(HIG)規則,請告訴我是否是這樣。使用UIWebView縮放顯示谷歌地圖

回答

7

像這樣加載一個字符串作爲NSString(也許去掉換行符)。您可以更改經緯度,縮放級別等與stringWithFormat

<html> 
<head> 
<meta name="viewport" content="initial-scale=1.0, user-scalable=no"> 
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script> 
<script type="text/javascript"> 
    function initialize() { 
    var latlng = new google.maps.LatLng(35.000, 139.000); 
    var myOptions = { 
     zoom: 15, 
     center: latlng, 
     mapTypeId: google.maps.MapTypeId.ROADMAP 
    }; 
    var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); 
    } 
</script> 
</head> 
<body onload="initialize()"> 
<div id="map_canvas" style="width:100%; height:100%"> 
</body> 
</html> 

然後你UIWebView小號的HTML設置爲。它會給你一個頁面上只有一張地圖,讓你用手指滾動或放大,捏縮放,並放置一個標記。

使用此加載HTML:

- (void)loadHTMLString:(NSString *)string baseURL:(NSURL *)baseURL 
+0

我想顯示行駛方向,你能告訴我怎麼做,以你的code.i有兩個緯度/多頭部位,建議立即進行刪除我進入也什麼參數在這個方法中的baseURL - (無效)loadHTMLString:(NSString *)字符串baseURL:(NSURL *)baseURL –

+0

也告訴我,如果我使用這將被蘋果​​拒絕的應用程序 –

+0

請發佈此示例代碼 –

4

在這裏你去。將它通過一個stringWithFormat,其長度是原始Lat的兩倍,並且一旦目標lat長,它們全部爲float:

[NSString stringWithformat:...,oriLat,oriLon,oriLat,oriLon,destLat,destLon];

,然後將其傳遞到一個UIWebView

<html> 
<head> 
<meta name="viewport" content="initial-scale=1.0, user-scalable=no"> 
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=true"></script> 
<script type="text/javascript"> 

    var directionsDisplay = new google.maps.DirectionsRenderer(); 

    var directionsService = new google.maps.DirectionsService(); 

    function initialize() { 
     var latlng = new google.maps.LatLng(%f, %f); 
     var myOptions = { 
      zoom: 15, 
      center: latlng, 
      mapTypeId: google.maps.MapTypeId.ROADMAP 
    }; 

    var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); 
    directionsDisplay.setMap(map); 
    calcRoute(); 
    } 

function calcRoute() { 
    var start = new google.maps.LatLng(%f, %f); 
    var end = new google.maps.LatLng(%f, %f); 
    var request = { 
    origin:start, 
    destination:end, 
    travelMode: google.maps.DirectionsTravelMode.DRIVING 
    }; 
    directionsService.route(request, function(result, status) { 
    if (status == google.maps.DirectionsStatus.OK) { 
     directionsDisplay.setDirections(result); 
    } 
    }); 
} 


</script> 
</head> 
<body onload="initialize()"> 
<div id="map_canvas" style="width:300px; height:300px"> 
</body> 
</html> 
+0

我該怎麼做到這一點?我的意思是將html添加爲字符串。謝謝 – MJB