Необходимо создать карту Google с маркерами из файла JSON на backbone.js

0

Мне нужно сделать карту google с маркерами из json файла на backbone.js.
Вот базовый код js. Карта загружена. Мне нужно загрузить маркеры из 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,
});
})(jQuery);
Теги:
google-maps
google-maps-markers
backbone.js

2 ответа

0

Вы можете прямо сделать это, не нужно использовать ajax-вызов.

var road =;

Используйте это в цикле.

Var Markers = '';

для (var j = 0; j <; j++) {дороги [j] ['latutude'];}

Надеюсь это поможет.

0

есть две проблемы с кодом:

  1. Вы никогда не вызываете функцию, которая вызывает вызов AJAX. Вы назначаете функцию переменной json, но никогда ее не называете.

  2. Вы не можете вернуть результат асинхронного вызова из функции. Функция вернется до того, как результат достигнет.

Не помещайте код в функцию, которую вы не используете. Создайте маркеры в обратном вызове вызова AJAX, где результат:

$.ajax({ 
  'async': true, 
  'global': false, 
  'url': "file:///D:/Work/Done/Valtech/js/data1.json", 
  'dataType': "json", 
  'success': function (data) {
    for (var i = 0, length = data.length; i < length; i++) {
      var item = data[i],
      var latLng = new google.maps.LatLng(item.latLon.lat, item.latLon.lon); 
      var marker = new google.maps.Marker({
        position: latlng,
        map: map,
        title: 'Hello World!'
      });
    } 
  }
}); 
  • 0
    Привет, Гаффа, я пытался, но все еще не работает. Спасибо за вашу помощь.
  • 0
    @Julia: Что происходит, когда вы пытаетесь это сделать? Вы получаете сообщение об ошибке?
Показать ещё 14 комментариев

Ещё вопросы

Сообщество Overcoder
Наверх
Меню