我想從parse.com中的一個類中提取所有的地點並將它們顯示爲Google地圖中的標記。 (大約只有1 geoipoin,緯度經度,工作就像一個魅力所以這裏是代碼)顯示在google地圖中parse.com的所有地點
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);
}
});
}
與上面的代碼我得到的16個不同的行中的所有的geopoints和我推動它們到一個數組
所以(ⅰ希望我做得很好),哪個數組聲明在函數之外,因爲我在下面的地圖初始化函數中再次調用它。
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]
});
}
}
所以,現在我堅持如何將每個地址點放入帶有標記的地圖。 我知道它與「for循環」有關,但我被困在那裏。現在它只顯示列表標記中的第一個,並且我想將它們全部顯示出來。
UPDATE
所以在我的代碼一個更新我已經成功地通過了所有我從我在解析類得到的名稱和緯度經度,現在我把它們放在function setData()
現在的問題是,我怎麼能通過在setMarkers()
arlat陣列,因爲setMarkers函數採取從initMap()
map
變量,我希望它也採用setData()
功能arlat
陣列,所以我可以打印在正確的部分拉特lon和名字?這裏的console.log(arlat)
感謝您的建議,您的例子再一次只需要第一個結果,我也得到了控制檯消息「無法讀取的未定義的屬性‘的forEach’」 –
另外你已經離開了第一標記和如果我註釋掉代碼的其餘部分,positionObject沒有被定義:/ –
對於我的無知感到抱歉,但在你的例子中,你自己設置了數據,'setData('a',34.0,111.2); setData('v',30.1,116。3);'這是我被困住的地方,把所有的名字和緯度從解析。你能否更新代碼,也請分析代碼? –