Sto cercando di mostrare un percorso tra i due marcatori, ma la mappa è sempre solo mostra la località predefinita di Irlanda e non mostra il percorsoGoogle Maps non mostrando percorso
public string DrawMapDirections(string Start,string End,string[] WayPoints)
{
string map = "<script type=\"text/javascript\" src=\"https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false\"></script>" +
"<script>" +
"var rendererOptions = { "+
"draggable: true "+
"}; " +
"var directionsDisplay = new google.maps.DirectionsRenderer(rendererOptions); " +
" var directionsService = new google.maps.DirectionsService(); " +
" var map; " +
"function initialize() { " +
"var ireland = new google.maps.LatLng(53.085222, -7.558594); " + //Default Ireland
" var mapOptions = { " +
" zoom: 7, " +
" mapTypeId: google.maps.MapTypeId.ROADMAP," +
" center: ireland " +
"}; " +
"map = new google.maps.Map(document.getElementById('map_canvas'), mapOptions); " +
"directionsDisplay.setMap(map); " +
"directionsDisplay.setPanel(document.getElementById('directionsPanel'));" +
"google.maps.event.addListener(directionsDisplay, 'directions_changed', function() { " +
"computeTotalDistance(directionsDisplay.directions); "+
"}); "+
//Call calcRoute
" calcRoute();" +
"}" +
"function calcRoute() { " +
"var start = '" + Start.Replace("'", "") + "'; " +
"var end = '" + End.Replace("'", "") + "'; " +
"var waypts = []; ";
foreach (string s in WayPoints)
{
map += "waypts.push({ " +
"location:'" + s.Replace("'","") + "'}); ";
}
map += "var request = { " +
"origin: start, " +
"destination: end, " +
"waypoints: waypts, " +
"optimizeWaypoints: document.getElementById('chkOptimizeWaypoints').checked, " +
"durationInTraffic:document.getElementById('chkDurationInTraffic').checked , " +
"provideRouteAlternatives: document.getElementById('chkProvideRouteAlternatives').checked," +
"avoidHighways: document.getElementById('chkAvoidHighWays').checked," +
"avoidTolls: document.getElementById('chkAvoidTolls').checked, " +
"travelMode: google.maps.DirectionsTravelMode.DRIVING " +
"}; " +
"directionsService.route(request, function(response, status) { " +
"if (status == google.maps.DirectionsStatus.OK) {" +
"directionsDisplay.setDirections(response);" +
"var route = response.routes[0];" +
"}" +
"});" +
" }" +
"function computeTotalDistance(result) { "+
"var total = 0; "+
"var myroute = result.routes[0]; " +
"for (i = 0; i < myroute.legs.length; i++) { "+
"total += myroute.legs[i].distance.value; "+
"} "+
"total = total/1000; "+
"document.getElementById('total').innerHTML = total + ' km'; "+
"} "+
"</script>";
return map;
}
Il punto iniziale e finale avere superato attraverso questa funzione:
GoogleMap gm = new GoogleMap();
html += gm.DrawMapDirections(start, end, waypoints.ToArray());
così per esempio l'inizio potrebbe essere qualcosa di simile - Treloggan Ind Est, Newquay, TR7 2SX, Cornwall, REGNO UNITO.
Non ricevo errori in modo da non so il motivo per cui non visualizza il percorso
Ok ecco la cosa mappa rendimenti:
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?v=3.exp&sensor=false"></script>
<script>
var rendererOptions = { draggable: true };
var directionsDisplay = new google.maps.DirectionsRenderer(rendererOptions);
var directionsService = new google.maps.DirectionsService();
var map; function initialize() {
var ireland = new google.maps.LatLng(53.085222, -7.558594);
var mapOptions = { zoom: 7, mapTypeId: google.maps.MapTypeId.ROADMAP, center: ireland };
map = new google.maps.Map(document.getElementById('map_canvas'), mapOptions);
directionsDisplay.setMap(map);
directionsDisplay.setPanel(document.getElementById('directionsPanel'));
google.maps.event.addListener(directionsDisplay, 'directions_changed',
function() {
computeTotalDistance(directionsDisplay.directions);
});
calcRoute()
;}
function calcRoute() {
var start = 'Unit 2, Hendy Industrial Estate, Hendy, SWANSEA, SA4 0XP, West Glamorgan, UNITED KINGDOM';
var end = 'Treloggan Ind Est, Newquay, TR7 2SX, Cornwall, UNITED KINGDOM';
var waypts = [];
var request = {
origin: start, destination: end,
waypoints: waypts, optimizeWaypoints: document.getElementById('chkOptimizeWaypoints').checked,
durationInTraffic:document.getElementById('chkDurationInTraffic').checked ,
provideRouteAlternatives: document.getElementById('chkProvideRouteAlternatives').checked,
avoidHighways: document.getElementById('chkAvoidHighWays').checked,avoidTolls: document.getElementById('chkAvoidTolls').checked,
travelMode: google.maps.DirectionsTravelMode.DRIVING };
directionsService.route(request, function(response, status) {
if (status == google.maps.DirectionsStatus.OK){
directionsDisplay.setDirections(response);var route = response.routes[0];}});
}
function computeTotalDistance(result) {
var total = 0;
var myroute = result.routes[0];
for (i = 0; i < myroute.legs.length; i++) {
total += myroute.legs[i].distance.value; }
total = total/1000;
document.getElementById('total').innerHTML = total + ' km';
}
</script>
Potrebbe inviare l'output reale, piuttosto che il codice del server? Inoltre, inserisci un gestore di errori nel codice nel caso in cui il routing non abbia esito positivo - dovresti ricevere un messaggio di errore – SWa
Puoi pubblicare il tuo contenuto della pagina aspx? –
@Kyle I ha inviato l'output alla domanda – user123456789