実行するリストがあり、使用しているリストは必要ないが、セットアップするmarkers
かどうかを決める場合は、リストが空になるまでリストを反復処理するキューベースの方法を使用できます。
jQuery(document).ready(function ($) {
(function initialize() {
var pos = localStorage.loc.split(","),
lat = parseFloat(pos[0]),
lng = parseFloat(pos[1]),
myLatlngs = [
new google.maps.LatLng(-25.0, 131.0),
new google.maps.LatLng(-26.0, 132.0),
new google.maps.LatLng(-24.0, 130.0)
],
myLatlngs,
mapOptions = {
zoom: 4,
center: myLatlngs[0],
mapTypeId: google.maps.MapTypeId.ROADMAP
},
map = new google.maps.Map(document.getElementById('map_canvas'), mapOptions);
while (myLatlng = myLatlngs.shift()) {
new google.maps.Marker({
position: myLatlng,
map: map,
title: 'Hello World!'
});
}
})();
});
http://jsfiddle.net/userdude/Wkn9v/9/
array
ここでの「リスト」とは、プロパティではなく、プロパティを指しobject
ます。したがって、フェッチスクリプトから次のようなものが返されると仮定します。
data = [
{"id":"1","published":"yes","location":"-25.363882,131.044922"},
{"id":"2","published":"yes","location":" -24.96614015991296, 139.7900390625"},
{"id":"3","published":"yes","location":"-28.76765910569124, 128.3203125"}
];
while (localStorage.loc = data.shift()) {
pos = localStorage.loc.location.split(",");
lat = parseFloat(pos[0]);
lng = parseFloat(pos[1]);
latlang = new google.maps.LatLng(lat, lng);
marker = new google.maps.Marker({
position: latlang,
map: map,
title: 'Hello World!'
});
}
localStorage.loc
毎回上書きするので、ここで何をしているのかわかりません。省略した場合は、while (pos = ...location.split(','))
代わりに設定することができます。何をしているのか、data
スクリプトでどのように操作されているのかによって異なります。