我有以下代码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组合会导致此脚本失败?
答案 0 :(得分:1)
在我的情况下,我忽略了检查Chrome是否获得了在iPad上获取地理定位数据的权限。一旦我在隐私设置中启用它,一切正常。