谷歌地图在手机上显示错误

时间:2012-10-04 19:03:23

标签: javascript jquery google-maps jquery-mobile

这是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也会很棒。非常感谢你提前。

1 个答案:

答案 0 :(得分:0)

calcRoute()中有一些错误,因为您在此上下文中没有directionsService

首先,让我们将mapLoc1置于“全球”背景下:

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 是完整的代码。

希望这有帮助。