【发布时间】:2017-06-10 23:31:14
【问题描述】:
对于一个学校项目,我必须使用 Intel XDK、jQuery Mobile 和 API 制作一个应用程序。我想制作一个应用程序,您可以在其中制作路线并在 google-maps-map 上显示该路线(例如用于查看您的旅行的 travelapp)。
我使用了 Intel XDK(HTML5 + Cordova 和 App Designer)并从 Google Maps Javascript API 获得了一个 API 密钥。
现在,我已经使用了 Google Maps API,并且显示从 A 到 B 的路线很顺利。在以下代码中(这是在我的脚本中),我尝试将航点添加到我的路线中。在我的 HTML 代码中,我为用户提供了三个文本输入(开始、通过 (=waypoint)、结束)、地图和显示路线的按钮。我查看了许多示例代码,但我的代码不起作用,我不知道为什么。没有错误,但如果你按下显示按钮,什么也不会发生。我做错了什么或错过了什么?
希望任何人都可以帮助并提前致谢!
var directionDisplay;
var directionsService = new google.maps.DirectionsService();
function initMap() {
var latlng = new google.maps.LatLng(41.850033, -87.6500523);
// set direction render options
//var rendererOptions = { draggable: true };
directionsDisplay = new google.maps.DirectionsRenderer({map: map});
var myOptions = {
zoom: 14,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP,
mapTypeControl: false
};
// add the map to the map placeholder
var map = new google.maps.Map(document.getElementById("gmap"),myOptions);
directionsDisplay.setMap(map);
calcRoute();
}
function calcRoute() {
var start = $('#start-input').val();
var via = $('#via-input').val();
var end = $('#end-input').val();
var waypts = [];
waypts.push({
location: via,
stopover: true
});
var request = {
origin: start,
destination: end,
waypoints: waypts,
optimizeWaypoints: true,
unitSystem: google.maps.UnitSystem.IMPERIAL,
travelMode: google.maps.DirectionsTravelMode.DRIVING
};
directionsService.route(request, function(response, status) {
if (status == google.maps.DirectionsStatus.OK) {
directionsDisplay.setDirections(response);
} else {
alert('Directions request failed due to ' + status);
}
});
}
function createMarker(latlng) {
var marker = new google.maps.Marker({
position: latlng,
map: map
});
}
/* button #show-btn */
$(document).on("click", "#show-btn", function(evt) {
initMap();
createMarker(start);
createMarker(via);
createMarker(end);
return false;
});
【问题讨论】:
标签: javascript cordova google-maps google-maps-api-3 intel-xdk