$(function() {
$.get("https://firststep-2016.appspot.com/Map", function() {
var dataSet = [{
"lat": 35.964642464800001,
"lng": 127.8646424648
}, {
"lat": 36.964642464800001,
"lng": 127.8546305428
}, {
"lat": 36.969020999999998,
"lng": 127.8694266
}, {
"lat": 36.968989999999998,
"lng": 127.86950950000001
}, {
"lat": 34.064642464800002,
"lng": 122.1646424648
}, {
"lat": 36.9685652824,
"lng": 127.8693936768
}, {
"lat": 38.064642464800002,
"lng": 123.1646424648
}, {
"lat": 38.064642464800002,
"lng": 127.6646424648
}];
var option = {
zoom: 11,
mapTypeId: google.maps.MapTypeId.ROADMAP,
position: location
}
var map = new google.maps.Map(document.getElementById('map'), option);
$.each(dataSet, function(i, value) {
var marker = new google.maps.Marker({
position: new google.maps.LatLng(value[i]["lat"], value[i]["lng"]),
map: map,
draggable: false
});
});
});
});
我想访问关键值" lat"和" lng"。但是,会发生以下错误。 未捕获的TypeError:无法读取属性' lat'未定义的
答案 0 :(得分:1)
value
是具有object
和lat
属性的lng
,如下所示:
$.each(dataSet,function(i,value){
var marker = new google.maps.Marker({
position: new google.maps.LatLng(value["lat"],value["lng"]),
map: map,
draggable: false});
});
无需value[i]["lat"]
或者(但不必要地)您可以使用value
访问dataSet[i]
给出的同一对象(因此使用dataSet[i]["lat"]
和dataSet[i]["lng"]
)。我只是为了清楚起见指出了这一点,所以希望你能看到发生了什么。
最后,jQuery's
实用程序$.each
方法是不必要的。你在这里处理一个数组,只需使用forEach
:
dataSet.forEach(function(latLng) {
(new google.maps.Marker({
position:latLng, //see LatLngLiteral (below)
map:map,
//draggable is false by default, no need to specify draggable:false
});
});