2011-11-25 43 views
4

我遇到了問題。我知道在谷歌地圖中,​​GDirections.loadFromWayPoints限制爲25個GLatLng對象。我想要的是制定一個300點的路線。使用Google Maps API v2從超過25點的loadFrompoints點數

我該怎麼做?我想到的解決方案是使用25個位置的數組,然後調用loadFromWaypoints,創建25個位置的另一個數組,然後調用loadFromWayPoints等,但是當我這樣做時,我只能看到地圖中的第一個數組。

有什麼建議嗎?

這裏是我的ajax功能,它試圖做我所描述的:

function ajaxFunction(url){ 
    var ajaxRequest; // The variable that makes Ajax possible! 

    try{ 
     // Opera 8.0+, Firefox, Safari 
     ajaxRequest = new XMLHttpRequest(); 
    } catch (e){ 
     // Internet Explorer Browsers 
     try{ 
      ajaxRequest = new ActiveXObject("Msxml2.XMLHTTP"); 
     } catch (e) { 
      try{ 
       ajaxRequest = new ActiveXObject("Microsoft.XMLHTTP"); 
      } catch (e){ 
       // Something went wrong 
       alert("Your browser broke!"); 
       return false; 
      } 
     } 
    } 
    // Create a function that will receive data sent from the server 
    ajaxRequest.onreadystatechange = function(){ 

     var dirMap = new GMap2(document.getElementById("map")); 
     if(ajaxRequest.readyState == 4){ 

      var cnt = 0; 
      var cen = 0; 
      var rta = ajaxRequest.responseText.split("^"); 

      for (var i = 0; i<(rta.length) -1; i++) 

      { 

      var reg = rta[i].split("$"); 
      var lat = reg[0]; 
      var lng = reg[1]; 

      if (cnt == 24) { 

       var marker = new GMarker(arrayWP[1]); 
       dirMap.addOverlay(marker); 
       if (cen == 0) { 
        dirMap.setCenter(arrayWP[0], 12); 
        cen = 1; 
       } 
       dirMap.setUIToDefault(); 

       directions = new GDirections(dirMap); 
       directions.loadFromWaypoints(arrayWP); 
       arrayWP[0] = new GLatLng(lat,lng); 
       cnt = 1; 

      } 
      else 
      { 
       arrayWP[cnt] = new GLatLng(lat,lng); 
       cnt++; 
      } 

      } 

     /* if (cen == 0) { 
       var marker = new GMarker(arrayWP[1]); 
       dirMap.addOverlay(marker); 
       if (cen == 0) { 
        dirMap.setCenter(arrayWP[0], 12); 
        cen = 1; 
       } 
       dirMap.setUIToDefault(); 

       directions = new GDirections(dirMap); 
       directions.loadFromWaypoints(arrayWP); 
      }*/ 

     }  
    }        

    ajaxRequest.open("GET", url, true); 
    ajaxRequest.send(null); 
} 

回答

4

PathPolyline這項工作:https://github.com/spinningcode/PathPolyline

從它的描述:

PathPolyline是一個簡單的庫,可用於使用GDirection.loadFromWaypoints方法(Google Map API V2)繞過最大數量的路點25點限制。

readme file有一些使用說明和演示代碼,您可能會發現有幫助。

+0

我已經給你的答案增加了一些細節。雖然你給出的鏈接確實回答了這個問題,但我們鼓勵周圍的細節,以便如果鏈接永遠死掉,答案並不完全沒有用。只是要記住幫助你。歡迎來到SO,順便:) – 2012-01-30 12:02:21