2014-01-09 4 views
0

У меня есть следующий код, который рисует линию на картах Google из координат из файла XML. Однако я хочу, чтобы он отображал первую координату и последнюю координату с маркером места. Мне удалось сделать это без рисования линии, следуя инструкциям здесь:Добавление маркеров места в Google Map

https://developers.google.com/maps/articles/phpsqlajax_v3?csw=1

, но не могу показаться, чтобы иметь возможность интегрировать 2. т.е. Проведем линию и имеют место маркеры в начале и в конце ,

Я уверен, что это всего лишь крошечный код. Мне нужно добавить код, который у меня уже есть, но я разрушаю свой поезд, пытаясь его обработать. Любая помощь будет принята с благодарностью.

<!DOCTYPE html > 
    <head> 
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no" /> 
    <meta http-equiv="content-type" content="text/html; charset=UTF-8"/> 
    <title>PHP/MySQL & Google Maps Example</title> 
    <script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false"></script> 
    <script type="text/javascript"> 
    //<![CDATA[ 

    var customIcons = { 
     restaurant: { 
     icon: 'http://labs.google.com/ridefinder/images/mm_20_blue.png' 
     }, 
     bar: { 
     icon: 'http://labs.google.com/ridefinder/images/mm_20_red.png' 
     } 
    }; 

function load() { 
    var point; 
        var flightPlanCoordinates=new Array(); 
      var map = new google.maps.Map(document.getElementById("map"), { 
       center: new google.maps.LatLng(50.431, -3.202), 
       zoom: 9, 
       mapTypeId: google.maps.MapTypeId.ROADMAP, 
       mapTypeControl: false, 
       mapTypeControlOptions: { 
       style: google.maps.MapTypeControlStyle.HORIZONTAL_BAR 
       }, 
       navigationControl: true, 
       navigationControlOptions: { 
        style: google.maps.NavigationControlStyle.SMALL 
       } 
      }); 

      downloadUrl("phpsqlajax_genxml.php", function(data) { 
     var xml = data.responseXML; 

     var markers = xml.documentElement.getElementsByTagName("marker"); 
     for (var i = 0; i < markers.length; i++) { 
      point = new google.maps.LatLng(
       parseFloat(markers[i].getAttribute("lat")), 
       parseFloat(markers[i].getAttribute("lng"))); 
      flightPlanCoordinates[i]=point; 

      } 

      var flightPath = new google.maps.Polyline({ 
    path: flightPlanCoordinates, 
    strokeColor: "#FF0000", 
    strokeOpacity: 1.0, 
    strokeWeight: 2 
    }); 

    flightPath.setMap(map); 

     }); 

     } 

     function downloadUrl(url, callback) { 
     var request = window.ActiveXObject ? 
      new ActiveXObject('Microsoft.XMLHTTP') : 
      new XMLHttpRequest; 

     request.onreadystatechange = function() { 
     if (request.readyState == 4) { 
      request.onreadystatechange = doNothing; 
      callback(request, request.status); 
     } 
     }; 

     request.open('GET', url, true); 
     request.send(null); 
    } 
    function doNothing() {} 

//]]> 

    </script> 

    </head> 

    <body onload="load()"> 
    <div id="map" style="width: 500px; height: 300px"></div> 
    </body> 

</html> 

ответ

0

В коде, который вы публикуемую выше, вы никогда не добавить свои маркеры на карте, которая осуществляется с помощью следующего кода:

var marker = new google.maps.Marker({ 
    map: map, //The Map Object 
    position: point //The location of the Marker 
}); 

Вы хотели бы поместить это заявление в ваш для когда вы перебираете точки GPS, и если это первая итерация или последняя итерация в цикле, чем добавьте маркер. Вы можете сделать свою полилинию после цикла, как вы делаете в своем опубликованном примере.

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