2017-12-30 11 views
1

文字列値を返すJavaスクリプト関数があります。この関数をボタンクリックで呼び出すと何も返しません。値を返さないJavaスクリプト関数

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;} 

そして、ここで私はasp.netのページ内のボタンをクリックしたときに、この関数を呼び出しています:

は、ここに私の機能コードです。

<script> 

function ii() { 

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

    alert(tt); 
}</script> 

Asp.netページコード:

<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> 

すべてが正常に動作しますが、任意の値を返す関数ではありません。私はウェブ開発の新機能です。ありがとう。

答えて

0

私はあなたのコードでロジックをテストし、それは健全に見えます。あなたが望むように私はそれを得るためにそれを得ることができたが、すべてのGoogleマップのロジックをコメントにしなければならなかった。

if文にはelse文がありませんが、この文がfalseを返した場合、文字列は空になり、警告されません。

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

たぶん一致else文を追加してみてください:

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

これは、少なくともあなたに何が起こっているにいくつかのより多くの洞察力を与える必要があります。ここで

は、あなたのcalcRoute機能で新しいロジックです:

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