我有个问题。我知道在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/