5

私は問題があります。GDirections.loadFromWayPointsGoogle マップでは、25 個のオブジェクトに制限があることを知っていGLatLngます。私が望むのは、たとえば 300 ポイントのルートを作成することです。

どうやってやるの?私が考えた解決策は、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

1 に答える 1

4

PathPolyline が仕事をします: https://github.com/spinningcode/PathPolyline

その説明から:

PathPolyline は、GDirection.loadFromWaypoints メソッド (Google Map API V2) を使用して最大ウェイポイント数の 25 ポイント制限を回避するために使用できる単純なライブラリです。

readme ファイルには、役立つ使用方法とデモ コードが含まれています。

于 2012-01-30T04:33:04.343 に答える