gpt4 book ai didi

javascript - Google map Api - 将 google.maps.Place 传递给方向服务

转载 作者:行者123 更新时间:2023-12-02 14:09:52 26 4
gpt4 key购买 nike

根据 Google 文档,可以将某个位置的 Google Place ID 传递给 Direciton 服务。然而,无论我尝试什么组合,我都绝对无法让它发挥作用;我收到 NOT_FOUND 错误。我尝试过对 id 进行硬编码作为测试,但没有成功。

基本初始化代码:

var directionsDisplay;
var directionsService = new google.maps.DirectionsService();
var hotelMap;
var placesService;




function initialize() {

var mapOptions = {
center: { lat: 37.30138, lng: -89.57778},
zoom: 15,
};

hotelMap = new google.maps.Map(document.getElementById("googlemaps"), mapOptions);

var marker = new google.maps.Marker({
position:{ lat: 37.30138, lng: -89.57778},
map: hotelMap,
});

var info = new google.maps.InfoWindow({
content: "3265 William Street, Cape Girardeau, MO 63701"
});

marker.setMap(hotelMap);
info.open(hotelMap, marker);

directionsDisplay = new google.maps.DirectionsRenderer();
directionsDisplay.setMap(hotelMap);
directionsDisplay.setPanel(document.getElementById("directionModalBody"));

document.getElementById("searchButton").addEventListener("click", function() {

var keyword = document.getElementById("searchBox").value;
var requestOptions = {
location: { lat: 37.3011339, lng: -89.5770238},
radius: '5000',
keyword: keyword
};

placesService = new google.maps.places.PlacesService(hotelMap);
placesService.nearbySearch(requestOptions, findCallback);

});

}; // end initiallize

window.onload函数:

window.onload = function() {
initialize();
document.getElementById("calcDirections").onclick = function() {
if ($("#city").val() != null && $("#city").val() != "") {
findRoute();
} else {
alert("Please Enter a City");
}

}; // end onclick

$(".areaList").on("click", "a", function(e) {
e.preventDefault();
var placeID = $(this).attr("href");
locationRoute(placeID);
}) // end onclick

};

问题函数:

function locationRoute(locationID) {
var start = "ChIJfbJ8AyaId4gR4XCrciru2Qc";
var end = new google.maps.Place(locationID);
alert(locationID);
var request = {
origin: start,
destination: end,
travelMode: google.maps.TravelMode.DRIVING
}; // end request object
directionsService.route(request, function(result, status) {
if (status == google.maps.DirectionsStatus.OK) {
directionsDisplay.setDirections(result);
document.getElementById("getDirectionButton").click();
} else {
alert(status);
}// end if
}); // end route
} // end findRoute

我尝试过将地点 ID 作为字符串传递,但没有成功。我尝试给它们添加前缀,但再次没有成功。从 Google 文档看来,需要创建一个 google.maps.Place 对象,但是如何创建呢?我查阅了文档( https://developers.google.com/android/reference/com/google/android/gms/location/places/Place#getId() ),但没有看到构造函数。我该如何解决这个问题?非常感谢。

最佳答案

试试这个

directionsService.route({
origin: {placeId: start},
destination: {placeId: locationID}
...

关于javascript - Google map Api - 将 google.maps.Place 传递给方向服务,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39708195/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com