2017-12-30 7 views
1

Ich habe eine Java-Script-Funktion, die einen String-Wert zurückgeben, wenn ich diese Funktion auf Knopfklick aufrufen, es nichts zurückgeben.Java-Script-Funktion, die Wert nicht zurückgibt

Hier ist mein Funktionscode:

function PlotMap(StartLat, StartLog, EndLat, EndLog) { 

var map; 
var directionsDisplay; 
var directionsService = new google.maps.DirectionsService(); 
var llList = ""; 

function initMap() { 

    map = new google.maps.Map(document.getElementById('map'), { 
     center: { lat: StartLat, lng: StartLog }, 
     zoom: 15 
    }); 


    directionsDisplay = new google.maps.DirectionsRenderer(); 
    directionsDisplay.setMap(map); 
    calcRoute(); 

} //End function initMap 


function calcRoute() { 
    var start = new google.maps.LatLng(StartLat, StartLog); 
    var end = new google.maps.LatLng(EndLat, EndLog); 
    var bounds = new google.maps.LatLngBounds(); 

    bounds.extend(start); 
    bounds.extend(end); 
    map.fitBounds(bounds); 

    var request = { 
     origin: start, 
     destination: end, 
     travelMode: google.maps.TravelMode.DRIVING 
    }; 

    directionsService.route(request, function (response, status) { 
     if (status == google.maps.DirectionsStatus.OK) { 
      directionsDisplay.setDirections(response); 
      directionsDisplay.setMap(map); 

      if (response.routes && response.routes.length > 0) { 
       var routes = response.routes; 
       for (var j = 0; j < routes.length; j++) { 
        var points = routes[j].overview_path; 
        var ul = document.getElementById("vertex"); 
        for (var i = 0; i < points.length; i++) { 
         var li = document.createElement('li'); 
         li.innerHTML = getLiText(points[i]); 
         ul.appendChild(li); 
         llList = llList + getLiText(points[i]) + "/"; 
        } 
       } 
      } 
     } else { 
      alert("Directions Request from " + start.toUrlValue(6) + " to " + end.toUrlValue(6) + " failed: " + status); 
     } 
    }); 
} //End function calcRoute 

function getLiText(point) { 
    var lat = point.lat(), 
     lng = point.lng(); 
    return "lat: " + lat + " lng: " + lng; 
} 


initMap(); 

return llList;} 

und hier ist diese Funktion auf Tastenklick in asp.net Seite nenne.

<script> 

function ii() { 

    var tt = PlotMap(26.547648, 81.529472, 26.612515, 81.354248); 

    alert(tt); 
}</script> 

Asp.net Seitencode:

<body> 
<input id="Button1" type="button" value="button" onclick="ii();"/> 
<div id="map" style="float: left; width: 70%; height: 400px;"></div> 
<ul id="vertex"> 
    <li></li> 
</ul> 

Alles funktioniert gut, aber zurückgebender Funktion keinen Wert. Bitte helfen Sie mir, ich bin neu in der Webentwicklung. Vielen Dank.

Antwort

0

Ich habe die Logik in Ihrem Code getestet und es sieht gut aus. Wie ich es bekommen konnte, um einen Stachel zurückzugeben, wie Sie wollten, aber musste alle Google Map-Logik kommentieren.

Obwohl, ich bemerkte, die unten if-Anweisung hat keine else-Anweisung deshalb, wenn diese Aussage false dann die Zeichenfolge wird leer sein und Sie werden nicht alarmiert werden.

if (response.routes && response.routes.length > 0) { 

versuchen Vielleicht eine passende else Erklärung hinzu:

} else { alert("No Routes"); } 

Dies sollte zumindest geben Ihnen einen besseren Einblick in das, was los ist. Hier

ist die neue Logik in Ihrer calcRoute Funktion:

function calcRoute() { 
    var start = new google.maps.LatLng(StartLat, StartLog); 
    var end = new google.maps.LatLng(EndLat, EndLog); 
    var bounds = new google.maps.LatLngBounds(); 

    bounds.extend(start); 
    bounds.extend(end); 
    map.fitBounds(bounds); 

    var request = { 
     origin: start, 
     destination: end, 
     travelMode: google.maps.TravelMode.DRIVING 
    }; 

    directionsService.route(request, function (response, status) { 
     if (status == google.maps.DirectionsStatus.OK) { 
      directionsDisplay.setDirections(response); 
      directionsDisplay.setMap(map); 

      if (response.routes && response.routes.length > 0) { 
       var routes = response.routes; 
       for (var j = 0; j < routes.length; j++) { 
        var points = routes[j].overview_path; 
        var ul = document.getElementById("vertex"); 
        for (var i = 0; i < points.length; i++) { 
         var li = document.createElement('li'); 
         li.innerHTML = getLiText(points[i]); 
         ul.appendChild(li); 
         llList = llList + getLiText(points[i]) + "/"; 
        } 
       } 
      } else { alert("No Routes"); } 
     } else { 
      alert("Directions Request from " + start.toUrlValue(6) + " to " + end.toUrlValue(6) + " failed: " + status); 
     } 
    }); 
} //End function calcRoute 
Verwandte Themen