我有一张Google地图,我希望使用预先填充的路线自动加载(取自一系列PHP表单提交)。
目前,PHP表单最终会出现在其上有Google Map的页面中,以及一些预先填充起始点和结束点的下拉框(来自之前的PHP表单提交),以及下载的onChange函数 - 向下计算路线的菜单(onChange="calcRoute();"
,在下面的示例中)。这样可以正常工作,但实际上,每个最终形式最终都只有一个路线选项。因此,让用户“选择”路径的起点和终点是没有价值的 - 每个下拉菜单中只有一个选项,所以我不妨在页面中自动加载这些选项和计算出的路径负荷。
有没有办法做到这一点?
我的路线功能如下:
<script src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script>
<?PHP
$Start_latLng = $_POST["start-latitude"] . ", " . $_POST["start-longitude"];
$End_latLng = $_POST["end-latitude"] . ", " . $_POST["end-longitude"];
?>
<script>
var directionDisplay;
var directionsService = new google.maps.DirectionsService();
var map;
function initialize() {
directionsDisplay = new google.maps.DirectionsRenderer();
var mapOptions = {
zoom:7,
mapTypeId: google.maps.MapTypeId.ROADMAP,
center: new google.maps.LatLng(54.219218, -2.905669)
}
map = new google.maps.Map(document.getElementById('map_canvas'), mapOptions);
directionsDisplay.setMap(map);
}
function calcRoute() {
var start = document.getElementById('start').value;
var end = document.getElementById('end').value;
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);
}
});
}
</script>
...我的下拉菜单由PHP $ _POST函数的结果填充。
显然,在我计算路线之前,我需要等待地图加载,因此可能需要注入暂停 - 任何想法?
答案 0 :(得分:0)
感谢@Robot Woods: 你能解雇calcRoute();作为初始化函数的最后一行? - 机器人伍兹