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