Google Marker不会显示用户定义的点数

时间:2013-12-02 23:14:12

标签: javascript jquery google-maps google-maps-api-3

只是想知道是否有人能告诉我如何解决我遇到过的问题?用户将坐标(例如:85.231,40.213)放入文本区域,填充和数组,拆分它们,然后尝试创建用户指定的标记。

var stringArray = document.getElementById("geos").value.split('\n');
var x = [];
var y = [];
var cords = [];
var array = stringArray.split(',');     //splits up array by ","
var j = 0;

for (var i = 0; i < array.length; i++)              //assigns broken up array into x and y values
{
    x[j] = array[i];
    i++;
    y[j] = array[i];
    j++;
}

var textarea = document.getElementById("test");
//textarea.value = stringArray.join("\n");  
//textarea.value = y;



for (var i = 0; i < stringArray.length; i++)        //assigns x and y variables to coordinates
{
    cords[i] = new google.maps.LatLng(x[i],y[i]);
}

textarea.value = cords.join("\n");

for ( var i = 0; i < cords.length; i++ )        //code that plots all the points in the array
{
    var marker = new google.maps.Marker({       //create a new marker
    position: cords[i],
    map: map,
    })

    map.addOverlay( marker );
}

当我在“stringArray”和“split(”,“)之间添加”.toString()“时,我能够将项目输出到另一个文本区域,但似乎信息不想显示。任何见解?

由于

2 个答案:

答案 0 :(得分:1)

map: map,

最后一个逗号会导致语法错误,请将其删除。

答案 1 :(得分:0)

您可能需要做的是确保您的latlng坐标正确地从字符串转换为数字。例如这可能会有所帮助,改变这一行:

cords[i] = new google.maps.LatLng(x[i],y[i]);

到此:

cords[i] = new google.maps.LatLng(parseFloat(x[i]), parseFloat(y[i]));