//var ZdcEmapKyotenId = null; //if (typeof ZdcKyotenId == 'function') { // ZdcEmapKyotenId = new ZdcKyotenId(); //} var ZdcEmapCondType = new Array(); var ZdcEmapCondVal = new Array(); var ZdcEmapCondOpts = new Array(); ZdcEmapCondType[21] = "CB"; ZdcEmapCondVal[21] = "((COL_01:1 AND (COL_10:A OR COL_10:B)) OR COL_01:2)"; ZdcEmapCondType[1] = "CB"; ZdcEmapCondVal[1] = "COL_01:1"; ZdcEmapCondType[2] = "CB"; ZdcEmapCondVal[2] = "COL_01:2 AND COL_39:002"; ZdcEmapCondType[3] = "CB"; ZdcEmapCondVal[3] = "COL_01:2 AND COL_39:001"; ZdcEmapCondType[6] = "CB"; ZdcEmapCondVal[6] = "COL_01:2 AND COL_39:418"; ZdcEmapCondType[7] = "CB"; ZdcEmapCondVal[7] = "COL_01:2 AND COL_39:436"; ZdcEmapCondType[8] = "CB"; ZdcEmapCondVal[8] = "COL_01:2 AND (COL_39:101 OR COL_39:171)"; ZdcEmapCondType[23] = "CB"; ZdcEmapCondVal[23] = "COL_01:2 AND COL_39:563"; ZdcEmapCondType[12] = "CB"; ZdcEmapCondVal[12] = "COL_01:2 AND ((COL_39!:002 AND COL_39!:001 AND COL_39!:003 AND COL_39!:418 AND COL_39!:436 AND COL_39!:101 AND COL_39!:171 AND COL_39!:207 AND COL_39!:Z98 AND COL_39!:Z99 AND COL_39!:563) OR (COL_39 IS NULL))"; ZdcEmapCondType[13] = "CB"; ZdcEmapCondVal[13] = "((COL_01:1 AND (COL_10:A OR COL_10:B)) OR COL_01:2) AND ((COL_39:563 AND COL_52:1) OR ((COL_39!:563 AND COL_39!:Z95) OR COL_39:@@NULL@@ OR (COL_39:Z95 AND COL_52:1)))"; ZdcEmapCondType[14] = "CB"; ZdcEmapCondVal[14] = "((COL_01:1 AND (COL_10:A OR COL_10:B)) OR COL_01:2)"; ZdcEmapCondType[15] = "CB"; ZdcEmapCondVal[15] = "((COL_01:1 AND COL_04!:休業) OR (COL_01:2 AND (COL_33!:1 OR COL_37:1)))"; ZdcEmapCondType[16] = "CB"; ZdcEmapCondVal[16] = "((COL_01:1 AND COL_06!:休業) OR (COL_01:2 AND (COL_34!:1 OR COL_37:1)))"; ZdcEmapCondType[17] = "CB"; ZdcEmapCondVal[17] = "((COL_01:1 AND COL_06!:休業) OR (COL_01:2 AND (COL_35!:1 OR COL_37:1)))"; ZdcEmapCondType[18] = "CB"; ZdcEmapCondVal[18] = "((COL_01:1 AND ((COL_02:'00@@COLON@@00 ~ 24@@COLON@@00') OR (COL_04:'00@@COLON@@00 ~ 24@@COLON@@00') OR (COL_06:'00@@COLON@@00 ~ 24@@COLON@@00'))) OR (COL_01:2 AND COL_46:1))"; ZdcEmapCondType[19] = "CB"; ZdcEmapCondVal[19] = "(COL_01:1 AND COL_44:1)"; ZdcEmapCondType[20] = "CB"; ZdcEmapCondVal[20] = "((COL_01:1 AND COL_04!:休業) OR (COL_01:2 AND (COL_33!:1 OR COL_37:1)))"; ZdcEmapCondType[22] = "CB"; ZdcEmapCondVal[22] = "((COL_39!:Z96 AND COL_39!:Z97 AND COL_39!:003 AND COL_39!:207 AND COL_39!:Z98 AND COL_39!:Z99) OR COL_39:@@NULL@@)"; var ZdcEmapCondGroup = new Array(); var ZdcEmapCondAndOr = new Array(); var ZdcEmapCondAppend = new Array(); ZdcEmapCondAndOr[0] = 'OR'; // mod 2023/05/09 M.date ZdcEmapCondGroup[1] = 0; ZdcEmapCondGroup[2] = 0; ZdcEmapCondGroup[3] = 0; ZdcEmapCondGroup[4] = 0; ZdcEmapCondGroup[6] = 0; ZdcEmapCondGroup[7] = 0; ZdcEmapCondGroup[8] = 0; ZdcEmapCondGroup[12] = 0; ZdcEmapCondGroup[23] = 0; ZdcEmapCondAndOr[1] = 'AND'; // mod 2023/05/09 M.date ZdcEmapCondGroup[13] = 1; ZdcEmapCondGroup[14] = 1; ZdcEmapCondGroup[15] = 1; ZdcEmapCondGroup[16] = 1; ZdcEmapCondGroup[15] = 1; ZdcEmapCondGroup[16] = 1; ZdcEmapCondGroup[17] = 1; ZdcEmapCondGroup[18] = 1; ZdcEmapCondGroup[19] = 1; ZdcEmapCondGroup[20] = 1; ZdcEmapCondAndOr[2] = 'AND'; // mod 2023/05/09 M.date ZdcEmapCondGroup[21] = 2; ZdcEmapCondGroup[22] = 2; var ZdcEmapSeqIconInfo = new Array(); //------------------------------------------------------------- //拠点検索関係 //------------------------------------------------------------- var ZdcEmapNearShop = new ZdcNearShop(); var ZdcEmapSearchPoint = null;//検索した位置を保持 var ZdcEmapSearchScale = null;//検索した縮尺を保持 var ZdcEmapSearchFirst = null;//位置決定後の最初の検索か否か var ZdcEmapSearchFirstCstm = null; var ZdcEmapSearchFirstPrint = null; var ZdcEmapIconDt = new Array();var ZdcEmapSearchCenter = null; //検索決定 function ZdcEmapSearchSet(lat,lon,notmove) { //ZdcEmapShopDetailClose(); //マップ移動 ZdcEmapSearchEventStop(); ZdcEmapSearchCenter = new ZDC.LatLon(Number(lat), Number(lon)); var latlon = ZdcEmapMapObj.getLatLon(); if (!notmove) ZdcEmapMapObj.moveLatLon(ZdcEmapSearchCenter); //if(16 > 0) ZdcEmapMapObj.setZoom(16); if(0 > 0) ZdcEmapMapObj.setZoom(0); //拠点検索 ZdcEmapSearchFirst = 1; ZdcEmapSearchPoint = null;//必ず再検索させるため ZdcEmapSearchShopStart(); ZdcEmapMapObj.setHome(ZdcEmapSearchCenter); } //検索開始 function ZdcEmapSearchShopClick() { if(ZdcEmapButtonNG()) return; ZdcEmapSearchPoint = null;//必ず再検索させるため ZdcEmapSearchShop(); } function ZdcEmapSearchShopStart() { if(ZdcEmapMapObj.ZdcEmapMode != "print") ZdcEmapSearchClickFlg = 1; ZdcEmapSearchPoint = null;//必ず再検索させるため // del 2011/12/19 Y.Matsukawa [ // ZdcEmapSearchEventAdd("ZdcEmapSearchShop()"); // ZdcEmapSearchEventStart(); // del 2011/12/19 Y.Matsukawa ] ZdcEmapSearchEventStop(); // add 2011/12/19 Y.Matsukawa //拠点以外のアイコンをクリア for( i = 0;i < ZdcEmapMapPoiMrkCnt;i ++) { if (ZdcEmapMapPoiMrkId[i]) { ZdcEmapMapObj.removeWidget(ZdcEmapMapPoiMrkId[i]); ZdcEmapMapPoiMrkId[i] = null; } } ZdcEmapMapPoiMrkCnt = 0; //画面を切り替える if(ZdcEmapCondObj.mode != "cond" && true) { ZdcEmapSearchShopClose();//拠点以外のリストを消す //var url = "http://127.0.0.1/p/yamato01/cond.htm?cid=yamato01"; var url = "http://127.0.0.1/p/yamato01/cond.htm?"; //for(i = 1;i <= 200;i ++) if(ZdcEmapSaveCond[i]) url = url + "&cond"+i+"="+ZdcEmapSaveCond[i];//絞込条件 url += "&cond22=1&"; url += "&p_f1=1"; // mod 2022/09/28 M.date // mod 2022/09/28 M.date // mod 2022/09/28 M.date url += "&PARENT_HTTP_HOST=locations.kuronekoyamato.co.jp"; ZdcEmapHttpRequestHtml(url, function(html,status){ if(status) html = "申し訳ありませんが只今大変混み合っております。TOPページに戻りしばらく時間を置いてからご利用ください cond["+status+"]"; ZdcEmapCondObj.innerHTML = html; ZdcEmapSearchShop();//条件部が表示されてから検索開始 }); ZdcEmapCondObj.mode = "cond"; ZdcEmapCondObj.style.visibility = "visible"; } else { ZdcEmapSearchShop(); } } //検索メイン処理 function ZdcEmapSearchShop() { ZdcEmapStationCircle(); // 周辺駅からの円描画 add 2014/10/08 Y.Matsukawa ZdcEmapReadOn(); //位置・範囲取得 var ZdcEmapSearchMapCenterAddr = ZdcEmapMapObj.getLatLon(); var p = ZdcEmapMapObj.getLatLon(); var box = ZdcEmapMapObj.getLatLonBox(); var boxmin = box.getMin(); var boxmax = box.getMax(); if(ZdcEmapSearchPoint != null && 5 == -1) { //自動再検索しない ZdcEmapReadOff(); return; } //自動検索イベント停止 ZdcEmapSearchEventStop(); //絞り込み条件取得 cond = ZdcEmapGetCond(); ZdcEmapCondDisabled(); // var opts = new ZdcNearShopOptions(); //opts.cid='yamato01'; mod 2011/12/05 Y.Matsukawa opts.cid='yamato01'; opts.lat = p.lat; opts.lon = p.lon; if((ZdcEmapSearchFirst != 1) || (0 > 0)) { //opts.latlon = box.min.lat+","+box.min.lon+","+box.max.lat+","+box.max.lon; opts.latlon = boxmin.lat+","+boxmin.lon+","+boxmax.lat+","+boxmax.lon; opts.radius = 0; ZdcEmapSearchFirstPrint = 0; } else { ZdcEmapSearchFirst = 0; ZdcEmapSearchFirstCstm = 1; opts.researchCount = 1; opts.radius = 50000; ZdcEmapSearchFirstPrint = 1; } // add 2018/01/15 L.Z SMBC_API2.0移行 End. ?> opts.jkn = cond; opts.pos = 1; opts.minCount = 1; opts.maxCount = 50; opts.limitCount = 50; opts.timeout = 10000; if (ZdcEmapMapShopDetailMrkId != null) { // 詳細表示中の拠点ID var mrk = ZdcEmapMapShopDetailMrkId; if (mrk && mrk.data1) opts.exceptKid = mrk.data1; } // add 2011/12/27 H.osamoto [ if ("" != "") { // mod 2022/10/04 M.date if ("" != "") { // mod 2022/10/04 M.date opts.exceptKid = ""; // mod 2022/10/04 M.date } } // add 2011/12/27 H.osamoto ] if ("" != "") { // mod 2022/10/04 M.date opts.exceptKid = ""; // mod 2022/10/04 M.date } // add 2016/01/18 Y.Uesugi [ // 検索中心位置の住所表示 // add 2016/01/18 Y.Uesugi ] ZdcEmapNearShop.opts = opts; //リストを表示する ZdcEmapSearchShopList(0); //アイコンを表示する ZdcEmapNearShop.search(opts,ZdcEmapSearchShopResult); } //絞り込み条件組み立て var ZdcEmapCondParms = ""; function ZdcEmapGetCond() { var cond=""; var condArr=new Array(); ZdcEmapCondParms = ""; if(document.ZdcEmapCondForm) { var obj,chk=new Array(),chkcnt=0,col=new Array(),colcnt=0,fw=new Array(),fwcnt=0; var all=new Array(),allcnt=0,allcondno=new Array(),condno=''; for(var i = 0;i < document.ZdcEmapCondForm.elements.length;i ++) { obj = document.ZdcEmapCondForm.elements[i]; if(!obj) break; condno = obj.name.replace('cond',''); switch(obj.type) { case "checkbox": if(obj.checked == true) { ZdcEmapCondParms += "&cond"+condno+"=1"; chk[chkcnt] = ZdcEmapCondVal[condno]; all[allcnt] = chk[chkcnt]; allcondno[allcnt] = condno; allcnt++; chkcnt ++; } break; case "select-one": if(obj.options[obj.selectedIndex].value) { //var n = obj.selectedIndex + 1; //ZdcEmapCondParms += "&cond"+condno+"="+n; if("" != ""){ // mod 2022/10/04 M.date ZdcEmapCondParms += "&cond"+condno+"="+obj.value; } else { var n = obj.selectedIndex + 1; ZdcEmapCondParms += "&cond"+condno+"="+n; } col[colcnt] = ZdcEmapCondOpts[condno][obj.options[obj.selectedIndex].value]; if (col[colcnt] != '') { all[allcnt] = col[colcnt]; allcondno[allcnt] = condno; allcnt++; colcnt ++; } } break; case "radio": if(obj.checked == true && obj.value) { var radios = eval("document.ZdcEmapCondForm."+obj.name); if (radios) { ZdcEmapCondParms += "&cond"+condno+"="+obj.value; } col[colcnt] = ZdcEmapCondOpts[condno][obj.value]; if (col[colcnt] != '') { all[allcnt] = col[colcnt]; allcondno[allcnt] = condno; allcnt++; colcnt ++; } } break; case "text": if(obj.value) { if(ZdcEmapCondType[condno] == 'TXTMULTI' ) { ZdcEmapCondParms += "&cond"+condno+"="+encodeURIComponent(obj.value); col[colcnt] = ZdcEmapCondVal[condno].replace(/@@@val@@@/g, obj.value); all[allcnt] = col[colcnt]; allcondno[allcnt] = condno; allcnt++; colcnt ++; } else { if(obj.className == 'cond') { ZdcEmapCondParms += "&cond"+condno+"="+obj.value; col[colcnt] = ZdcEmapCondVal[condno]+obj.value; all[allcnt] = col[colcnt]; allcondno[allcnt] = condno; allcnt++; colcnt ++; } else if (ZdcEmapCondVal[condno] && ZdcEmapCondVal[condno].indexOf(":FW:") > 0) { ZdcEmapCondParms += "&cond"+condno+"="+encodeURIComponent(obj.value); col[colcnt] = ZdcEmapCondVal[condno]+"'"+obj.value+"'"; all[allcnt] = col[colcnt]; allcondno[allcnt] = condno; allcnt++; colcnt ++; } else if (ZdcEmapCondVal[condno] && ZdcEmapCondVal[condno].indexOf(":NUMB:") > 0) { ZdcEmapCondParms += "&cond"+condno+"="+encodeURIComponent(obj.value); col[colcnt] = ZdcEmapCondVal[condno]+"'"+obj.value+"'"; all[allcnt] = col[colcnt]; allcondno[allcnt] = condno; allcnt++; colcnt ++; } else { fw[fwcnt] = "FREE_SRCH:FW:"+"'"+obj.value+"'"; all[allcnt] = fw[fwcnt]; allcondno[allcnt] = condno; allcnt++; fwcnt ++; } } } break; case "button": break; default: if(obj.value) { ZdcEmapCondParms += "&cond"+condno+"=1"; col[colcnt] = ZdcEmapCondVal[condno]; all[allcnt] = col[colcnt]; allcondno[allcnt] = condno; allcnt++; colcnt ++; } break; } } var cno,newcond = "",newqs = ""; var qstr = QSTRING.split('&'); for(var i=0; i 0) { for(var i = 0;i < allcnt;i ++) { cn = allcondno[i]; gr = ZdcEmapCondGroup[cn]; if (gr != undefined) { if(!condArr[gr]) condArr[gr] = ''; if(condArr[gr]) condArr[gr] += ' '+ZdcEmapCondAndOr[gr]+' '; condArr[gr] += all[i]; } } if(condArr.length > 0) { if(condArr[0]) { if(cond) cond += ' AND '; cond += '('+condArr[0]+')'; } if(condArr[1]) { if(cond) cond += ' AND '; cond += '('+condArr[1]+')'; } if(condArr[2]) { if(cond) cond += ' AND '; cond += '('+condArr[2]+')'; } } // del 2012/02/08 Y.Matsukawa [ // // グルーピング設定なし(既存動作) // } else { // // checkbox // for(var i = 0;i < chkcnt;i ++) { // if(cond) cond += " OR "; // cond += chk[i]; // } // if(cond) cond = "("+cond+")"; // // select-one,radio,その他 // for(var j = 0;j < colcnt;j ++) { // if(cond) cond += " AND "; // cond += "("+col[j]+")"; // } // // text // for(var k = 0;k < fwcnt;k ++) { // if(cond) cond += " AND "; // cond += fw[k]; // } // del 2012/02/08 Y.Matsukawa ] } } if(typeof ZdcEmapCondAppend[0] !== 'undefined'){ if( ZdcEmapCondAppend[0] != ''){ if(cond != ''){ cond = '('+cond+') '+ZdcEmapCondAppend[1]+' '+ZdcEmapCondAppend[0]; } else { cond = ZdcEmapCondAppend[0]; } } } return cond; } var Nsnet01EmpnoSeq = null; //---------------------------------------------------------------------------------- // // ZdcEmapSearchShopResult // // 最寄拠点検索結果の処理 // //---------------------------------------------------------------------------------- function ZdcEmapSearchShopResult(result) { var i,item,mrk,tmp,icnt,maxlat=0,maxlon=0,minlat=999999999,minlon=999999999; function setLatLon(lat, lon){ this.lat = lat; this.lon = lon; } latlons = new Array(); //マーカー削除 if(ZdcEmapMapShopMrkCnt != null) { for( i = 0;i < ZdcEmapMapShopMrkCnt;i ++) { if (ZdcEmapMapShopMrkId[i]) { ZdcEmapMapObj.removeWidget(ZdcEmapMapShopMrkId[i]); ZdcEmapMapShopMrkId[i] = null; } } } ZdcEmapMapShopMrkCnt = 0; //エラー処理 if(result.status != 0 && result.status != 3 && result.status != 5 && result.status != 9) { alert("検索に失敗しました listres["+result.status+"]" ); ZdcEmapCondEnabled(); ZdcEmapSearchEventStart(); ZdcEmapSearchShopClose(); ZdcEmapReadOff(); return; } ZdcEmapSearchFirstCstm = 0; Nsnet01EmpnoSeq = new Object(); //地図に置く icnt = result.items.length; for (i=icnt-1; i>=0; i--) { // add 2012/01/18 H.osamoto ] item = result.items[i]; if(!item.icon) break; if(item.nflg == 1) tmp = ZdcEmapIconImg["@NEW"]; else tmp = ""; //最大最小緯度経度取得 if(item.lat > maxlat) maxlat = item.lat; if(item.lon > maxlon) maxlon = item.lon; if(item.lat < minlat) minlat = item.lat; if(item.lon < minlon) minlon = item.lon; // 2012/09/19 H.Osamoto add [ icn_img = ZdcEmapIconImg[item.icon]; icn_num = i + 1; // 最寄り一覧に数字アイコンを設定(詳細画面、印刷画面を除外) if ("" != "" && "" != 1 && "1" != 1) { // mod 2022/10/04 M.date // icn_img = "http://locations.kuronekoyamato.co.jp/p/yamato01/"+"img/icon_num/icon_num_"+icn_num+".gif"; mod 2013/04/19 H.Osamoto icn_img = "http://locations.kuronekoyamato.co.jp/p/yamato01/img/icon_num/icon_num_"+icn_num+".gif"; // add 2018/05/01 Y.Uesugi [ // 数字アイコンの位置調整 // add 2018/05/01 Y.Uesugi ] // 2013/03/12 H.Osamoto add [ } else if ("" != "") { // mod 2022/10/04 M.date // icn_img = "http://locations.kuronekoyamato.co.jp/p/yamato01/"+"img/icon_num/icon_num_"+icn_num+".gif"; mod 2013/04/19 H.Osamoto icn_img = "http://locations.kuronekoyamato.co.jp/p/yamato01/img/icon_num/icon_num_"+icn_num+".gif"; // 2013/03/12 H.Osamoto add ] } // 2012/09/19 H.Osamoto add ] // 無効なアイコンIDの場合は透明アイコンに差し替え add 2012/11/13 Y.Matsukawa if (icn_img == null) icn_img = ZdcEmapIconImg["@TP"]; var icon_key = "0"; var seq_icon = null; if (ZdcEmapSeqIconInfo[icon_key]) { seq_icon = ZdcEmapSeqIconInfo[icon_key]; seq_icon.seq = i + 1; } latlons[ZdcEmapMapShopMrkCnt] = new ZDC.LatLon(item.lat, item.lon); mrk = ZdcEmapMakeMrkApi2(i, item.lat, item.lon, ZdcEmapIconW[item.icon], ZdcEmapIconH[item.icon],ZdcEmapIconW['@NEW'],ZdcEmapIconH['@NEW'], ZdcEmapIconOffsetX[item.icon], ZdcEmapIconOffsetY[item.icon],ZdcEmapIconW[item.icon]-ZdcEmapIconW['@NEW'],ZdcEmapIconH[item.icon], // ZdcEmapIconImg[item.icon],tmp, 2012/09/19 H.Osamoto mod icn_img,tmp, item.id, item.icon, '', item.nflg, function() { ZdcEmapShopMsg(this.id, '1'); } // mod 2013/01/24 K.Masuda [ //, null , null // mod 2013/01/24 K.Masuda ] ,item.lvl ,seq_icon // add 2015/09/17 F.Yokoi [ , null // add 2015/09/17 F.Yokoi ] ); if (ZdcEmapMapShopMrkId[i] != null) ZdcEmapMapObj.removeWidget(ZdcEmapMapShopMrkId[i]);//念のため // ZdcEmapMapObj.addWidget(mrk); // modify 2020/06/09 [Nanaco] Mlab.HuuPhuoc ZdcEmapMapObj.addWidget(mrk); if (mrk.userwidget) mrk.open(); ZdcEmapMapShopMrkId[i] = mrk; ZdcEmapMapShopMrkCnt ++; ZdcEmapIconDt[i] = item.lat + ":" + item.lon + ":" + ZdcEmapIconW[item.icon] + ":" + ZdcEmapIconH[item.icon]; if ( item.col_39 == "563") mrk.setZindex(102); } if(ZdcEmapSearchClickFlg) { ZdcEmapSearchClickFlg = 0; //初期検索時は画面移動 if (ZdcEmapMapShopMrkCnt > 0) { //拠点が収まる範囲に移動 if (!ZdcEmapMapShopDetailMrkId) { var center_latlon = ZdcEmapMapObj.getLatLon(); var latdist; var londist; var varminlat; var varminlon; var varmaxlat; var varmaxlon; var varlatlon_box = new Array(); // 最も離れたlatの差分 //var minlatdist = Math.abs(minlat - center_latlon.lat); //var maxlatdist = Math.abs(maxlat - center_latlon.lat); var minlatdist = Math.abs(Math.floor(minlat*10000000) - Math.floor(center_latlon.lat*10000000))/10000000; var maxlatdist = Math.abs(Math.floor(maxlat*10000000) - Math.floor(center_latlon.lat*10000000))/10000000; if (minlatdist > maxlatdist) { latdist = minlatdist; } else { latdist = maxlatdist; } // 最も離れたlonの差分 //var minlondist = Math.abs(minlon - center_latlon.lon); //var maxlondist = Math.abs(maxlon - center_latlon.lon); var minlondist = Math.abs(Math.floor(minlon*10000000) - Math.floor(center_latlon.lon*10000000))/10000000; var maxlondist = Math.abs(Math.floor(maxlon*10000000) - Math.floor(center_latlon.lon*10000000))/10000000; if (minlondist > maxlondist) { londist = minlondist; } else { londist = maxlondist; } //varminlat = center_latlon.lat - latdist; //varminlon = center_latlon.lon - londist; //varmaxlat = center_latlon.lat + latdist; //varmaxlon = center_latlon.lon + londist; varminlat = Math.floor((center_latlon.lat*10000000) - (latdist*10000000))/10000000; varminlon = Math.floor((center_latlon.lon*10000000) - (londist*10000000))/10000000; varmaxlat = Math.floor((center_latlon.lat*10000000) + (latdist*10000000))/10000000; varmaxlon = Math.floor((center_latlon.lon*10000000) + (londist*10000000))/10000000; // 地図表示縮尺取得用仮想拠点 varlatlon_box[0] = new ZDC.LatLon(varminlat, varminlon); varlatlon_box[1] = new ZDC.LatLon(varmaxlat, varmaxlon); var adjust = ZdcEmapMapObj.getAdjustZoom(varlatlon_box); //if (adjust) ZdcEmapMapObj.setZoom(adjust.zoom); del 2011/12/19 Y.Matsukawa // add 2011/12/19 Y.Matsukawa [ if (adjust) { ZdcEmapSearchEventChangezoomAvailable = 0; ZdcEmapMapObj.setZoom(adjust.zoom); } // add 2011/12/19 Y.Matsukawa ] } } else if (!result.options.exceptKid) { //検索半径の縮尺に移動 ※位置によってgetPoint2PointDistanceの値が変わるため毎回計算している // mod 2011/07/07 H.Osamoto [ // var p = new ZdcPoint(); // p = ZdcEmapMapObj.getMapLocation(); // //var px = new ZdcPoint(); // //var py = new ZdcPoint(); // //px = new ZdcPoint(p.mx+1000,p.my,2);//+1000なのは値が小さいとNaNになるため // //py = new ZdcPoint(p.mx,p.my+1000,2); // //var mx = ZdcEmapGeometricObj.getPoint2PointDistance(p,px);//経度1000ミリ秒ごとの距離 // //var my = ZdcEmapGeometricObj.getPoint2PointDistance(p,py);//緯度1000ミリ秒ごとの距離 // //mx = 1000 / mx;//1mごとの経度 // //my = 1000 / my;//1mごとの緯度 // //var rx = parseInt(mx * 50000);//経度の範囲 // //var ry = parseInt(my * 50000);//経度の範囲 // var rx = parseInt((450000 / (11 * 1000)) * 50000);//CGIと計算をあわせる // var ry = parseInt((300000 / (9 * 1000)) * 50000);//〃 // var p1 = new ZdcPoint(p.mx - rx,p.my - ry,2); // var p2 = new ZdcPoint(p.mx + rx,p.my + ry,2); // var bx = new ZdcBox(p1,p2); // var lv = ZdcEmapMapObj.getMapBoxScale( bx, p ); // if(lv < 18) lv = lv + 1;//1つズームイン // ZdcEmapMapObj.setMapScale(lv); // mod 2011/07/07 H.Osamoto ] } } // add 2011/12/27 H.osamoto [ //検索位置アイコンを表示する // mod 2022/10/04 M.date //指定店舗アイコンを表示する // mod 2022/10/04 M.date // add 2011/12/27 H.osamoto ] document.getElementById('ZdcEmapMap').style.visibility = "visible"; ZdcEmapMapFrontShopDetail(); ZdcEmapMapCursorRemove(); ZdcEmapCondEnabled(); ZdcEmapSearchEventStart(); //色々閉じる //ZdcEmapSearchClose(); ZdcEmapPoiRouteClear(); // 再検索時に吹き出しを削除 if( false ){ ZdcEmapShopMsgClose(); } //検索位置を保持 ZdcEmapSearchPoint = ZdcEmapMapObj.getLatLon(); ZdcEmapSearchScale = ZdcEmapMapObj.getZoom(); ZdcEmapReadOff(); ZdcEmapIconOverlap(icnt,ZdcEmapSearchScale); } //リスト表示 function ZdcEmapSearchShopListClick(page) { if(ZdcEmapButtonNG()) return; ZdcEmapSearchShopList(page) } function ZdcEmapSearchShopList(page) { //リストを表示させる if(1 && ZdcEmapMapShopDetailMrkId != null) { //リスト非表示モードで詳細表示中だと出さない ZdcEmapListObj.innerHTML = ""; return; } // add 2012/09/28 Y.Matsukawa [ // add 2012/09/28 Y.Matsukawa ] //var url = "http://127.0.0.1/p/yamato01/nlist.htm?cid=yamato01"+ var url = "http://127.0.0.1/p/yamato01/nlist.htm?"+ "&lat="+ZdcEmapNearShop.opts.lat+"&lon="+ZdcEmapNearShop.opts.lon+"&latlon="+ZdcEmapNearShop.opts.latlon+ "&radius="+ZdcEmapNearShop.opts.radius+"&jkn="+encodeURI(ZdcEmapNearShop.opts.jkn)+"&page="+page; url += ZdcEmapCondParms; url += "&p_f1=1"; url += ""; // mod 2023/03/21 T.Luu url += ""; // mod 2022/10/04 M.date url += ""; // mod 2022/10/04 M.date if(ZdcEmapSearchFirstCstm == 1) { url += "&first_search=1"; } if (ZdcEmapSearchCenter) { url += "&srchplace="+ZdcEmapSearchCenter.lat+","+ZdcEmapSearchCenter.lon; } // 詳細表示中 if (ZdcEmapMapShopDetailMrkId != null) { // 詳細表示フラグ url += "&detail=1"; // 詳細表示中の拠点ID var mrk = ZdcEmapMapShopDetailMrkId; if (mrk && mrk.data1) url += "&dkid="+mrk.data1; } var ckkids = ZdcEmapCookieGetKidList("yamato01"); if (ckkids != "") url += "&ckkids="+ckkids; url += "&PARENT_HTTP_HOST=locations.kuronekoyamato.co.jp"; ZdcEmapHttpRequestHtml(url, function(html,status){ if(status) html = "申し訳ありませんが只今大変混み合っております。TOPページに戻りしばらく時間を置いてからご利用ください list["+status+"]"; ZdcEmapListObj.innerHTML = html; // add 2018/01/15 L.Z SMBC_API2.0移行 Start. var detailPageNoButtonFlg = document.getElementById('detailPageNoButtonFlg'); if (detailPageNoButtonFlg && detailPageNoButtonFlg.value == 1) { } // add 2018/01/15 L.Z SMBC_API2.0移行 End. }, false, 2); } //リストから選択 function ZdcEmapShopClick(id) { if(ZdcEmapButtonNG()) return; ZdcEmapSearchPoint = null;//必ず再検索させるため var mrk = ZdcEmapMapShopMrkId[id]; if (ZdcEmapMapShopMrkId[id].lvl) { lvl = ZdcEmapMapShopMrkId[id].lvl; } else { lvl = ""; } var latlons_id = eval(latlons.length) - eval(id) - 1; //表示する ZdcEmapShopDetailKidClick(ZdcEmapMapShopMrkId[id].data1,latlons[latlons_id].lat,latlons[latlons_id].lon,ZdcEmapMapShopMrkId[id].data2,ZdcEmapMapShopMrkId[id].nflg,lvl); } //最寄検索を隠す function ZdcEmapSearchShopClose() { ZdcEmapCondObj.innerHTML = ""; ZdcEmapCondObj.mode = ""; ZdcEmapListObj.innerHTML = ""; for( i = 0;i < ZdcEmapMapShopMrkCnt;i ++) { if (ZdcEmapMapShopMrkId[i]) { ZdcEmapMapObj.removeWidget(ZdcEmapMapShopMrkId[i]); ZdcEmapMapShopMrkId[i] = null; } } ZdcEmapMapShopMrkCnt = 0; } var ZdcEmapMapFrontShopMrkId = null; //指定されたアイコンを前面にもってくる function ZdcEmapMapFrontShopMrk(id){ if(ZdcEmapMapShopMrkId[id] != null) { var mrk = ZdcEmapMapShopMrkId[id]; ZdcEmapMapFrontShopReset(); mrk.setZindex(101); ZdcEmapMapFrontShopMrkId = ZdcEmapMapShopMrkId[id]; } } //詳細アイコンを前面にもってくる function ZdcEmapMapFrontShopDetail(){ var mrk; if(ZdcEmapMapShopDetailMrkId != null) { //フォーカス ZdcEmapMapFrontShopReset(); mrk = ZdcEmapMapCurFocusMrkId; mrk.setZindex(102); mrk = ZdcEmapMapShopDetailMrkId; mrk.setZindex(101); ZdcEmapMapFrontShopMrkId = ZdcEmapMapShopDetailMrkId; } } //前面に持ってきたアイコンを元に戻す function ZdcEmapMapFrontShopReset() { if (ZdcEmapMapFrontShopMrkId != null) { var mrk = ZdcEmapMapFrontShopMrkId; if (mrk && mrk.b) mrk.setZindex(100); ZdcEmapMapFrontShopMrkId = null; } } //add 2014/08/21 Q.Dai [ var D_ZOOM = new Array(); var D_ZOOM2PXMS_LAT = new Array(); var D_ZOOM2PXMS_LON = new Array(); D_ZOOM["1"]=89; D_ZOOM2PXMS_LAT["89"]=128836.6013; D_ZOOM2PXMS_LON["89"]=158117.6471; D_ZOOM["2"]=87; D_ZOOM2PXMS_LAT["87"]=64418.30065; D_ZOOM2PXMS_LON["87"]=79058.82353; D_ZOOM["3"]=85; D_ZOOM2PXMS_LAT["85"]=28183.00654; D_ZOOM2PXMS_LON["85"]=34588.23529; D_ZOOM["4"]=82; D_ZOOM2PXMS_LAT["82"]=14954.24837; D_ZOOM2PXMS_LON["82"]=18352.94118; D_ZOOM["5"]=81; D_ZOOM2PXMS_LAT["81"]=10352.94118; D_ZOOM2PXMS_LON["81"]=12705.88235; D_ZOOM["6"]=77; D_ZOOM2PXMS_LAT["77"]=5751.633987; D_ZOOM2PXMS_LON["77"]=7058.823529; D_ZOOM["7"]=72; D_ZOOM2PXMS_LAT["72"]=2588.235294; D_ZOOM2PXMS_LON["72"]=3176.470588; D_ZOOM["8"]=70; D_ZOOM2PXMS_LAT["70"]=1581.699346; D_ZOOM2PXMS_LON["70"]=1941.176471; D_ZOOM["9"]=67; D_ZOOM2PXMS_LAT["67"]=1150.326797; D_ZOOM2PXMS_LON["67"]=1411.764706; D_ZOOM["10"]=62; D_ZOOM2PXMS_LAT["62"]=539.2156863; D_ZOOM2PXMS_LON["62"]=661.7647059; D_ZOOM["11"]=56; D_ZOOM2PXMS_LAT["56"]=206.6993464; D_ZOOM2PXMS_LON["56"]=253.6764706; D_ZOOM["12"]=55; D_ZOOM2PXMS_LAT["55"]=152.7777778; D_ZOOM2PXMS_LON["55"]=187.5000000; D_ZOOM["13"]=52; D_ZOOM2PXMS_LAT["52"]=98.85620915; D_ZOOM2PXMS_LON["52"]=121.3235294; D_ZOOM["14"]=50; D_ZOOM2PXMS_LAT["50"]=74.14215686; D_ZOOM2PXMS_LON["50"]=90.99264706; D_ZOOM["15"]=46; D_ZOOM2PXMS_LAT["46"]=47.18137255; D_ZOOM2PXMS_LON["46"]=57.90441176; D_ZOOM["16"]=44; D_ZOOM2PXMS_LAT["44"]=33.70098039; D_ZOOM2PXMS_LON["44"]=41.36029412; D_ZOOM["17"]=42; D_ZOOM2PXMS_LAT["42"]=26.96078431; D_ZOOM2PXMS_LON["42"]=33.08823529; D_ZOOM["18"]=39; D_ZOOM2PXMS_LAT["39"]=15.72712418; D_ZOOM2PXMS_LON["39"]=19.30147059; //var IconGrp = new Array(); del 2014/08/28 Q.Dai function ZdcEmapIconOverlap(icnt,lvl){ IconGrp = new Array(); var icdt,ic,tmpic,p1,p2,c1,c2,c3,c4,obj; var nlatmin = new Array(); var nlatmax = new Array(); var nlonmin = new Array(); var nlonmax = new Array(); // var ZGobj = new ZdcGeometric(); lvl++; //add 2014/08/28 Q.Dai for(ic=icnt-1; ic>=0; ic--){ icdt = ZdcEmapIconDt[ic].split(":"); // del 2014/08/28 [ // nlatmin[ic] = Math.round(parseInt(icdt[0]) + (D_ZOOM2PXMS_LAT[D_ZOOM[lvl]] * (parseInt(icdt[2]) / 2))); // nlonmin[ic] = Math.round(parseInt(icdt[1]) + (D_ZOOM2PXMS_LON[D_ZOOM[lvl]] * (parseInt(icdt[3]) / 2))); // nlatmax[ic] = Math.round(parseInt(icdt[0]) - (D_ZOOM2PXMS_LAT[D_ZOOM[lvl]] * (parseInt(icdt[2]) / 2))); // nlonmax[ic] = Math.round(parseInt(icdt[1]) - (D_ZOOM2PXMS_LON[D_ZOOM[lvl]] * (parseInt(icdt[3]) / 2))); // del 2014/08/28 ] // add 2014/08/28 [ nlatmin[ic] = (parseFloat(icdt[0]) - (ZDC.msTodeg(D_ZOOM2PXMS_LAT[D_ZOOM[lvl]]) * (parseFloat(icdt[2]) / 2))); nlonmin[ic] = (parseFloat(icdt[1]) - (ZDC.msTodeg(D_ZOOM2PXMS_LON[D_ZOOM[lvl]]) * (parseFloat(icdt[3]) / 2))); nlatmax[ic] = (parseFloat(icdt[0]) + (ZDC.msTodeg(D_ZOOM2PXMS_LAT[D_ZOOM[lvl]]) * (parseFloat(icdt[2]) / 2))); nlonmax[ic] = (parseFloat(icdt[1]) + (ZDC.msTodeg(D_ZOOM2PXMS_LON[D_ZOOM[lvl]]) * (parseFloat(icdt[3]) / 2))); // add 2014/08/28 ] } for(ic=icnt-1; ic>=0; ic--){ obj = ZdcEmapMapShopMrkId[ic]; IconGrp[ic] = obj.data1; for(tmpic=icnt-1; tmpic>=0; tmpic--){ if( tmpic == ic){ continue; } obj = ZdcEmapMapShopMrkId[tmpic]; if( obj == null) continue;// debug // del 2014/08/28 [ // p1 = new ZDC.LatLon(nlonmin[ic],nlatmin[ic]); // p2 = new ZDC.LatLon(nlonmax[ic],nlatmax[ic]); // // // c1 = new ZDC.LatLon(nlonmin[tmpic],nlatmin[tmpic]); // c2 = new ZDC.LatLon(nlonmax[tmpic],nlatmin[tmpic]); // c3 = new ZDC.LatLon(nlonmax[tmpic],nlatmax[tmpic]); // c4 = new ZDC.LatLon(nlonmin[tmpic],nlatmax[tmpic]); // // del 2014/08/28 ] // add 2014/08/28 [ p1 = new ZDC.LatLon(nlatmin[ic],nlonmin[ic]); p2 = new ZDC.LatLon(nlatmax[ic],nlonmax[ic]); c1 = new ZDC.LatLon(nlatmin[tmpic],nlonmin[tmpic]); c2 = new ZDC.LatLon(nlatmax[tmpic],nlonmin[tmpic]); c3 = new ZDC.LatLon(nlatmax[tmpic],nlonmax[tmpic]); c4 = new ZDC.LatLon(nlatmin[tmpic],nlonmax[tmpic]); // add 2014/08/28 [ p_box = new ZDC.LatLonBox(p1,p2); if( ZDC.getLineCrossRectLatLons(c1, c2, p_box)){ IconGrp[ic] += "," + obj.data1; continue; } if( ZDC.getLineCrossRectLatLons(c2, c3, p_box)){ IconGrp[ic] += "," + obj.data1; continue; } if( ZDC.getLineCrossRectLatLons(c3, c4, p_box)){ IconGrp[ic] += "," + obj.data1; continue; } if( ZDC.getLineCrossRectLatLons(c4, c1, p_box)){ IconGrp[ic] += "," + obj.data1; continue; } } } } // add 2014/08/21 Q.Dai ] //詳細表示(アイコンのみ表示) function ZdcEmapShopIcon(lat,lon,icnno,nflg,NotMoveFlag) { //登録されていないアイコンIDの場合は処理しない if (!ZdcEmapIconImg[icnno]) { icnno = "@TP";//透明画像 } var mrk; //地図移動 if( NotMoveFlag == undefined || NotMoveFlag != 1 ){ ZdcEmapMapMove(lat, lon); } var center = new ZDC.LatLon(Number(lat), Number(lon)); ZdcEmapMapObj.setHome(center); //フォーカスカーソルを表示する mrk = ZdcEmapMakeMrkApi2(0, lat, lon, ZdcEmapIconW['@SEL'], ZdcEmapIconH['@SEL'],0,0, ZdcEmapIconOffsetX['@SEL'], ZdcEmapIconOffsetY['@SEL'],0,0, ZdcEmapIconImg['@SEL'],'', '', '', '', 0, null, null, null ); if(ZdcEmapMapCurMrkId != null) ZdcEmapMapObj.removeWidget(ZdcEmapMapCurMrkId); if(ZdcEmapMapCurFocusMrkId != null) ZdcEmapMapObj.removeWidget(ZdcEmapMapCurFocusMrkId); ZdcEmapMapObj.addWidget(mrk); ZdcEmapMapCurFocusMrkId = mrk; mrk.setZindex(101); //詳細アイコンを表示する if(nflg == 1) tmp = ZdcEmapIconImg["@NEW"]; else tmp = ""; mrk = ZdcEmapMakeMrkApi2(0, lat, lon, ZdcEmapIconW[icnno], ZdcEmapIconH[icnno],ZdcEmapIconW['@NEW'],ZdcEmapIconH['@NEW'], ZdcEmapIconOffsetX[icnno], ZdcEmapIconOffsetY[icnno],ZdcEmapIconW[icnno]-ZdcEmapIconW['@NEW'],ZdcEmapIconH[icnno], ZdcEmapIconImg[icnno],tmp, '', icnno, '', nflg, null, null, null ); if (ZdcEmapMapShopDetailMrkId != null) ZdcEmapMapObj.removeWidget(ZdcEmapMapShopDetailMrkId);//念のため ZdcEmapMapObj.addWidget(mrk); ZdcEmapMapShopDetailMrkId = mrk; latlons = new ZDC.LatLon(lat, lon); mrk = new ZDC.Marker(latlons,{ /* マーカのサイズに合わせて位置を調整する */ offset: new ZDC.Pixel(ZdcEmapIconOffsetX[icnno], ZdcEmapIconOffsetY[icnno]), custom: { base : { src: ZdcEmapIconImg[icnno], imgSize: ZDC.WH(ZdcEmapIconW[icnno], ZdcEmapIconH[icnno]) } } }); if(ZdcEmapMapShopDetailMrkId != null) ZdcEmapMapObj.removeWidget(ZdcEmapMapShopDetailMrkId); ZdcEmapMapObj.addWidget(mrk); ZdcEmapMapShopDetailMrkId = mrk; ZdcEmapMapShopDetailMrkId.lat = lat; ZdcEmapMapShopDetailMrkId.lon = lon; } //フキダシ表示 var userwidgethukidasi; var ZdcEmapMsgSemaphore = false; function ZdcEmapShopMsg(id , overlap, update) { // set default value for overlap parameter overlap = typeof overlap !== 'undefined' ? overlap : ''; if (!update) { if(ZdcEmapMapObj.ZdcEmapMode == "print") return;//印刷モード時は吹き出し出さない if(ZdcEmapButtonNG()) return; if(ZdcEmapCondObj.mode == "eki" || ZdcEmapCondObj.mode == "jnr" || ZdcEmapCondObj.mode == "froute") return;//最寄駅や施設を出してる時は出さない //縮尺が範囲外なら表示しない var s = ZdcEmapMapObj.getZoom(); if(ZdcEmapMsgSemaphore) return; ZdcEmapMsgSemaphore = true; ZdcEmapShopMsgClose(); } //アイコンを前面に出す if(id != null) ZdcEmapMapFrontShopMrk(id); else ZdcEmapMapFrontShopDetail(); //デザイン if(id != null) var obj = ZdcEmapMapShopMrkId[id]; else var obj = ZdcEmapMapShopDetailMrkId; if( overlap >= 1) { var kidprm = ""; var lseqprm = ""; for (var i = 0; i < IconGrp.length; i++) { var grpKid = IconGrp[i].split(','); if( grpKid[0] == obj.data1 ) { // choosen "clicked icon" is first. if(grpKid.length > 1) { if ( overlap == 2 ) grpKid.sort(); for( var k=0; k < grpKid.length; k++ ){ if( grpKid[k] == ""){ continue; } kidprm += "&kid" + k + "=" + grpKid[k]; if (Nsnet01EmpnoSeq && Nsnet01EmpnoSeq[grpKid[k]]) { lseqprm += "&lseq" + k + "=" + Nsnet01EmpnoSeq[grpKid[k]]; } } } else { kidprm = "&kid="+obj.data1; if (Nsnet01EmpnoSeq && Nsnet01EmpnoSeq[obj.data1]) { lseqprm += "&lseq=" + Nsnet01EmpnoSeq[obj.data1]; } } } } var url = "http://127.0.0.1/p/yamato01/msg.htm?id="+i+kidprm+lseqprm; } else { var url = "http://127.0.0.1/p/yamato01/msg.htm?id="+i+"&kid="+obj.data1; } if (ZdcEmapSearchCenter) { url += "&srchplace="+ZdcEmapSearchCenter.lat+","+ZdcEmapSearchCenter.lon; } //フキダシを表示させる //var url = "http://127.0.0.1/p/yamato01/msg.htm?cid=yamato01&id="+i+"&kid="+obj.data1; // del 2014/08/19 Q.Dai url += ZdcEmapCondParms; url += "&p_f1=1"; url += ""; // mod 2023/03/21 T.Luu url += "&PARENT_HTTP_HOST=locations.kuronekoyamato.co.jp"; ZdcEmapHttpRequestHtml(url, function(html,status){ if(status) html = "申し訳ありませんが只今大変混み合っております。TOPページに戻りしばらく時間を置いてからご利用ください msg["+status+"]"; if (update) { if (userwidgethukidasi) userwidgethukidasi.setHtml(html); } else { var userwidgethukidasilabel = { html: html, offset: new ZDC.Pixel(0, 0) }; var hukidasilatlon = new ZDC.LatLon(Number(obj.lat), Number(obj.lon)); userwidgethukidasi = new ZDC.MsgInfo(hukidasilatlon, userwidgethukidasilabel); userwidgethukidasi.kyotenid = obj.data1; ZdcEmapMapObj.addWidget(userwidgethukidasi); userwidgethukidasi.open(); ZdcEmapMsgSemaphore = false; } }, true, 2); } //閉じる function ZdcEmapShopMsgClose() { if (userwidgethukidasi) { userwidgethukidasi.close(); userwidgethukidasi = null; } ZdcEmapMapFrontShopReset(); ZdcEmapTipsClose();//TIPSもついでに閉じる //最上位シェイプレイヤーを閉じる if(ZdcEmapTipsTopShapeLayer) { ZdcEmapTipsTopShapeLayer.close(); } } function ZdcEmapUpdateMsgByKyotenid(kyotenid, overlap) { if (!userwidgethukidasi) return; // 拠点IDに該当するアイコンがあるかどうか var id = -1; if (ZdcEmapMapShopMrkCnt != null) { for (i = 0; i < ZdcEmapMapShopMrkCnt; i++) { if (ZdcEmapMapShopMrkId[i]) { var obj = ZdcEmapMapShopMrkId[i]; if (obj.data1 == kyotenid) { id = i; } } } } if (id < 0) { ZdcEmapShopMsgClose(); } else { ZdcEmapShopMsg(id, overlap, 'update'); } } //印刷画面開く function ZdcEmapShopPrintClick(id) { if(ZdcEmapButtonNG()) return; //window.open = "http://locations.kuronekoyamato.co.jp/p/yamato01/print.htm?cid=yamato01&kid="+id; window.open = "http://locations.kuronekoyamato.co.jp/p/yamato01/print.htm?kid="+id; } //詳細の最寄施設検索 function ZdcEmapShopDetailNpoiClick() { if(ZdcEmapButtonNG()) return; if(ZdcEmapMapShopDetailMrkId == null) return; //最寄拠点検索を停止 ZdcEmapSearchEventStop(); //詳細に移動 //var obj = ZdcEmapMapUserLyr.getMarkerById(ZdcEmapMapShopDetailMrkId); //ZdcEmapMapMove(obj.Point.my, obj.Point.mx); ZdcEmapMapMove(ZdcEmapMapShopDetailMrkId.lat, ZdcEmapMapShopDetailMrkId.lon); //最寄施設検索 ZdcEmapPoiClick(1); // パンくず追加 add 2015/01/28 Y.Matsukawa ZdcEmapAddOptionalHistory('周辺施設'); } function ZdcEmapPoiClick(mode) { if(ZdcEmapButtonNG()) return; ZdcEmapPoiRouteClear(); ZdcEmapSearchEventStop(); ZdcEmapShopMsgClose(); //画面を切り替える if(ZdcEmapCondObj.mode != "jnr") { ZdcEmapSearchShopClose(); if(ZdcEmapMapShopDetailMrkId) ZdcEmapFreeRouteStatic(ZdcEmapMapShopDetailMrkId.lat, ZdcEmapMapShopDetailMrkId.lon); var url = "http://127.0.0.1/p/yamato01/npoi_jnr.htm?"; url += "&PARENT_HTTP_HOST=locations.kuronekoyamato.co.jp"; ZdcEmapHttpRequestHtml(url, function(html,status){ if(status) html = "申し訳ありませんが只今大変混み合っております。TOPページに戻りしばらく時間を置いてからご利用ください jnr["+status+"]"; ZdcEmapCondObj.innerHTML = html; ZdcEmapSearchNpoi(mode); }); //if(ZdcEmapCondObj.mode == "eki" || ZdcEmapCondObj.mode == "jnr" || ZdcEmapCondObj.mode == "froute") ZdcEmapHistoryChange("周辺施設",""); //else ZdcEmapHistoryAdd("周辺施設",""); //ZdcEmapHistorySave(); ZdcEmapCondObj.mode = "jnr"; ZdcEmapCondObj.style.visibility = "visible"; } else { ZdcEmapSearchNpoi(mode); } } var ZdcEmapNpoiLatLon; var ZdcEmapNpoiRad; var ZdcEmapNpoiGenreMenu; var ZdcEmapNpoiLimit; //検索開始 function ZdcEmapSearchNpoi(mode) { ZdcEmapReadOn(); //var p = new ZdcPoint(); //p = ZdcEmapMapObj.getMapLocation(); var center_latlon = ZdcEmapMapObj.getLatLon(); //検索条件取得 var code=""; if(document.ZdcEmapJnrForm) { var obj,jnr=new Array(),jnrcnt=0; for(var i = 0;i < document.ZdcEmapJnrForm.elements.length;i ++) { obj = document.ZdcEmapJnrForm.elements[i]; if(!obj) break; switch(obj.type) { case "checkbox": if(obj.checked == true) { jnr[jnrcnt] = obj.value; jnrcnt ++; } break; case "select-one": if(obj.options[obj.selectedIndex].value) { jnr[jnrcnt] = obj.options[obj.selectedIndex].value; jnrcnt ++; } break; case "radio": if(obj.checked == true && obj.value) { jnr[jnrcnt] = obj.value; jnrcnt ++; } break; default: if(obj.value) { jnr[jnrcnt] = obj.value; jnrcnt ++; } break; } } for(var i = 0;i < jnrcnt;i ++) { if(code) code += ","; code += jnr[i]; } } if(!code) code = '00160,00250,00140,00220,00240,00130,00110,00120';//デフォルトジャンル //検索範囲の計算 var rad = 0; if(mode == 0) { //地図内検索 //var box = ZdcEmapMapObj.getMapBoundBox(); //if((box.maxx - box.minx) > (box.maxy - box.miny)) { // //横幅をとる // var p1 = new ZdcPoint(box.maxx,box.maxy,2); // var p2 = new ZdcPoint(box.minx,box.maxy,2); //} else { // //縦幅をとる // var p1 = new ZdcPoint(box.maxx,box.maxy,2); // var p2 = new ZdcPoint(box.maxx,box.miny,2); //} //rad = parseInt(ZdcEmapGeometricObj.getPoint2PointDistance(p1,p2) / 2.1);//地図範囲ギリギリを対象としないよう2.1と少し丸める var box = ZdcEmapMapObj.getLatLonBox(); var boxmin = box.getMin(); var boxmax = box.getMax(); var dist_x = ZDC.getLatLonToLatLonDistance(new ZDC.LatLon(boxmin.lat, boxmin.lon), new ZDC.LatLon(boxmin.lat, boxmax.lon)); var dist_y = ZDC.getLatLonToLatLonDistance(new ZDC.LatLon(boxmin.lat, boxmin.lon), new ZDC.LatLon(boxmax.lat, boxmin.lon)); rad = Math.floor((dist_x>dist_y?dist_y:dist_x)/2.1); } else { //最寄検索 rad = 10000; } if (rad > 50000) rad = 50000;//最寄り検索APIの半径指定上限値を超えている場合は上限値で検索 // // var opts = new ZdcNearPoiOptions(); // opts.startPos = 1; // opts.maxCount = 50; // opts.genreMenuCode = code; // opts.genreCode = ''; // opts.lat = p.my; // opts.lon = p.mx; // opts.lat = latlon.lat; // opts.lon = latlon.lon; // opts.limitCount = 50; // opts.radius = rad; // opts.pointFlg = 2; // opts.lang = ''; // ZdcEmapNpoi.opts = opts; // // if(opts.genreMenuCode) { // //ジャンルの指定があった時のみ検索させる // ZdcEmapPoiList(0); // ZdcEmapNpoi.search(opts); // } ZdcEmapNpoiLatLon = center_latlon; ZdcEmapNpoiRad = rad; ZdcEmapNpoiGenreMenu = code; ZdcEmapNpoiLimit = "0"+","+"50"; var query = { latlon: ZdcEmapNpoiLatLon, radius: ZdcEmapNpoiRad, genrecode: ZdcEmapNpoiGenreMenu, limit: ZdcEmapNpoiLimit } ZdcEmapPoiList(0); ZDC.Search.getPoiByLatLon(query, function(info, item){ ZdcEmapPoiResult(info, item); }); } //検索処理 //function ZdcEmapPoiResult(result) { function ZdcEmapPoiResult(status, result) { //ZdcEmapSearchClose(); ZdcEmapPoiRouteClear(); //エラー処理 //if(result.status != 0 && result.status != 3 && result.status != 5 && result.status != 9) { if(status.code != "000" || status.text != "ok") { alert("検索に失敗しました poires["+status.code+","+status.text+"]"); ZdcEmapListObj.innerHTML = ""; ZdcEmapReadOff(); return; } //地図に置く var i,p,mrk,titlelink,title,item,maxlat=0,maxlon=0,minlat=999999999,minlon=999999999;; for( i = 0;i < ZdcEmapMapPoiMrkCnt;i ++) { //ZdcEmapMapUserLyr.removeMarkerById(ZdcEmapMapPoiMrkId[i]);//マーカー削除 if (ZdcEmapMapPoiMrkId[i]) { ZdcEmapMapObj.removeWidget(ZdcEmapMapPoiMrkId[i]); ZdcEmapMapPoiMrkId[i] = null; } } ZdcEmapMapPoiMrkCnt = 0; //for( i in result.item ){ mod 2012/05/22 H.Osamoto for( i = 0; i < result.item.length; i++ ){ item = result.item[i]; //アイコンの作成 mrk = ZdcEmapMakeMrkApi2(i,item.poi.latlon.lat,item.poi.latlon.lon, 16,16,0,0, -8,-8,0,0, 'http://locations.kuronekoyamato.co.jp/p/yamato01/img/icon_poi/'+item.poi.genre.code.substr(0,5)+'.gif','', item.icons,'',item.poiName,0, function() { ZdcEmapTipsClick(this.id); }, null); if (ZdcEmapMapPoiMrkId[i] != null) ZdcEmapMapObj.removeWidget(ZdcEmapMapPoiMrkId[i]);//念のため ZdcEmapMapObj.addWidget(mrk); ZdcEmapMapPoiMrkId[i] = mrk; ZdcEmapMapPoiMrkId[i].lat = item.poi.latlon.lat; ZdcEmapMapPoiMrkId[i].lon = item.poi.latlon.lon; ZdcEmapMapPoiMrkId[i].message = item.poi.text; //最大最小緯度経度取得 if(item.poi.latlon.lat > maxlat) maxlat = item.poi.latlon.lat; if(item.poi.latlon.lon > maxlon) maxlon = item.poi.latlon.lon; if(item.poi.latlon.lat < minlat) minlat = item.poi.latlon.lat; if(item.poi.latlon.lon < minlon) minlon = item.poi.latlon.lon; ZdcEmapMapPoiMrkCnt ++; } if (ZdcEmapMapPoiMrkCnt > 0) { var latdist; var londist; var varminlat; var varminlon; var varmaxlat; var varmaxlon; var varlatlon_box = new Array(); // 最も離れたlatの差分 var minlatdist = Math.abs(minlat - ZdcEmapNpoiLatLon.lat); var maxlatdist = Math.abs(maxlat - ZdcEmapNpoiLatLon.lat); if (minlatdist > maxlatdist) { latdist = minlatdist; } else { latdist = maxlatdist; } // 最も離れたlonの差分 var minlondist = Math.abs(minlon - ZdcEmapNpoiLatLon.lon); var maxlondist = Math.abs(maxlon - ZdcEmapNpoiLatLon.lon); if (minlondist > maxlondist) { londist = minlondist; } else { londist = maxlondist; } varminlat = ZdcEmapNpoiLatLon.lat - latdist; varminlon = ZdcEmapNpoiLatLon.lon - londist; varmaxlat = ZdcEmapNpoiLatLon.lat + latdist; varmaxlon = ZdcEmapNpoiLatLon.lon + londist; // 地図表示縮尺取得用仮想表示エリア varlatlon_box[0] = new ZDC.LatLon(varminlat, varminlon); varlatlon_box[1] = new ZDC.LatLon(varmaxlat, varmaxlon); var adjust = ZdcEmapMapObj.getAdjustZoom(varlatlon_box); ZdcEmapMapObj.moveLatLon(ZdcEmapNpoiLatLon) if (adjust) ZdcEmapMapObj.setZoom(adjust.zoom); } ZdcEmapMapFrontShopDetail(); ZdcEmapMapCursorRemove(); //自動縮尺変更 //ZdcEmapMapMoveBoxApi2(minlat,minlon,maxlat,maxlon); ZdcEmapReadOff(); } //リスト表示 function ZdcEmapPoiListClick(page) { if(ZdcEmapButtonNG()) return; ZdcEmapPoiList(page); } function ZdcEmapPoiList(page) { // var url = "http://127.0.0.1/p/yamato01/emapview_npoi.htm?cid=yamato01"+ // "&jnrmn="+ZdcEmapNpoi.opts.genreMenuCode+"&jnr="+ZdcEmapNpoi.opts.genreCode+ // "&lat="+ZdcEmapNpoi.opts.lat+"&lon="+ZdcEmapNpoi.opts.lon+"&radius="+ZdcEmapNpoi.opts.radius+"&page="+page; var url = "http://127.0.0.1/p/yamato01/npoi.htm?"+ "jnrmn="+ZdcEmapNpoiGenreMenu+ "&lat="+ZdcEmapNpoiLatLon.lat+"&lon="+ZdcEmapNpoiLatLon.lon+"&radius="+ZdcEmapNpoiRad+"&page="+page; url += "&PARENT_HTTP_HOST=locations.kuronekoyamato.co.jp"; ZdcEmapHttpRequestHtml(url, function(html,status){ if(status) html = "申し訳ありませんが只今大変混み合っております。TOPページに戻りしばらく時間を置いてからご利用ください poi["+status+"]"; ZdcEmapListObj.innerHTML = html; }); } var ZdcEmapMultiGenreCodes = new Array(); var ZdcEmapMultiGenreIndex = 0; var ZdcEmapNpoiMultiGenreResults = new Array(); function ZdcEmapNPoiMultiGenreClick(mode) { var i, g; if(ZdcEmapButtonNG()) return; ZdcEmapPoiRouteClear(); ZdcEmapShopMsgClose(); ZdcEmapReadOn(); for (i = 0; i < ZdcEmapMapPoiMrkCnt; i++) { if (ZdcEmapMapPoiMrkId[i]) { ZdcEmapMapObj.removeWidget(ZdcEmapMapPoiMrkId[i]); ZdcEmapMapPoiMrkId[i] = null; } } ZdcEmapMapPoiMrkCnt = 0; var center_latlon = ZdcEmapMapObj.getLatLon(); var rad = 0; if (mode == 0) { var box = ZdcEmapMapObj.getLatLonBox(); var boxmin = box.getMin(); var boxmax = box.getMax(); var dist_x = ZDC.getLatLonToLatLonDistance(new ZDC.LatLon(boxmin.lat, boxmin.lon), new ZDC.LatLon(boxmin.lat, boxmax.lon)); var dist_y = ZDC.getLatLonToLatLonDistance(new ZDC.LatLon(boxmin.lat, boxmin.lon), new ZDC.LatLon(boxmax.lat, boxmin.lon)); //rad = Math.floor((dist_x > dist_y ? dist_y : dist_x) / 2.1); rad = Math.floor(dist_x > dist_y ? dist_y : dist_x); } else { rad = 10000; } if (rad > 50000) rad = 50000; ZdcEmapNpoiLatLon = center_latlon; ZdcEmapNpoiRad = rad; ZdcEmapNpoiLimit = "0"+","+"50"; ZdcEmapMultiGenreCodes = new Array(); var tmpGenre = new Array(); if (Object.keys(tmpGenre).length > 0) { Object.keys(tmpGenre).forEach(function(key) { ZdcEmapMultiGenreCodes.push(tmpGenre[key].join(',')); }); } else { alert("ジャンルを選択してください"); ZdcEmapReadOff(); return; } ZdcEmapMultiGenreIndex = 0; ZdcEmapNpoiMultiGenreResults = new Array(); ZdcEmapSearchNpoiMultiGenre(); } function ZdcEmapSearchNpoiMultiGenre() { var query = { latlon: ZdcEmapNpoiLatLon, radius: ZdcEmapNpoiRad, genrecode: ZdcEmapMultiGenreCodes[ZdcEmapMultiGenreIndex], limit: ZdcEmapNpoiLimit } ZDC.Search.getPoiByLatLon(query, function(info, item){ ZdcEmapSearchNpoiMultiGenreResult(info, item); }); } function ZdcEmapSearchNpoiMultiGenreResult(status, result) { if (status.code != "000" || status.text != "ok") { alert("検索に失敗しました poires["+status.code+","+status.text+"]"); ZdcEmapReadOff(); return; } Array.prototype.push.apply(ZdcEmapNpoiMultiGenreResults, result.item); ZdcEmapMultiGenreIndex++; if (ZdcEmapMultiGenreIndex < ZdcEmapMultiGenreCodes.length) { ZdcEmapSearchNpoiMultiGenre(); return; } else { if (ZdcEmapNpoiMultiGenreResults.length > 0) { ZdcEmapNpoiMultiGenreResults.sort(function(a, b){ if (a.distance < b.distance || a.code < b.code) return -1; if (a.distance > b.distance || a.code > b.code) return 1; return 0; }); ZdcEmapNpoiMultiGenreResults.splice(50); var i, item, mrk; var maxlat=0, maxlon=0, minlat=999999999, minlon=999999999; for (i = ZdcEmapNpoiMultiGenreResults.length-1; i >= 0; i--) { item = ZdcEmapNpoiMultiGenreResults[i]; mrk = ZdcEmapMakeMrkApi2(i, item.poi.latlon.lat, item.poi.latlon.lon, 16, 16, 0, 0, -8, -8, 0, 0, ''+item.poi.genre.code+'.gif', '', // mod 2022/10/04 M.date item.icons, '', item.poiName, 0, function() { ZdcEmapTipsClick(this.id); }, null); if (ZdcEmapMapPoiMrkId[i] != null) ZdcEmapMapObj.removeWidget(ZdcEmapMapPoiMrkId[i]);//念のため ZdcEmapMapObj.addWidget(mrk); ZdcEmapMapPoiMrkId[i] = mrk; ZdcEmapMapPoiMrkId[i].lat = item.poi.latlon.lat; ZdcEmapMapPoiMrkId[i].lon = item.poi.latlon.lon; ZdcEmapMapPoiMrkId[i].message = item.poi.text; ZdcEmapMapPoiMrkCnt++; } ZdcEmapNpoiMultiGenreResults.length = 0; } } ZdcEmapReadOff(); } function ZdcEmapNPoiMultiGenreClear() { var i; for (i = 0; i < ZdcEmapMapPoiMrkCnt; i++) { if (ZdcEmapMapPoiMrkId[i]) { ZdcEmapMapObj.removeWidget(ZdcEmapMapPoiMrkId[i]); ZdcEmapMapPoiMrkId[i] = null; } } ZdcEmapMapPoiMrkCnt = 0; } function ZdcEmapCFAfterShopDetailEx(result) { if (typeof ZdcEmapCFAfterShopDetail == 'function') { ZdcEmapCFAfterShopDetail(result.item); } } //詳細表示(拠点指定) 拠点接続用 function ZdcEmapShopDetailKidFirst(kid,lat,lon,icnno,nflg,nomove,lvl) { if (!ZdcEmapMapObj) return; ZdcEmapSearchClickFlg = 1; if (!lvl) lvl = 0; //画面遷移履歴 //var tmp = "ZdcEmapSearchEventStop();ZdcEmapMapMove('"+lat+"','"+lon+"','"+ZdcEmapMapObj.getZoom()+"');" // + "ZdcEmapShopDetailKidFirst('"+kid+"','"+lat+"','"+lon+"','"+icnno+"','"+nflg+"','"+lvl+"');"; //ZdcEmapHistoryAdd("詳細表示",tmp); //ZdcEmapHistorySave(); // ZdcEmapShopDetailKid(kid,lat,lon,icnno,nflg,nomove,lvl); if(1 == 0) ZdcEmapSearchShopStart(); if(1) { //拠点以外のアイコンをクリア for( i = 0;i < ZdcEmapMapPoiMrkCnt;i ++) { if (ZdcEmapMapPoiMrkId[i]) { ZdcEmapMapObj.removeWidget(ZdcEmapMapPoiMrkId[i]); ZdcEmapMapPoiMrkId[i] = null; } } } } function ZdcEmapShopDetailKid(kid,lat,lon,icnno,nflg,notmove,lvl) { var mrk,tmp; ZdcEmapSearchEventStop(); lvl = parseInt(lvl); if (lvl && lvl != 0) { ZdcEmapMapObj.setZoom(lvl); } else if(16 > 0) { ZdcEmapMapObj.setZoom(16 - 1); } if (typeof ZdcEmapCFAfterShopDetail == 'function') { var opts = new ZdcKyotenIdOptions(); //opts.cid = 'yamato01' opts.cid = 'yamato01'; opts.kid = kid; opts.nolog = true; opts.timeout = 10000; ZdcEmapKyotenId.opts = opts; ZdcEmapKyotenId.search(opts, ZdcEmapCFAfterShopDetailEx); } //フォーカスカーソルを表示する mrk = ZdcEmapMakeMrkApi2(0, lat, lon, ZdcEmapIconW['@SEL'], ZdcEmapIconH['@SEL'],0,0, ZdcEmapIconOffsetX['@SEL'], ZdcEmapIconOffsetY['@SEL'],0,0, ZdcEmapIconImg['@SEL'],'', '', '', '', 0, null, null, null ); if(ZdcEmapMapCurMrkId != null) ZdcEmapMapObj.removeWidget(ZdcEmapMapCurMrkId); if(ZdcEmapMapCurFocusMrkId != null) ZdcEmapMapObj.removeWidget(ZdcEmapMapCurFocusMrkId); ZdcEmapMapObj.addWidget(mrk); ZdcEmapMapCurFocusMrkId = mrk; mrk.setZindex(101); //詳細アイコンを表示する if (!ZdcEmapIconImg[icnno]) { icnno = "@TP";//透明画像 } if(nflg == 1) tmp = ZdcEmapIconImg["@NEW"]; else tmp = ""; mrk = ZdcEmapMakeMrkApi2(0, lat, lon, ZdcEmapIconW[icnno], ZdcEmapIconH[icnno],ZdcEmapIconW['@NEW'],ZdcEmapIconH['@NEW'], ZdcEmapIconOffsetX[icnno], ZdcEmapIconOffsetY[icnno],ZdcEmapIconW[icnno]-ZdcEmapIconW['@NEW'],ZdcEmapIconH[icnno], ZdcEmapIconImg[icnno],tmp, kid, icnno, '', nflg, null, null, lvl ); if(ZdcEmapMapShopDetailMrkId != null) ZdcEmapMapObj.removeWidget(ZdcEmapMapShopDetailMrkId); ZdcEmapMapObj.addWidget(mrk); ZdcEmapMapShopDetailMrkId = mrk; ZdcEmapMapShopDetailMrkId.data1 = kid; ZdcEmapMapShopDetailMrkId.lat = lat; ZdcEmapMapShopDetailMrkId.lon = lon; //動作モードの切り替え if(1) { //拠点詳細以外は非表示 ZdcEmapSearchEventStop(); ZdcEmapSearchShopClose(); } else { //最寄拠点表示 ZdcEmapSearchEventStart(); } if (!notmove) ZdcEmapMapMove(lat, lon); var center = new ZDC.LatLon(Number(lat), Number(lon)); ZdcEmapMapObj.setHome(center); //他の情報を閉じる ZdcEmapShopMsgClose(); //ZdcEmapSearchClose(); ZdcEmapPoiRouteClear(); // add 2011/12/27 H.osamoto [ //検索位置アイコンを表示する // mod 2022/10/04 M.date // add 2011/12/27 H.osamoto ] } //------------------------------------------------------------- //最寄駅検索 //------------------------------------------------------------- //駅検索開始 function ZdcEmapStationClick(lat,lon) { if(ZdcEmapButtonNG()) return; if (typeof ZdcEmapCFBeforeStationClick == 'function') { ZdcEmapCFBeforeStationClick(); } ZdcEmapPoiRouteClear(); ZdcEmapShopMsgClose(); ZdcEmapSearchEventStop(); ZdcEmapFreeRouteStatic(lat,lon); // ZdcEmapStation(lat,lon); //画面を切り替える if(ZdcEmapCondObj.mode != "eki") { ZdcEmapSearchShopClose(); ZdcEmapCondObj.innerHTML = ""; ZdcEmapCondObj.mode = "eki"; ZdcEmapCondObj.style.visibility = "hidden"; } // パンくず追加 add 2015/01/28 Y.Matsukawa ZdcEmapAddOptionalHistory('最寄り駅'); } //駅検索メイン処理 function ZdcEmapStation(lat,lon) { ZdcEmapReadOn(); // var result; if (lat && lon){ tmplatlon = new ZDC.LatLon(Number(lat), Number(lon)); } else { tmplatlon = ZdcEmapMapObj.getLatLon(); } ZdcEmapNekiLat = tmplatlon.lat; ZdcEmapNekiLon = tmplatlon.lon; var ival = { latlon: tmplatlon, radius: 5000, datum: "TOKYO", limit: "0"+","+"5" }; ZDC.Search.getStationByLatLon(ival, function(stt, res){ ZdcGetNearStationResult(stt, res); }); } function ZdcGetNearStationResult(stt, res) { //リストを表示する ZdcEmapStationList(0); //アイコンを取得する ZdcEmapStationResult(stt, res); } //検索処理 function ZdcEmapStationResult(status, result) { //ZdcEmapSearchClose(); ZdcEmapPoiRouteClear(); //エラー処理 if(status.code != "000" || status.text != "ok") { alert("検索に失敗しました ekires["+status.code+","+status.text+"]"); ZdcEmapSearchEventStart(); ZdcEmapListObj.innerHTML = ""; ZdcEmapReadOff(); return; } //地図に置く var i,item,mrk,maxlat=ZdcEmapNekiLat,maxlon=ZdcEmapNekiLon,minlat=maxlat,minlon=maxlon; for( i = 0;i < ZdcEmapMapPoiMrkCnt;i ++) { if (ZdcEmapMapPoiMrkId[i]) { ZdcEmapMapObj.removeWidget(ZdcEmapMapPoiMrkId[i]); ZdcEmapMapPoiMrkId[i] = null; } } ZdcEmapMapPoiMrkCnt = 0; //for( i in result.item ){ mod 2012/05/22 H.Osamoto for( i = 0; i < result.item.length; i++ ){ item = result.item[i]; //アイコンの作成 // mod 2015/07/10 Y.Uesugi [ //噴出し非表示(日本語表記を非表示) // mod 2022/10/04 M.date //噴出し表示 mrk = ZdcEmapMakeMrkApi2(i,item.poi.latlon.lat,item.poi.latlon.lon, 19,24,0,0, -10,-12,0,0, 'http://locations.kuronekoyamato.co.jp/p/yamato01/img/icon_eki/0000.gif','', item.icons, '', item.poi.text, 0, function() { ZdcEmapRouteSearchApi2(this.id) }, function() { ZdcEmapTipsClick(this.id); },null); // mod 2022/10/04 M.date // mod 2015/07/10 Y.Uesugi ] if (ZdcEmapMapPoiMrkId[i] != null) ZdcEmapMapObj.removeWidget(ZdcEmapMapPoiMrkId[i]);//念のため ZdcEmapMapObj.addWidget(mrk); ZdcEmapMapPoiMrkId[i] = mrk; ZdcEmapMapPoiMrkId[i].lat = item.poi.latlon.lat; ZdcEmapMapPoiMrkId[i].lon = item.poi.latlon.lon; ZdcEmapMapPoiMrkId[i].message = item.poi.text; //最大最小緯度経度取得 if(item.poi.latlon.lat > maxlat) maxlat = item.poi.latlon.lat; if(item.poi.latlon.lon > maxlon) maxlon = item.poi.latlon.lon; if(item.poi.latlon.lat < minlat) minlat = item.poi.latlon.lat; if(item.poi.latlon.lon < minlon) minlon = item.poi.latlon.lon; ZdcEmapMapPoiMrkCnt ++; } if (ZdcEmapMapPoiMrkCnt > 0) { var center_latlon = new ZDC.LatLon(Number(ZdcEmapMapShopDetailMrkId.lat), Number(ZdcEmapMapShopDetailMrkId.lon)); var latdist; var londist; var varminlat; var varminlon; var varmaxlat; var varmaxlon; var varlatlon_box = new Array(); // 最も離れたlatの差分 var minlatdist = Math.abs(minlat - center_latlon.lat); var maxlatdist = Math.abs(maxlat - center_latlon.lat); if (minlatdist > maxlatdist) { latdist = minlatdist; } else { latdist = maxlatdist; } // 最も離れたlonの差分 var minlondist = Math.abs(minlon - center_latlon.lon); var maxlondist = Math.abs(maxlon - center_latlon.lon); if (minlondist > maxlondist) { londist = minlondist; } else { londist = maxlondist; } varminlat = center_latlon.lat - latdist; varminlon = center_latlon.lon - londist; varmaxlat = center_latlon.lat + latdist; varmaxlon = center_latlon.lon + londist; // 地図表示縮尺取得用仮想表示エリア varlatlon_box[0] = new ZDC.LatLon(varminlat, varminlon); varlatlon_box[1] = new ZDC.LatLon(varmaxlat, varmaxlon); var adjust = ZdcEmapMapObj.getAdjustZoom(varlatlon_box); ZdcEmapMapObj.moveLatLon(center_latlon) if (adjust) ZdcEmapMapObj.setZoom(adjust.zoom); } ZdcEmapMapFrontShopDetail(); ZdcEmapMapCursorRemove(); ZdcEmapReadOff(); } //リスト表示 function ZdcEmapStationListClick(page) { if(ZdcEmapButtonNG()) return; ZdcEmapStationList(page) } function ZdcEmapStationList(page) { //var url = "http://127.0.0.1/p/yamato01/neki.htm?cid=yamato01"+ var url = "http://127.0.0.1/p/yamato01/neki.htm?"+ "lat="+ZdcEmapNekiLat+"&lon="+ZdcEmapNekiLon+"&page="+page; url += "&PARENT_HTTP_HOST=locations.kuronekoyamato.co.jp"; ZdcEmapHttpRequestHtml(url, function(html,status){ if(status) html = "申し訳ありませんが只今大変混み合っております。TOPページに戻りしばらく時間を置いてからご利用ください eki["+status+"]"; ZdcEmapListObj.innerHTML = html; }); } //------------------------------------------------------------- // 出発地指定ルートの入力初期値をセット //------------------------------------------------------------- var ZdcEmapFRouteInitStr = null; function ZdcEmapSetFRouteInit(str) { ZdcEmapFRouteInitStr = str; } // 出発地を指定してルート探索モード開始 function ZdcEmapFreeRouteClick(lat, lon) { if(ZdcEmapButtonNG()) return; if (typeof ZdcEmapCFBeforeRouteClick == 'function') { ZdcEmapCFBeforeRouteClick(); } //拠点以外のアイコンをクリア for( i = 0;i < ZdcEmapMapPoiMrkCnt;i ++) { if (ZdcEmapMapPoiMrkId[i]) { ZdcEmapMapObj.removeWidget(ZdcEmapMapPoiMrkId[i]); ZdcEmapMapPoiMrkId[i] = null; } } ZdcEmapPoiRouteClear(); // ルートクリア ZdcEmapShopMsgClose(); // 吹き出し消去 ZdcEmapSearchEventStop(); // 検索イベント停止 // 画面を切り替える if(ZdcEmapCondObj.mode != "froute") { ZdcEmapSearchShopClose(); ZdcEmapCondObj.innerHTML = ""; ZdcEmapCondObj.mode = "froute"; ZdcEmapCondObj.style.visibility = "hidden"; //var url = "http://127.0.0.1/p/yamato01/emapview_froute.htm?cid=yamato01" var url = "http://127.0.0.1/p/yamato01/froute.htm?" +"lat="+lat+"&lon="+lon+"&mode=init" ; url += "&p_f1=1"; if (ZdcEmapFRouteInitStr) url += "&frouteinit="+ZdcEmapFRouteInitStr; url += "&PARENT_HTTP_HOST=locations.kuronekoyamato.co.jp"; ZdcEmapHttpRequestHtml(url, function(html,status){ if(status) html = "申し訳ありませんが只今大変混み合っております。TOPページに戻りしばらく時間を置いてからご利用ください froute["+status+"]"; ZdcEmapListObj.innerHTML = html; }); } // パンくず追加 add 2015/01/28 Y.Matsukawa ZdcEmapAddOptionalHistory('出発地指定ルート'); } // 出発地を指定してルート探索モード開始(Light/Maplink) function ZdcEmapFreeRouteClickLight(lat, lon) { if(ZdcEmapButtonNG()) return; //拠点以外のアイコンをクリア for( i = 0;i < ZdcEmapMapPoiMrkCnt;i ++) { if (ZdcEmapMapPoiMrkId[i]) { ZdcEmapMapObj.removeWidget(ZdcEmapMapPoiMrkId[i]); ZdcEmapMapPoiMrkId[i] = null; } } ZdcEmapPoiRouteClear(); // ルートクリア ZdcEmapShopMsgClose(); // 吹き出し消去 ZdcEmapSearchEventStop(); // 検索イベント停止 // 画面を切り替える ZdcEmapSearchShopClose(); //var url = "http://127.0.0.1/p/yamato01/emapview_froute.htm?cid=yamato01" var url = "http://127.0.0.1/p/yamato01/froute.htm?" +"lat="+lat+"&lon="+lon+"&mode=init" ; url += "&p_f1=1"; url += "&PARENT_HTTP_HOST=locations.kuronekoyamato.co.jp"; ZdcEmapHttpRequestHtml(url, function(html,status){ if(status) html = "申し訳ありませんが只今大変混み合っております。TOPページに戻りしばらく時間を置いてからご利用ください froute["+status+"]"; ZdcEmapListObj.innerHTML = html; }); } function ZdcEmapFreeRouteStatic(lat, lon) { if(!ZdcEmapFRouteStaticObj) return; var url = "http://127.0.0.1/p/yamato01/froute.htm?" +"lat="+lat+"&lon="+lon+"&mode=init" ; url += "&p_f1=1"; if (ZdcEmapFRouteInitStr) url += "&frouteinit="+ZdcEmapFRouteInitStr; url += "&PARENT_HTTP_HOST=locations.kuronekoyamato.co.jp"; ZdcEmapHttpRequestHtml(url, function(html,status){ if(status) html = "申し訳ありませんが只今大変混み合っております。TOPページに戻りしばらく時間を置いてからご利用ください froute["+status+"]"; ZdcEmapFRouteStaticObj.innerHTML = html; }); } // ルート表示 function ZdcEmapFreeRouteDraw(lat, lon) { if(ZdcEmapButtonNG()) return; // 地図中心位置を取得 var center = ZdcEmapMapObj.getLatLon(); var mx = center.lon; var my = center.lat; ZdcEmapRouteCase = 'free'; if(ZdcEmapFRouteStaticObj) { //拠点以外のアイコンをクリア for( i = 0;i < ZdcEmapMapPoiMrkCnt;i ++) { if (ZdcEmapMapPoiMrkId[i]) { ZdcEmapMapObj.removeWidget(ZdcEmapMapPoiMrkId[i]); ZdcEmapMapPoiMrkId[i] = null; } } ZdcEmapPoiRouteClear(); // ルートクリア ZdcEmapShopMsgClose(); // 吹き出し消去 ZdcEmapSearchEventStop(); // 検索イベント停止 ZdcEmapSearchShopClose(); ZdcEmapCondObj.innerHTML = ""; ZdcEmapCondObj.mode = ""; ZdcEmapCondObj.style.visibility = "hidden"; ZdcEmapFreeRouteClose(); } // ルート描画 ZdcEmapRouteSearch("直営店・取扱店", lon, lat, "地図中心", mx, my); } // 出発地指定ルート探索を閉じる function ZdcEmapFreeRouteClose() { ZdcEmapListObj.innerHTML = ''; } // フリーワード検索 function ZdcEmapFreeRouteSearch(lat, lon) { var txt = document.getElementById("freeRouteSearchEntText"); if (!txt || !txt.value) return; //var url = "http://127.0.0.1/p/yamato01/emapview_froute.htm?cid=yamato01" var url = "http://127.0.0.1/p/yamato01/froute.htm?" +"lat="+lat+"&lon="+lon+"&mode=srch" +"&keyword="+txt.value ; // add 2013/06/11 Y.Matsukawa [ var typ = document.getElementById("freeRouteSearchType"); if (typ && typ.value) { url += "&type="+typ.value; } var adcd = document.getElementById("freeRouteSearchAdcd"); if (adcd && adcd.value) { url += "&adcd="+adcd.value; } // add 2013/06/11 Y.Matsukawa ] url += "&p_f1=1"; url += "&PARENT_HTTP_HOST=locations.kuronekoyamato.co.jp"; ZdcEmapHttpRequestHtml(url, function(html,status){ if(status) html = "申し訳ありませんが只今大変混み合っております。TOPページに戻りしばらく時間を置いてからご利用ください froute["+status+"]"; if(ZdcEmapFRouteStaticObj) { //拠点以外のアイコンをクリア for( i = 0;i < ZdcEmapMapPoiMrkCnt;i ++) { if (ZdcEmapMapPoiMrkId[i]) { ZdcEmapMapObj.removeWidget(ZdcEmapMapPoiMrkId[i]); ZdcEmapMapPoiMrkId[i] = null; } } ZdcEmapPoiRouteClear(); // ルートクリア ZdcEmapShopMsgClose(); // 吹き出し消去 ZdcEmapSearchEventStop(); // 検索イベント停止 ZdcEmapSearchShopClose(); ZdcEmapCondObj.innerHTML = ""; ZdcEmapCondObj.mode = ""; ZdcEmapCondObj.style.visibility = "hidden"; ZdcEmapFreeRouteClose(); ZdcEmapFRouteStaticObj.innerHTML = html; } else { ZdcEmapListObj.innerHTML = html; } }); } // フリーワード検索(ページ送り) function ZdcEmapFreeRoutePage(lat, lon, page, type, keyword, adcd) { if (!page) page = 0; if (!type) type = ""; if (!adcd) adcd = ""; //var url = "http://127.0.0.1/p/yamato01/emapview_froute.htm?cid=yamato01" var url = "http://127.0.0.1/p/yamato01/froute.htm?" +"lat="+lat+"&lon="+lon+"&mode=srch&page="+page+"&type="+type +"&keyword="+keyword ; if(adcd) url += "&adcd="+adcd; url += "&p_f1=1"; url += "&PARENT_HTTP_HOST=locations.kuronekoyamato.co.jp"; ZdcEmapHttpRequestHtml(url, function(html,status){ if(status) html = "申し訳ありませんが只今大変混み合っております。TOPページに戻りしばらく時間を置いてからご利用ください froute["+status+"]"; if(ZdcEmapFRouteStaticObj) { ZdcEmapFRouteStaticObj.innerHTML = html; } else { ZdcEmapListObj.innerHTML = html; } }); } function ZdcEmapStationList(page) { var url = "http://127.0.0.1/p/yamato01/neki.htm?"+ "lat="+ZdcEmapNekiLat+"&lon="+ZdcEmapNekiLon+"&page="+page; url += "&PARENT_HTTP_HOST=locations.kuronekoyamato.co.jp"; ZdcEmapHttpRequestHtml(url, function(html,status){ if(status) html = "申し訳ありませんが只今大変混み合っております。TOPページに戻りしばらく時間を置いてからご利用ください eki["+status+"]"; ZdcEmapNekiListObj.innerHTML = html; }); } //------------------------------------------------------------- //複合ルート検索 //------------------------------------------------------------- function ZdcEmapSrchCombRootDept(keyword) { ZdcEmapSrchCombRootDeptObj.innerHTML = ""; //検索条件 var url = "http://127.0.0.1/p/yamato01/dept_srch_comb.htm?keyword="+keyword; ZdcEmapHttpRequestHtml(url, function(html,status){ if(status) html = "申し訳ありませんが只今大変混み合っております。TOPページに戻りしばらく時間を置いてからご利用ください cond["+status+"]"; ZdcEmapSrchCombRootDeptObj.innerHTML = html; }); } function ZdcEmapSrchCombRootResult(lat, lon, fromname, whenno, date) { ZdcEmapSrchCombRootResultObj.innerHTML = ""; //検索条件 var url = "http://127.0.0.1/p/yamato01/route_srch_comb.htm?kid="+ZdcEmapMapShopDetailMrkId.data1; if (lat && lon) url+= "&from="+lat+","+lon; if (fromname) url+= "&fromname="+fromname; if (whenno) url+= "&whenno="+whenno; if (date) url+= "&date="+date; ZdcEmapHttpRequestHtml(url, function(html,status){ if(status) html = "申し訳ありませんが只今大変混み合っております。TOPページに戻りしばらく時間を置いてからご利用ください cond["+status+"]"; ZdcEmapSrchCombRootResultObj.innerHTML = html; }); } function ZdcEmapCookieGetShopList(cid) { var shop_list = new Array(); var pc_shopdtl = ""; var key = "PC_SHOPDTL_"+cid; if (!navigator.cookieEnabled) return shop_list; // Cookie読み込み var ck = document.cookie; if (ck != "") { cookies = ck.split(";"); for (var i = 0; i < cookies.length; i++) { var kv = cookies[i].split("="); if (kv[0].replace(/^\s+|\s+$/g, "") == key && kv[1]) { pc_shopdtl = kv[1].replace(/^\s+|\s+$/g, ""); break; } } if (pc_shopdtl != "") { var vals = pc_shopdtl.split(","); var max = Math.floor(vals.length/2); if (max > -1) max = -1; var oc = 0; var k = -1; for (var i = 0; i < max*2; i++) { if (vals[i*2] != undefined) { if (vals[i*2+1] == undefined) vals[i*2+1] = ''; k++; shop_list[k] = new Array(); shop_list[k]['kid'] = vals[i*2]; shop_list[k]['name'] = vals[i*2+1]; } } } } return shop_list; } function ZdcEmapCookieWriteShopDetail(cid, kid, knmenc) { var key = "PC_SHOPDTL_"+cid; var save_value = ""; var new_value = kid+","+knmenc; var shop_list = ZdcEmapCookieGetShopList(cid); var cnt = shop_list.length; if (cnt > 0) { for (var i = 0; i < cnt; i++) { if (shop_list[i]["kid"] == kid) continue; save_value += "," + shop_list[i]["kid"] + "," + shop_list[i]["name"]; } } save_value = new_value + save_value; // Cookie書き出し ZdcEmapWriteCookie(key, save_value, 365); } function ZdcEmapWriteCookie(key, value_esc, days) { var str = key + "=" + value_esc + ";"; if (days != 0) { var dt = new Date(); dt.setDate(dt.getDate() + days); str += "expires=" + dt.toGMTString() + ";"; } str += "path=/;"; document.cookie = str; } function ZdcEmapCookieRemoveShop(cid, kid) { var key = "PC_SHOPDTL_"+cid; var save_value = ""; var kid_list = new Array(); if (typeof kid == "string") { // 1件(string) kid_list = "|"+kid+"|"; } else { // n件(Array) kid_list = "|"+kid.join("|")+"|"; } var shop_list = ZdcEmapCookieGetShopList(cid); var cnt = shop_list.length; if (cnt > 0) { for (var i = 0; i < cnt; i++) { if (kid_list.indexOf("|"+shop_list[i]["kid"]+"|") < 0) { if (save_value != "") save_value += ","; save_value += shop_list[i]["kid"] + "," + shop_list[i]["name"]; } } } // Cookie書き出し ZdcEmapWriteCookie(key, save_value, 365); } function ZdcEmapCookieClear(cid) { var key = "PC_SHOPDTL_"+cid; ZdcEmapWriteCookie(key, "", 365); } function ZdcEmapCookieGetKidList(cid) { var shop_list = ZdcEmapCookieGetShopList(cid); var cnt = shop_list.length; if (cnt > 0) { var kid_list = new Array(); for (var i = 0; i < cnt; i++) { kid_list[i] = shop_list[i]["kid"]; } return kid_list.join(","); } else { return ""; } } function ZdcEmapCookieGetCount(cid) { var shop_list = ZdcEmapCookieGetShopList(cid); return shop_list.length; } function ZdcEmapShowCookieShopList(callback) { var url = "http://127.0.0.1/p/yamato01/klistck.htm?"; if (ZdcEmapCondParms) url += ZdcEmapCondParms+"&"; url += "p_f1=1&"; // Cookie(閲覧履歴)保存済みの拠点ID(複数)を引き渡し ?> var ckkids = ZdcEmapCookieGetKidList("yamato01"); url += "&ckkids="+ckkids; var dd = new Date(); var ts = dd.getTime(); url += "&ts="+ts; ZdcEmapHttpRequestHtml(url, callback, false, 2); } //------------------------------------------------------------- // cond書き換え //------------------------------------------------------------- function ZdcEmapChangeCond(prm) { //var url = "http://127.0.0.1/p/yamato01/cond.htm?cid=yamato01"; var url = "http://127.0.0.1/p/yamato01/cond.htm?"; if (prm) url = url + "&" + prm; url += "&cond22=1&"; url += "&p_f1=1"; // mod 2022/09/28 M.date // mod 2022/09/28 M.date // mod 2022/09/28 M.date ZdcEmapHttpRequestHtml(url, function(html,status){ if(status) html = "申し訳ありませんが只今大変混み合っております。TOPページに戻りしばらく時間を置いてからご利用ください cond["+status+"]"; ZdcEmapCondObj.innerHTML = html; }); } //------------------------------------------------------------- // 画面遷移時に現在表示している縮尺を引き継ぐ //------------------------------------------------------------- function ZdcEmapDeliverMapZoom(url) { var zoom = ZdcEmapMapObj.getZoom(); if (zoom == 0) zoom = 1; url += "&lvl="+zoom; location.href = url; } // add 2014/11/28 Y.Matsukawa //------------------------------------------------------------- // 検索位置にマーカー表示 //------------------------------------------------------------- function ZdcEmapSearchMapIcon(latlon) { var mrk = new ZDC.Marker(latlon,{ color: ZDC.MARKER_COLOR_ID_GREEN_S }); mrk.setZindex(300); ZdcEmapMapObj.addWidget(mrk); } // add 2016/01/18 Y.Uesugi [ //------------------------------------------------------------- // 地図中心位置の住所表示 //------------------------------------------------------------- function ZdcMapCenterAddrSelect(){ this.type = 'ZdcMapCenterAddrSelect'; this.result = false; this.text_data = null; } ZdcMapCenterAddrSelect.prototype.getResult = function(){ return this.result; } ZdcMapCenterAddrSelect.prototype.abort = function(){ if( this.httpReq ){ this.httpReq.abort(); } } ZdcMapCenterAddrSelect.prototype.search = function(opts, callback){ var center = ZdcEmapMapObj.getLatLon(); var owner = this; var enc = "EUC"; var target_url = "http://cgiweb.pro.aws.zdc.local/ssapi/getadstr.cgi"; var prm = ''; prm += '&key=53nQ2P9tlg4vBGnAjvBvnAqf9FmgbPB5idj5SdXuomA4fhEzTErxAzTjrxpzThngszFIlgrnFDng0z46oRAL0ungdzFblg3nFengVz57oRuLTE'; prm += '&lat='+center.lat; prm += '&lon='+center.lon; prm += "&mclv=6"; prm += '&enc='+enc; var request_url = target_url+'?'+prm; this.httpReq = new ZdcEmapHttpRequest('EUC', 'EUC'); this.httpReq.request(request_url, function(reference_text, status){ var result = new ZdcMapCenterAddrSelectResult(reference_text, status); result.type = owner.type; result.options = opts; owner.result = result; if( callback != null ){ callback(result); } }, opts.timeout); } function ZdcMapCenterAddrSelectOptions(frewd){ //default値 this.lat = ''; this.lon = ''; this.timeout = 60000; } function ZdcMapCenterAddrSelectResult(text_data, status){ if( text_data == null ){ ZdcSetErrorStatus.call(this, '', status); return; } //header var res = new Array(); res = text_data.split('\n'); var header = res.shift(); var cols = header.split('\t'); var retcd = cols[0]; var cnt = parseFloat(cols[1]); var hitcnt = parseFloat(cols[2]); this.retCode = retcd; this.type = ''; this.status = status; this.recCount = cnt; this.hitCount = hitcnt; this.items = []; for(var i=0; i