Я пытаюсь взять все геоинтеграции из класса на parse.com и показать их как маркеры на карте google. (Только о 1 geoipoin, широчайшие LNG, работает как шарм, так вот код)Показать все геоданные parse.com на картах google
function businessProfile(uid) {
Parse.initialize("APPID", "JSKEY");
var bprofile = Parse.Object.extend("magazia");
var query = new Parse.Query(bprofile);
query.notEqualTo("objectId", null);
query.find({
success: function(results) {
for (var i = 0; i < results.length; i++) { var object = results[i];
var locationsBlock = {};
locationsBlock = JSON.parse(JSON.stringify(object));
var location = {};
location = JSON.parse(JSON.stringify(locationsBlock.latlon));
var lat = location.latitude;
var lon = location.longitude;
var magname = object.get('name');
setData(magname, lat, lon);
}
},
error: function(error) {
alert("Error: " + error.code + " " + error.message);
}
});
}
Так с кодом выше я получаю все geopoints из 16 различных строк и я подталкивать их в массив (я надеюсь, что я делаю это правильно), какой массив объявлен вне функции, потому что я вызываю его снова на функцию инициализации карты ниже.
function initMap() {
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 3,
center: {lat: 34.9, lng: 111.2}
});
setMarkers(map);
}
function setData(magname, lat, lon){
var arlat = [];
arlat.push(magname, lat, lon);
console.log(arlat);
}
function setMarkers(map) {
for (var i = 0; i < arlat.length; i++) {
var arlat = arlat[i];
var marker = new google.maps.Marker({
position: {lat: arlat[1], lng: arlat[2]},
map: map,
title: arlat[0]
});
}
}
Итак, теперь я зациклен на том, как разместить каждый геосайт на карте с помощью маркеров. Я знаю, что это связано с циклом «за цикл», но я застрял там. Теперь он показывает только первый в списке маркер, и я хочу показать им все.
UPDATE
Так один обновление моего кода я уже успел пройти все имена и Lat Lon, что я получаю от моего класса в разборе и теперь я положил их в function setData()
Теперь вопрос в том, как я могу передать массив arlat в setMarkers()
, так как функция setMarkers принимает переменную map
из initMap()
, и я хочу, чтобы она также взяла массив arlat
из функции setData()
, поэтому я могу напечатать в правой части lat lon и имя? Вот предварительный просмотр console.log(arlat)
Спасибо за предложение, ваш пример берет снова только первый результат, и я получаю сообщение консоли «Не удается прочитать свойство„Foreach“неопределенный» –
Также вы оставили первый маркер и если я прокомментирую это, чтобы взять остальную часть кода positionObject не определен:/ –
извините за мое невежество, но в вашем примере вы сами задаете данные, 'setData ('a', 34.0,111.2); setData ('v', 30.1,116.3), 'вот где я застрял, чтобы взять все имена и лат-лон из разбора. Не могли бы вы также обновить код и код синтаксического анализа? –