ジオコーダーの結果を配列に保存する際に問題が発生しました。3 つのテキスト入力フィールドがあり、それらに入力された場所の座標を取得する必要があります。これは今のところ問題なく動作しますが、これらの結果を後で処理するために配列に保存する方法がわかりません。通常の方法では機能しないようです。これまでの私のコードは次のとおりです。
var addresses = [];
var count = 0;
var address;
var results = [];
var geocoderResults = [];
function startQuery() {
while (count <= 2) {
var address = document.getElementById("query_input" + count).value;
addresses[count] = address;
alert (address);
getCoordsFromAddress(addresses[count]);
count ++;
}
alert(results[0] + ", " + results[1] + ", " + results[2]);
count = 0;
}
function getCoordsFromAddress(addressString){
var geocoder = new google.maps.Geocoder();
var addressObj = {address:addressString};
geocoder.geocode(addressObj, onGeocoderReady);
}
function onGeocoderReady(geocoderResults, status){
var lat = geocoderResults[0].geometry.location.lat();
var lng = geocoderResults[0].geometry.location.lng();
var formattedAddress = geocoderResults[0].formatted_address;
var location = lat+","+lng;
alert(location);
results[count] = location;
}
このように、最初に場所の名前を示す 3 つのアラートを受け取り、ワークフローの最後に、場所/座標/場所/座標ではなく、3 つの座標を次々に示す 3 つのアラートを受け取ります...私が試みているように、「場所」を配列に保存することはできません。しかし、私は何を間違っていますか?手伝ってくれてありがとう