Tu idea es válida pero para que funcione has de recargar la página ya que en la
function calcRoute() no comprobará si
end.value contiene algo.
El código javascript completo sobre lo que te enviaba, quedaría así:
Código Javascript
:
Ver originalvar map;
var directionsDisplay = new google.maps.DirectionsRenderer();
var directionsService = new google.maps.DirectionsService();
window.onload = function () {
var latlng = new google.maps.LatLng(37.890054, -4.778567);
var opciones = {
center: latlng,
zoom: 14,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
map = new google.maps.Map(document.getElementById('map_canvas'), opciones);
if (document.getElementById('end').value == '') {
var imagen = new google.maps.MarkerImage('http://www.dondelocompro.es/img/nuevas/home/ico_pincho.png', new google.maps.Size(20, 32), new google.maps.Point(0, 0), new google.maps.Point(0, 32), new google.maps.Size(20, 32));
var marker = new google.maps.Marker({
position: latlng,
map: map,
title: 'Titulo',
icon: imagen
});
}
};
function calcRoute() {
var start = document.getElementById('start').value;
var end = document.getElementById('end').value;
var request = {
origin: start,
destination: end,
travelMode: google.maps.TravelMode.WALKING
};
directionsService.route(request, function (response, status) {
if (status == google.maps.DirectionsStatus.OK) {
directionsDisplay.setMap(map);
directionsDisplay.setPanel(document.getElementById('directions-panel'));
directionsDisplay.setDirections(response)
} else {
alert("No existen rutas entre ambos puntos")
}
});
window.onload();
}
Muy importante
window.onload(); al final de la
function calcRoute()