HTML 5 Geolocation 不适用于 Directions API
Posted
技术标签:
【中文标题】HTML 5 Geolocation 不适用于 Directions API【英文标题】:HTML 5 Geolocation not working with Directions API 【发布时间】:2016-03-02 19:34:01 【问题描述】:我正在尝试将 geolocations API 与 Directions 服务一起使用,但我得到:
var UserLoc;
if (navigator.geolocation)
navigator.geolocation.getCurrentPosition(function(position)
var lat=position.coords.latitude;
var lng=position.coords.longitude;
console.log(lat);
console.log(lng);
UserLoc = new google.maps.LatLng(lat,lng);
var NewMarker = new google.maps.Marker(
position: UserLoc,
draggable: false,
animation: google.maps.Animation.DROP,
map: SEVTmap
);
);
else
alert ( "Възникна проблем при намирането на местонахождението ви!" );
var directionsService = new google.maps.DirectionsService();
var directionsDisplay = new google.maps.DirectionsRenderer();
directionsDisplay.setMap(SEVTmap);
var request =
origin: UserLoc,
destination: Destination,
travelMode: google.maps.DirectionsTravelMode.DRIVING
;
directionsService.route(request, function (response, status)
if (status == google.maps.DirectionsStatus.OK)
directionsDisplay.setDirections(response);
);
错误: InvalidValueError: in property origin: not a string;而不是 LatLng 或 LatLngLiteral:不是对象;而不是一个对象
标记已创建;
【问题讨论】:
地理定位服务是异步的,你必须在它可用的时候/在哪里使用它的回调函数中的结果。 【参考方案1】:地理位置服务是异步的,你必须在它可用的时候/在哪里使用它的回调函数中的结果
var UserLoc;
if (navigator.geolocation)
navigator.geolocation.getCurrentPosition(function(position)
var lat = position.coords.latitude;
var lng = position.coords.longitude;
console.log(lat);
console.log(lng);
UserLoc = new google.maps.LatLng(lat, lng);
var NewMarker = new google.maps.Marker(
position: UserLoc,
draggable: false,
animation: google.maps.Animation.DROP,
map: SEVTmap
);
var directionsService = new google.maps.DirectionsService();
var directionsDisplay = new google.maps.DirectionsRenderer(
map: SEVTmap
);
directionsDisplay.setMap(SEVTmap);
var request =
origin: UserLoc,
destination: Destination,
travelMode: google.maps.DirectionsTravelMode.DRIVING
;
directionsService.route(request, function(response, status)
if (status == google.maps.DirectionsStatus.OK)
directionsDisplay.setDirections(response);
);
, function (PositionError) alert("geolocation error:"+PositionError.code+" msg="+PositionError.message););
else
alert("Възникна проблем при намирането на местонахождението ви!");
【讨论】:
以上是关于HTML 5 Geolocation 不适用于 Directions API的主要内容,如果未能解决你的问题,请参考以下文章
navigator.geolocation.getCurrentPosition 不适用于 onClick
navigator.Geolocation GetCurrentpositon 不适用于 Chrome 和 Firefox
navigator.geolocation.getCurrentPosition 不适用于 Firefox