我有个问题。我知道在Google map 中,GDirections.loadFromWayPoints的限制为25个GLatLng对象。我想要的是设定300分的路线。

我怎样才能做到这一点?我想到的解决方案是使用25个位置的数组,然后调用loadFromWaypoints,创建另一个25个位置的数组,然后调用loadFromWayPoints,依此类推,但是当我这样做时,我只能看到 map 中的第一个数组。

有什么建议么?

这是我的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);
}

最佳答案

PathPolyline可以完成此工作:https://github.com/spinningcode/PathPolyline

从其描述:



readme file具有一些用法说明和演示代码,您可能会发现它们对您有帮助。

关于javascript - 使用Google Maps API v2的loadFromWaypoints包含25个以上的点,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8271176/

10-12 00:00