如何从JavaScript访问字典
我想访问关键值“lat”和“lng”。但是,出现以下错误。如何从JavaScript访问字典,javascript,google-maps,google-maps-api-3,Javascript,Google Maps,Google Maps Api 3,我想访问关键值“lat”和“lng”。但是,出现以下错误。 未捕获类型错误:无法读取未定义的值的属性“lat”是具有lat和lng属性的对象,如下所示: $(function() { $.get("https://firststep-2016.appspot.com/Map", function() { var dataSet = [{ "lat": 35.964642464800001, "lng": 127.8646424648 }, {
未捕获类型错误:无法读取未定义的
值的属性“lat”
是具有lat
和lng
属性的对象,如下所示:
$(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
});
});
});
});
不需要值[i][“lat”]
或者(但不必要地)您可以使用dataSet[i]
(因此使用dataSet[i][“lat”]
和dataSet[i][“lng”]
)访问value
给定的相同对象。为了清楚起见,我指出了这一点,希望你们能看到发生了什么
最后,jQuery的
实用程序$。每个
方法都是不必要的。这里处理的是数组,只需使用forEach
:
$.each(dataSet,function(i,value){
var marker = new google.maps.Marker({
position: new google.maps.LatLng(value["lat"],value["lng"]),
map: map,
draggable: false});
});
如果您放置调试器代码>在您的$中。每个,值[i]
的值是多少?请务必查看文档并询问您。你的解决方案对我很有用。但我遇到了另外一个问题。Ajax并没有从python接收数据。这是我的python类。类getLatLng(webapp2.RequestHandler):def get(self):db=connect_to_cloudsql()cursor=db.cursor()cursor.execute(“”“从用户处选择纬度、经度;”)dic={}array_list=[]用于cursor.fetchall()中的行:dic['lat']=float(行[0])dic['lng']=float(行[1])array_list.append(dic.copy())latLng=json.json转储(数组列表)db.close()返回latLng@jihyemoon-再问一个问题,我已经回答了这个问题。$.ajax({type:“get”,url:,dataType:“json”,cache:false,success:function(latLng){var map=new google.maps.map(document.getElementById(“map”),{zoom:11,center:latLng[0]});$.each(latLng,function(I,value){new google.maps.Marker({position:value,map:map});});}});它是ajax。
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
});
});