コードはそのままで問題なく動作するため、これは一種の頭の体操のような質問です。私自身の脳が今私を失敗させているので、私はスタックオーバーフローに目を向けています。
Google Maps JS API を使用して住所を検索し、地図上にマーカーを配置するコード スニペットを次に示します。ただし、最初のルックアップが失敗する場合があるため、別のアドレスでプロセスを繰り返したいと考えています。
geocoder.getLatLng(item.mapstring, function(point) {
if (!point) {
geocoder.getLatLng(item.backup_mapstring, function(point) {
if (!point) return;
map.setCenter(point, 13);
map.setZoom(7);
map.addOverlay(new GMarker(point));
})
return;
}
map.setCenter(point, 13);
map.setZoom(7);
map.addOverlay(new GMarker(point));
})
( の 2 番目のパラメーターgetLatLng
はコールバック関数です。)
もちろん、マップを中心に合わせてズームし、マーカーを追加する 3 つの行が重複していることがわかります。1 回はプライマリ コールバックで、もう 1 回は「フォールバック コールバック」です (笑)。冗長性なしで全体を表現する方法を見つけることができますか? あなたのソリューションが任意の数のバックアップ マップ文字列に対して機能する場合、ボーナス ポイントを獲得できます。