Мне нужно сделать карту 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);
Вы можете прямо сделать это, не нужно использовать ajax-вызов.
var road =;
Используйте это в цикле.
Var Markers = '';
для (var j = 0; j <; j++) {дороги [j] ['latutude'];}
Надеюсь это поможет.
есть две проблемы с кодом:
Вы никогда не вызываете функцию, которая вызывает вызов AJAX. Вы назначаете функцию переменной json
, но никогда ее не называете.
Вы не можете вернуть результат асинхронного вызова из функции. Функция вернется до того, как результат достигнет.
Не помещайте код в функцию, которую вы не используете. Создайте маркеры в обратном вызове вызова 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!'
});
}
}
});