【发布时间】:2017-12-16 19:40:46
【问题描述】:
我一直在使用快递计算器来计算从一个位置到另一个位置的包裹递送成本,此功能正在运行,但是我想在 google 地方自动完成 API 中添加以自动完成输入字段以开始和结束地点。
我已尝试将 places 键添加到 google 脚本请求中,但它会使整个应用程序崩溃
这只是谷歌方向 API 和应用程序 JS 的问题:
https://jsfiddle.net/1k8035gt/
var directionDisplay;
var directionsService = new google.maps.DirectionsService();
var map;
function initialize() {
directionsDisplay = new google.maps.DirectionsRenderer();
var northampton = new google.maps.LatLng(52.2405, 0.9027);
var myOptions = {
zoom: 12,
mapTypeId: google.maps.MapTypeId.ROADMAP,
center: northampton
}
map = new google.maps.Map(document.getElementById("map_canvas"),
myOptions);
directionsDisplay.setMap(map);
}
function calcRoute() {
var start = document.getElementById("start").value;
var end = document.getElementById("end").value;
var distanceInput = document.getElementById("distance");
var distanceInputMiles = document.getElementById("distance_miles");
var roundtripInput = document.getElementById("round_trip_miles");
var finalcostInput = document.getElementById("finalcost");
var billableInput = document.getElementById("billable_miles");
var unitsInput = document.getElementById("units");
var travelCostInput = document.getElementById("travel_cost");
var parcelweight = $("#parcel_weight").val();
var additions = 0;
//DEFINE MY VARS
if ($("#van_type").val() == 'SMALL') {
additions+=5;
console.log(additions);
}
if ($("#van_type").val() == 'SWB') {
additions+=10;
console.log(additions);
}
if ($("#van_type").val() == 'LWB') {
additions+=15;
console.log(additions);
}
if ($("#van_type").val() == 'XLWB') {
additions+=20;
console.log(additions);
}
console.log(parcelweight);
var request = {
origin: start,
destination: end,
travelMode: google.maps.DirectionsTravelMode.DRIVING
};
directionsService.route(request, function(response, status) {
if (status == google.maps.DirectionsStatus.OK) {
directionsDisplay.setDirections(response);
var distance_km = response.routes[0].legs[0].distance.value /
1000
var distance_mi = Math.round( distance_km * 0.6214 );
var roundtrip = distance_mi * 2;
var finalcost = additions + roundtrip;
distanceInputMiles.value = distance_mi;
roundtripInput.value = roundtrip;
finalcostInput.value = finalcost;
}
});
}
initialize();
【问题讨论】:
-
我的 [fiddle]() 出现 javascript 错误,
Uncaught InvalidValueError: initAutocomplete is not a function。您如何使用自动完成功能?
标签: jquery google-maps-api-3 google-places-api