Hola
franjgg:
Desde tu código no llego a reproducir la página. Mucho me temo que es por el CSS.
No obstante, permíteme hacer algunas observaciones:
Utilizar
v=3.exp de Google Maps, salvo que tengas una razón importante para hacerlo (es la experimental, en este momento 3.13), con el enlace
Código Javascript
:
Ver original<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?sensor=false&language=es"></script>
accedes a la versión 3.12, estable desde el 19 de febrero de 2013.
No entiendo bien lo de eliminar el marcador (entiendo que personalizado) de
end (destino). Si no existe, no hay marcador, y si existe y no lo quiero, ¿para qué crearlo?.
Sobre tu código (aparte de los estilos que he querido configurar en CSS (los tenía creados para pruebas) he definido sobre los inputs los términos de origen y destino para la mejor comprensión. Y
si el valor de origen ha de aparecere por defecto (¿Siempre el mismo?) ¿por qué no incluirlo en el valor, e incluso ocultarlo?
Código HTML:
Ver original<input type="hidden" id="start" value="37.890054, -4.778567" />
Puedes probar este código de página que creo es lo que quieres:
Código HTML:
Ver original<!DOCTYPE html>
<meta name="viewport" content="width=device-width, initial-scale=1" /> html,body{margin:0;padding:0;width:100%;height:100%;font-family:Verdana,Arial,sans serif}
#cuerpo{width:25%;height:100%;float:left;vertical-align:middle;padding:2%}
#map_canvas{width:70%;height:100%;float:right}
#cuerpo input.navi{font-size:18px;width:90%;height:30px;margin-bottom:10px}
#directions-panel{overflow:auto;height:350px}
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?sensor=false&language=es"></script> <script type="text/javascript"> <!-- //
var 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);
};
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")
}
})
}
// -->
Origen
<input type="text" id="start" value="37.890054, -4.778567" /> Destino
<input type="text" size="48" id="end" value="" /> <input type="submit" name="submit" class="navi" value="Calcular ruta" onclick="calcRoute()" /> <div id="directions-panel"> </div>
Tu
<div id="control"> puede serte útil para el estilo de los inputs de entrada de datos.