2017-10-21 56 views
-1

我試圖在谷歌地圖中按照組合框的選擇收費differents路徑,但它不工作,我使用了一個if,但通過這種方式,地圖不會不收取折線。 這是HTML代碼:Polyline在Google地圖中根據Combobox Dinamically更改

<body> 


    <section id="mapa"> 
    </section> 

    <section id="formulario"> 
     <form action="index.html" id="seleccion"> 
     <select name="Continente" id="continente" > 
     <option value="">--Selecciona--</option> 
     <option value="NorteAmerica">Norte America</option> 
     <option value="CentroAmerica">Centroamerica</option> 
     <option value="SurAmerica">Suramerica</option> 
     <option value="Europa">Europa</option> 
     <option value="Oceania">Oceania</option> 
     <option value="Africa">Africa</option> 
    </select> 

    <select name="pagina" id="pagina"> 
     <option value="">--Selecciona--</option> 
     <option value="Google">Google</option> 
     <option value="Youtube">Youtube</option> 
     <option value="Facebook">Facebook</option> 
     <option value="Wikipedia">Wikipedia</option> 
     <option value="Baidu">Baidu</option> 
    </select> 
    <input type="submit" value="Hacer Traceroute" id="boton"/> 
</form> 
</section> 

JavaScript是在這裏:

var traza = []; 
var facebookNorteAmerica1 = [ 
    {lat:37.7749 , lng:-122.4194}, 
    {lat:40.7199 , lng:-74.0050}, 
    {lat:37.4419 , lng:-122.1430}, 
    {lat:37.4419 , lng:-122.1430}, 
    {lat:37.3394 , lng:-121.8950}, 
    {lat:37.3394 , lng:-121.8950}, 
    {lat:37.3394 , lng:-121.8950} 
    ]; 

var baiduNorteAmerica1 = [ 
    {lat:37.7749 , lng:-122.4194}, 
    {lat:40.7199 , lng:-74.0050}, 
    {lat:37.7749 , lng:-122.4194}, 
    {lat:37.3394 , lng:-121.8950}, 
    {lat:37.3394 , lng:-121.8950}, 
    {lat:41.8558 , lng:123.9233}, 
    {lat:39.9075 , lng:116.3972}, 
    {lat:39.9075 , lng:116.3972}, 
    {lat:34.7725 , lng:113.7266}, 
    {lat:23.1167 , lng:113.2500} 
    ]; 

function initMap() { 
    var map = new google.maps.Map(document.getElementById('mapa'), { 
    zoom: 3, 
    center: {lat: 0, lng: -180}, 
    mapTypeId: 'terrain' 
}); 

$("#boton").click(function(){ 
    var continente = $("#continente").val(); 
    var pagina = $("#pagina").val(); 

    if (continente == "Norte America" && pagina=="Baidu") { 
    traza = baiduNorteAmerica1; 
    }else{ 
    traza = facebookNorteAmerica1; 
    } 
}); 

var flightPath = new google.maps.Polyline({ 
    path:traza, 
    geodesic: true, 
    strokeColor: '#4800ff', 
    strokeOpacity: 1.0, 
    strokeWeight: 1 
    }); 



    flightPath.setMap(map); 
} 

我知道大概錯誤是jQuery的,因爲continente和pagina最初是 「」,但我真誠地不知道如何獲得這些值,當我點擊html按鈕。問題是總是顯示facebookNorteAmerica的折線(它轉到else)。並且始終爲地圖重新充電。也許是一個業餘愛好者,但我需要幫助。謝謝

回答

0

替換:

if (continente == "Norte America" && pagina=="Baidu") { 

由:

if (continente == "NorteAmerica" && pagina=="Baidu") { 
+0

感謝ü,我沒有注意到。如何地圖不斷充電,我做了一個console.log打印這些值。這顯示我NorteAmerica和百度,並迅速充值所有的選擇/組合框,現在的值不明確... –

+0

替換: 作者: 2017-10-21 18:47:54