2013-06-29 4 views
-3

У меня есть некоторые проблемы в моем коде, так что я хочу получить latlng моего имени адреса/города из двух текстовых полей, после чего я преобразую его в положение latlng и position 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); 
    // }); 
    } 

}

+0

возможно дубликат [Как соединить две точки на карте Google ..?] (Http://stackoverflow.com/questions/15773388/how-to-connect-two-points-in-google-map) – geocodezip

+0

да я нашел ответ на этот вопрос url для рабочего примера: http://www.geocodezip.com/v3_SO_drawLineFroGeocodedResults.html – Anup

+0

Но все еще вопрос в том, что такое ошибка в моем коде? – Anup

ответ

0
/*This is script*/ 

    var x=0; 
    var map; 
    var prepath; 
    var path = null; 
    var current_lat = 28.6667; 
    var current_lng = 77.2167; 
function initialize() { 
    var myLatLng = new google.maps.LatLng(28.6667, 77.2167); 
    var mapOptions = { 
    zoom: 3, 
    center: myLatLng, 
    mapTypeId: google.maps.MapTypeId.TERRAIN 
    }; 

    map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions); 
    //alert("sdf") 

google.maps.event.addListener(map, "click", function (e) { 
    //delete old 
     //alert("sdf123") 
    prepath = path; 
    if(prepath){ 
     prepath.setMap(null); 
    } 
    current_lat = e.latLng.lat(); 
    current_lng = e.latLng.lng(); 

    var flightPlanCoordinates = [    
      new google.maps.LatLng(39.9100, 116.4000),    
      new google.maps.LatLng(35.6833, 139.7667)    
    ]; 
    var polyline; 
    polyline = new google.maps.Polyline({ 
     path: flightPlanCoordinates, 
     strokeColor: "#FF0000", 
     strokeOpacity: 1.0, 
     strokeWeight: 2 
    }); 
    //new polyline 
    polyline.setMap(map); 
    // assign to global var path 
    path = polyline; 
    }); 

} 


google.maps.event.addDomListener(window, 'load', initialize); 


/*this is html*/ 

<div id="map-canvas"></div> 
    <div id="textboxContainer" style="width:100%; height:40px; top:0; position:absolute;"> 
     From : <input type="text" name="travelFrom" id="travelFrom"> &nbsp; To : <input type="text" name="travelTo" id="travelTo" onBlur="getRoute()"> 
    </div> 
+0

Это полностью рабочий пример вам нужно добавить html в свой html и скрипт между тегами скрипта – Anup

0

Одна проблема

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

from_latlng и to_latlng уже google.maps.LatLng объекты.

+0

да, вы правы, я изменил это и обновил вопрос также – Anup

Смежные вопросы