在Google地图上的回调函数中添加多个标记

时间:2014-03-01 15:54:03

标签: javascript google-maps backbone.js google-maps-markers parse-platform

我正在尝试在Google地图上添加多个标记。 但是,只是添加了最后一个。这可能是由于删除引用,但我不知道javascript如何工作。我使用Parse来管理我的数据,它像Backbone.js一样工作

query.find()返回包含两个Foo对象的promise对象。我调用buildMarker(因为我没有设法在初始化时构建标记)和addToMap,但最后,只添加了最后一个。 你能解释一下为什么会这样吗?

我告诉你我的代码:

$(function(){
var Foo = Parse.Object.extend({
    className: "Foo",
    initialize: function(){
    },

    marker: new google.maps.Marker(),
    buildMarker: function(){
        var pos = this.get("position");
        this.marker.setPosition(new google.maps.LatLng(pos.latitude, pos.longitude));   
    },
    addToMap: function(map){
        this.marker.setMap(map);
    },
    removeFromMap: function(map){
        this.marker.setMap(null)
    }
});

var query = new Parse.Query(Foo);

promise = query.find({
    success: function(results){
        alert("success : " + results.length);
    }
});

promise.then(function(foo){
    foo.forEach(function(a){
        a.buildMarker();
        a.addToMap(map);
    });
});

});

非常感谢,

0 个答案:

没有答案