这是Mark Design问题的后续问题。
maps displayed wrong on mobile (using JQuery mobile)
我是javascript和jquery的新手,无法在上面链接到我自己的谷歌地图脚本的Mark Design问题的答案中提供解决方案。
我正在做与Mark Design对此文件相同的事情:
http://skool411.info/m/Hawaii-2.html
在移动设备上,地图无法正确显示,并执行与上面发布的图片Mark Design中所示相同的操作。有人可以告诉我如何申请'pageshow'和'调整大小'?我也试图关闭ajax,这对我不起作用:
http://skool411.info/m/Hawaii-1.html
我很可能不知道如何正确地做到这一点。如果有人能告诉我如何关闭ajax也会很棒。非常感谢你提前。
答案 0 :(得分:0)
calcRoute()
中有一些错误,因为您在此上下文中没有directionsService
。
首先,让我们将map
和Loc1
置于“全球”背景下:
var map;
var Loc1;
使用建议问题的解决方案,需要在显示页面时创建地图:
$('#mapPage').live('pageshow',
function(event, ui) {
var mapOptions = {
zoom : 7,
mapTypeId : google.maps.MapTypeId.ROADMAP,
center : Loc1
};
map = new google.maps.Map(document.getElementById('map_canvas'),
mapOptions);
});
初始化功能:
function initialize(Hlat1, Hlng1, Hlat2, Hlng2) {
Loc1 = new google.maps.LatLng(Hlat1, Hlng1);
var $content = $("#mapPage div:jqmData(role=content)");
$content.height(screen.height);
$.mobile.changePage($("#mapPage"));
calcRoute(Hlat1, Hlng1, Hlat2, Hlng2);
}
最后,计算路线:
function calcRoute(Hlat1, Hlng1, Hlat2, Hlng2) {
var rendererOptions = {
draggable : true
};
var directionsDisplay = new google.maps.DirectionsRenderer(rendererOptions);
var directionsService = new google.maps.DirectionsService();
var request = {
origin : new google.maps.LatLng(Hlat1, Hlng1),
destination : new google.maps.LatLng(Hlat2, Hlng2),
travelMode : google.maps.DirectionsTravelMode.DRIVING
};
directionsService.route(request, function(response, status) {
if (status == google.maps.DirectionsStatus.OK) {
directionsDisplay.setDirections(response);
directionsDisplay.setMap(map);
}
});
}
Here 是完整的代码。
希望这有帮助。