一切都应该没问题,但事实并非如此。没有控制台错误,没有。我的对象的结果在控制台中正确显示,如果我手动输入坐标,我的标记设置正确。
但是,如果我使用我的对象将数据传递给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
});
答案 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
});