-3

コードに問題があり、最初に2つのテキストボックスから指定された住所/都市名のlatlngを取得した後、位置のlatlngと位置のlatlngに変換し、最後にこれらの間にポリラインを描画したいポイントと両方のポイントのマーカーも、しかし今、私はこれらのポイントの間に線を引こうとしています。ただし、このコードはまだ機能していません。また、コンソールにもエラーはありません。コードはあなたの助けのためにここにあります。

function getRoute(){
var from_text = document.getElementById("travelFrom").value;
var to_text = document.getElementById("travelTo").value;

if(from_text == ""){
    alert("Enter travel from field")    
    document.getElementById("travelFrom").focus();
}
else if(to_text == ""){
    alert("Enter travel to field"); 
    document.getElementById("travelTo").focus();
}
else{
    //google.maps.event.addListener(map, "", function (e) {
    var myLatLng = new google.maps.LatLng(28.6667, 77.2167);                                                           
    var mapOptions = {
        zoom: 3,
        center: myLatLng,
        mapTypeId: google.maps.MapTypeId.TERRAIN
    };                                                         
    var map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);                                                          
        var geocoder = new google.maps.Geocoder();
        var address1 = from_text;
        var address2 = to_text;
        var from_latlng,to_latlng;
            //var prepath = path;
            //if(prepath){
            //  prepath.setMap(null);
            //} 
            geocoder.geocode( { 'address': address1}, function(results, status) {
                  if (status == google.maps.GeocoderStatus.OK)
                  {
                      // do something with the geocoded result
                //    alert(results[0].geometry.location);
                      from_latlng = results[0].geometry.location;

                    //   from_lat = results[0].geometry.location.latitude;
                      // from_lng = results[0].geometry.location.longitude;

                    //  alert(from_latlng);
                  }
            });
            geocoder.geocode( { 'address': address2}, function(results, status) {
                  if (status == google.maps.GeocoderStatus.OK)
                  {
                      // do something with the geocoded result
                        to_latlng = results[0].geometry.location;
                     //  to_lat = results[0].geometry.location.latitude;
                     //  to_lng = results[0].geometry.location.longitude;
                      // results[0].geometry.location.longitude
                    //  alert(to_latlng)
                  }
            });
            setTimeout(function(){
                    var flightPlanCoordinates = [
                        new google.maps.LatLng(from_latlng),
                        new google.maps.LatLng(to_latlng)           
                    ];
                    //alert("123")
                    var polyline;   
                    polyline = new google.maps.Polyline({
                        path: flightPlanCoordinates,
                        strokeColor: "#FF0000",
                        strokeOpacity: 1.0,
                        strokeWeight: 2
                    });
                    polyline.setMap(map);       
                    // assign to global var path
                //  path = polyline;
         },4000);
    // });
    }

}

4

2 に答える 2

0

1つの問題は

 var flightPlanCoordinates = [
       new google.maps.LatLng(from_latlng),
       new google.maps.LatLng(to_latlng)           
     ];

from_latlng と to_latlng はすでに google.maps.LatLng オブジェクトです。

于 2013-06-30T23:43:18.020 に答える