Я создал набор маркеров в моем views.py
и установил их видимыми в false при инициализации карты.
views.py
markerList = {}
sp1Marker = maps.Marker({
'position': latlng,
'map': gmap,
'icon': image,
'draggable': True,
'title': "SP 1"
});
markerList.update({"sp1":sp1Marker})
markerList["sp1"].setVisible(False)
Я также добавил прослушиватель событий для определения уровня масштабирования карты в моем default.js
отправке сообщения на views.py
views.py
maps.event.addListener(gmap, 'zoom_changed', 'gmap.zoom_Changed')
default.js
window.gmap = {
zoom_Changed: function() {
var args = {
type: "GET",
data: {"dataA":"True"},
url: "/helper/",
dataType: "json",
success: function(data, status, XMLHttpRequest) {
if (eval(data.valid)) {
alert("data valid");
} else {
alert("data not valid");
}
}
};
$.ajax(args);
}
};
views.py
if request.is_ajax():
markerList["sp1"].setVisible(True)
print "visible: %s" % markerList["sp1"].getVisible()
rdict = {"valid":"true"}
json = simplejson.dumps(rdict, ensure_ascii=False)
return HttpResponse(json, mimetype="application/javascript")
Результат печати - visible: True
, и все же маркер не появился на карте.
Редактировать Как передать маркерList ["sp1"] .setVisible (False) из views.py в default.js?Или уведомить JS о появлении нового набора?