嵌入式Google地图不会出现在Chrome for iPad中

时间:2014-10-09 18:34:33

标签: javascript ipad google-maps google-chrome

我有以下代码provided in a JSFiddle for your convenience。它的作用是提供一个谷歌地图,其中包含从您的设备到另一个地点的指示(出于这个问题的目的,我已经对目的地进行了硬编码):

(function() {
    var address = "2 15th St NW, Washington, DC 20007";
    var myOptions = {
        zoom: 15,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);

    if (navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(
            function (position) {
                var currentPos = new google.maps.LatLng(position.coords.latitude.toFixed(5), position.coords.longitude.toFixed(5));

                var request = {
                    origin: currentPos,
                    destination: address,
                    travelMode: google.maps.TravelMode.DRIVING
                };

                var directionsDisplay = new google.maps.DirectionsRenderer();
                var directionsService = new google.maps.DirectionsService();
                directionsDisplay.setMap(map);
                directionsService.route(request, function (result, status) {
                    if (status == google.maps.DirectionsStatus.OK) {
                        directionsDisplay.setDirections(result);
                    }
                });
            });
    } else {
        // No starting location can be determined; just plot a marker for the destination
        var marker = new google.maps.Marker();
        var geocoder = new google.maps.Geocoder;
        geocoder.geocode({ 'address': address }, function (results, status) {

            if (status == google.maps.GeocoderStatus.OK) {
                map.setCenter(results[0].geometry.location);
                marker.setPosition(results[0].geometry.location);
                marker.setMap(map);
                marker.setTitle(address);
            }
        });
    }
})();

此脚本和关联的Google Maps API script都位于页面的<head>标记中。

我在各种浏览器中测试它,一切正常,直到我在使用Chrome的iPad上试用它。我得到的只是一个空白的灰色页面 - 没有地图控件,没有错误信息,没有。

然而 在我的笔记本电脑上使用Windows 7,以及在同一台iPad上的Safari中使用。

更新 - 问题在于调用navigator.geolocation.getCurrentPosition的某个地方。它返回PositionError

iPad-Chrome组合会导致此脚本失败?

1 个答案:

答案 0 :(得分:1)

在我的情况下,我忽略了检查Chrome是否获得了在iPad上获取地理定位数据的权限。一旦我在隐私设置中启用它,一切正常。