Gmaps LatLng不读取我的数据

时间:2014-09-23 08:22:54

标签: javascript php jquery google-maps

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

但是,如果我使用我的对象将数据传递给LatLng,则结果为零。

这在控制台中返回“46.00,45.00”:

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

这会为Google地图设置我的标记:

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

BUT!如果我这样写它没有任何反应:

var data = jQuery.parseJSON(data);

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

2 个答案:

答案 0 :(得分:5)

当您需要将2个参数作为数字传递时,您只需将data[0].coords作为字符串传递一个参数,如documentation中所述:

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

您需要在以下之前拆分coords变量:

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

答案 1 :(得分: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
});