Gmaps LatLng没有';我没有读我的数据


Gmaps LatLng doesn't read my data

一切都应该很好,但事实并非如此。没有控制台错误,什么都没有。如果我手动输入坐标,我的对象的结果会在控制台中正确显示,我的标记也会正确设置。

但是,如果我将数据与对象一起传递给LatLng,则结果为零。

控制台中返回"46.00,45.00":

var data = jQuery.parseJSON(data);
console.log(data[0].coords);

这为我的谷歌地图设置了标记:

var latLng = new google.maps.LatLng(46.00,45.00);
var marker = new google.maps.Marker({
    position: latLng,
    map: map
});

但是!如果我这样写,什么都不会发生:

var data = jQuery.parseJSON(data);
var latLng = new google.maps.LatLng((data[0].coords));
var marker = new google.maps.Marker({
    position: latLng,
    map: map
});

您只需要传递一个以data[0].coords为字符串的参数,而需要传递两个以数字形式的参数,如文档中所述:

LatLng(lat:number, lng:number, noWrap?:boolean)

您需要在之前拆分coords变量

var coordinates = data[0].coords.split(",");
var latLng = new google.maps.LatLng(coordinates[0], coordinates[1]);

您正在将data.coords[0]对象完全传递给新的google.maps.LatLng

你应该把lat和lon分开,然后按如下方式传球。

var data = jQuery.parseJSON(data);
var latLng = new google.maps.LatLng(data[0].coords[0],data[0].coords[1]);
var marker = new google.maps.Marker({
    position: latLng,
    map: map
});