2009-10-21 3 views
4

Направления движения не поддерживаются в MapKit. поэтому я думаю, что могу показать направление движения в веб-обзоре. Я показываю google-карты в uiwebview, но он показывает весь сайт, на котором я просто хочу показать только часть карты с некоторым увеличением, чтобы она выглядела как оригинальное приложение карт iphone. Кроме того, я не знаю, нарушает ли это правила управления человеческими интерфейсами Apple (HIG), скажите, если это так.Показать Карты Google с помощью 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 в методе - (void) loadHTMLString: (NSString *) string baseURL: (NSURL *) baseURL –

+0

также сообщите мне, если я использую это приложение, отклоненное яблоком –

+0

, пожалуйста, отправьте образец кода для этого –

4

Здесь вы идете. Передайте его через stringWithFormat с удвоенной длительностью lat long и после того, как конечный 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

Смежные вопросы