お世話になっております。
ゼンリンいつもNAVIというマップシステムを使用して、緯度経度から最寄り駅を検索するというコードを記載しております。
コードは以下の通りです。
====================================================
//####################################################
// 地図をロード
//####################################################
function loadMap(){
// document.write を定義します
var nativeWrite = document.write;
document.write = function(html) {
var m = html.match(/script.+src=“([^”]+)"/);
if (m) { load(m[1]);}
else { nativeWrite(html); }
};
load(“[https://api.its-mo.com/cgi/loader.cgi?key=\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*\*&ver=2.0&api=zdcmap.js,control.js,submap.js,shape.js,geo.js,userwidget.js,search.js,geojson-1.0.js](https://api.its-mo.com/cgi/loader.cgi?key= **************** &ver=2.0&api=zdcmap.js,control.js,submap.js,shape.js,geo.js,userwidget.js,search.js,geojson-1.0.js)”);
}
//####################################################
// 地図がロードされるまで待機する(詳細画面)
//####################################################
function waitLoaded_detail(event, mode, timeout, interval) {
setTimeout(function() {
var remainingTime = timeout - interval;
if (typeof ZDC === ‘object’) {
// console.log(mode);
// 詳細画面の場合
return setLocationDetail(event);
} else if (timeout > 0) {
waitLoaded_detail(event, mode, timeout, interval);
} else {
//abort
}
}, interval);
}
//####################################################
// 最寄り駅検索
//####################################################
function setLocationDetail(event) {
// レコード情報を取得します
var rec = event[‘record’];
// 緯度・経度が入力されていれば、緯度・経度から最寄り駅を算出します
if (rec[‘lat’][‘value’] || rec[‘lng’][‘value’]){
/* 検索地点の緯度経度 */
var point = new ZDC.LatLon(rec[‘lat’][‘value’], rec[‘lng’][‘value’]);
/* 周辺の駅検索を実行 */
ZDC.Search.getStationByLatLon({
latlon: point
},function(status, res) {
if (status.code == ‘000’) {
/* 取得成功 */
nearest_station(status, res);
console.log(“取得成功”);
} else {
/* 取得失敗 */
alert(status.text);
console.log(“取得失敗”);
}
});
function nearest_station(status, res) {
var ns_item = res.item;
var ns_res = “”;
console.log(“ヒット数:” + ns_item.length);
for (var i = 0, j = ns_item.length; i<j; i++) {
ns_res += ns_item[i].poi.text + " (" + ns_item[i].distance + “m)” + “”;
}
console.log(ns_res);
return ns_res;
}
}
}
//マップロード
loadMap();
var app = waitLoaded_detail(event, ‘index’, 10000, 100);
console.log(app);
====================================================
上記のコードでは①マップを読みこみ⇒②読みこみができていれば最寄り駅検索という内容になっています。
「console.log(ns_res);」で希望の検索内容は取得できているのですが、
「console.log(app);」ではundefinedと表示されます。
functionで得た結果(値)をその後の処理にもっていくにはどうすればよろしいのでしょうか?
初歩的な質問で申し訳ございませんが、ご教授いただけますと有難いです。