0

嗨,大家好,我有一個谷歌地圖,座標是通過解析XML數據。此腳本基於econym的網站,我使用的是Google Maps的V3。現在的事情是我能夠正確顯示標記,但多段線不是一條線,而是從一個標記到另一個標記,因此它看起來像一個不應該發生的多邊形。折線錯誤線

<script type="text/javascript"> 
var select_html = ""; 
     var gmarkers = []; 
     var map = null; 

    function createMarker(latlng, name, html) { 
     var contentString = html; 
     var marker = new google.maps.Marker({ 
     position: latlng, 
     map: map, 
     zIndex: Math.round(latlng.lat()*-100000)<<5 
     }); 

     google.maps.event.addListener(marker, 'click', function() { 
     infowindow.setContent(contentString); 
     infowindow.open(map,marker); 
     }); 

     gmarkers.push(marker); 

     return marker; 
} 

//function createPolyline 

function initialize() { 

    var myOptions = { 
    zoom: 16, 
    center: new google.maps.LatLng(<?php echo $row['latitude']?>, <?php echo $row['longitude']?>), 
    mapTypeControl: true, 
    mapTypeControlOptions: {style: google.maps.MapTypeControlStyle.DROPDOWN_MENU}, 
    navigationControl: true, 
    mapTypeId: google.maps.MapTypeId.ROADMAP 
    } 

    map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); 

    google.maps.event.addListener(map, 'click', function() { 

    infowindow.close(); 

    }); 



    // Read the data from 100.xml 

    downloadUrl("phpsqlajax_genxml.php?id=<?= $_GET['lgid']?>", function(doc) { 
    var xmlDoc = xmlParse(doc); 
    var markers = xmlDoc.documentElement.getElementsByTagName("marker"); 
    var path = []; 
    for (var i = 0; i < markers.length; ++i) { 
     var lat = parseFloat(markers[i].getAttribute("lat")); 
     var lng = parseFloat(markers[i].getAttribute("lng")); 
     var point = new google.maps.LatLng(lat,lng); 
     var html = markers[i].getAttribute("html"); 
     var label = markers[i].getAttribute("label"); 
     var marker = createMarker(point,label,html); 

    path.push(marker.position); 
    } 
    var polyline = new google.maps.Polyline({  
        path: path,  
        strokeColor: "#FF0000" 
    });  
    polyline.setMap(map); 


    }); 
} 



var infowindow = new google.maps.InfoWindow(

    { 

    size: new google.maps.Size(150,50) 

    }); 

你介意考慮看看?謝謝!

+0

你必須使用方向,如果你想折線應該在道路上... –

回答

0

我有一個類似的問題,它正在做你正在談論的事情,而且它必須完全按照路標失靈的事實來做。反過來,由directionsRenderer顯示的路線又回到了本身,並且根本不像本應該顯示的那樣。所以,我的建議是檢查你的航點的順序。

+0

是的,我已經工作了:) :)) –