Javascript-форум (https://javascript.ru/forum/)
-   Backbone.js (https://javascript.ru/forum/backbone/)
-   -   Backbone google map api with markers from json files (https://javascript.ru/forum/backbone/43381-backbone-google-map-api-markers-json-files.html)

yloboda 03.12.2013 18:12

Backbone google map api with markers from json files
 
Мне необходимо создать backbone карту google map с маркерами. Маркеры будут грузиться с json файла. Имеется три json файла и на каждый клик будут загружаться маркеры с каждого файла свои.

Я застряла на маркерах. Они у меня не появляются. Не могу понять почему. Вот мой код:
(function($) {
var Map = Backbone.Model.extend({})
var MapView = Backbone.View.extend({    
    initialize: function(opts) {
        _.bindAll(this, 'render');
        this.render();
    this.markers();
    },
    render: function() {
        var latlng = new google.maps.LatLng(this.model.get('latitude'), this.model.get('longitude'));
        var options = {
            zoom: 6,
            center: latlng,
            mapTypeId: google.maps.MapTypeId.ROADMAP
        };  
        this.map = new google.maps.Map(this.el, options);           
        return this;
    },      
    markers: function() {
        $.ajax({ 
          'async': true, 
          'global': false, 
          'url': "file:///D:/Work/Done/js/data1.json", 
          'dataType': "json", 
          'success': function (data) {
          console.log('MAP');
            for (var i = 0, length = data.length; i < length; i++) {
              var item = data[i];
              var latLng2 = new google.maps.LatLng(item.latLon.lat, item.latLon.lon); 
              var marker = new google.maps.Marker({
                position: latlng2,
                map: map,
                title: 'Hello World!'
              });
            } 
          }
        });   
        var map = this.map;         
        return this;
    }
}); 
var map = new Map({
    latitude: "55.660058",
    longitude: "12.521015",
})
var map_view = new MapView({
    el: $('.map')[0],
    model: map,
});

Любому совету буду благодарна. Спасибо!

Илья Кантор 03.12.2013 18:41

Возможно, дело в том, что в строке 38 присвоение map идёт, перенесите эту строку в начало метода markers.


Часовой пояс GMT +3, время: 08:17.