//------------------------------------------------------------- //JSAPIの動作確認 //------------------------------------------------------------- if(parseInt(ZDC_RC) != 0) { //location.href = 'http://127.0.0.1/error/jsapierror.html'; } //------------------------------------------------------------- //初期設定 //------------------------------------------------------------- //地図 var ZdcEmapMapObj = null; var ZdcEmapMapUsrctl = null; var ZdcEmapMapZoomctl = null; var ZdcEmapMapSize = new ZdcWindow(); //ユーザーレイヤー var ZdcEmapMapUserLyr = new ZdcUserLayer(); var ZdcEmapMapUserLyrId = null; //マーカー記憶 var ZdcEmapMapShopMrkId = new Array(30); var ZdcEmapMapShopMrkCnt = null; var ZdcEmapMapPoiMrkId = new Array(50); var ZdcEmapMapPoiMrkCnt = null; var ZdcEmapMapShopDetailMrkId = null; var ZdcEmapMapCurFocusMrkId = null; //吹き出し var ZdcEmapMsg = new ZdcUserMsgWindow(); //小窓 var ZdcEmapListObj; var ZdcEmapDetailObj; var ZdcEmapCondObj; var ZdcEmapSearchWindowObj; var ZdcEmapIE6HideSelectObj; // add 2008/05/07 Y.Matsukawa //Myエリア追加用表示エリア var ZdcEmapMyareaWrapperObj; //各ボタンのイベント管理 var ZdcEmapSearchClickFlg = 0; //ルート探索モード var ZdcEmapRouteShopItems = null; var ZdcEmapRouteShopItem = null; var ZdcEmapRouteStartLat = null; var ZdcEmapRouteStartLon = null; //アイコン情報 var ZdcEmapIconImg = new Array(); var ZdcEmapIconW = new Array(); var ZdcEmapIconH = new Array(); var ZdcEmapIconOffsetX = new Array(); var ZdcEmapIconOffsetY = new Array(); ZdcEmapIconImg['@SHOP'] = 'https://www.e-map.ne.jp/pc/img/000000.gif?k_e=rokinbk';ZdcEmapIconW['@SHOP'] = 11;ZdcEmapIconH['@SHOP'] = 11;ZdcEmapIconOffsetX['@SHOP'] = -6;ZdcEmapIconOffsetY['@SHOP'] = -6;ZdcEmapIconImg['@NEW'] = 'https://www.e-map.ne.jp/pc/img/new.gif?k_e=rokinbk';ZdcEmapIconW['@NEW'] = 23;ZdcEmapIconH['@NEW'] = 10;ZdcEmapIconOffsetX['@NEW'] = -12;ZdcEmapIconOffsetY['@NEW'] = -5;ZdcEmapIconImg['@SEL'] = 'https://www.e-map.ne.jp/pc/img/icon_cursor/0003.gif?k_e=rokinbk';ZdcEmapIconW['@SEL'] = 51;ZdcEmapIconH['@SEL'] = 50;ZdcEmapIconOffsetX['@SEL'] = -26;ZdcEmapIconOffsetY['@SEL'] = -25;ZdcEmapIconImg['@SELB'] = 'https://www.e-map.ne.jp/pc/img/icon_cursor/0000.gif?k_e=rokinbk';ZdcEmapIconW['@SELB'] = 51;ZdcEmapIconH['@SELB'] = 50;ZdcEmapIconOffsetX['@SELB'] = -26;ZdcEmapIconOffsetY['@SELB'] = -25;ZdcEmapIconImg['001'] = 'https://www.e-map.ne.jp/cgi/icon_select.cgi?cid=rokinbk&icon_id=001';ZdcEmapIconW['001'] = 24;ZdcEmapIconH['001'] = 24;ZdcEmapIconOffsetX['001'] = -12;ZdcEmapIconOffsetY['001'] = -12;//その他 // 2008/10/22 Y.Matsukawa add var ZdcEmapGeometricObj = new ZdcGeometric(); var ZdcEmapSaveCond = new Array(30);//絞込条件 // add 2011/05/26 K.Masuda [ var QSTRING = location.search.replace(/^\?/, ''); // add 2011/05/26 K.Masuda ] //初期化関数 //function ZdcEmapInit(){ 2007/11/16 mod Y.Matsukawa //function ZdcEmapInit(init_lat, init_lon){ 2007/11/30 mod Y.Matsukawa function ZdcEmapInit(init_lat, init_lon, init_lv){ //地図の基本設定 ---------------------------------------- var svrurl = "https://api.e-map.ne.jp/mapapi/"; //初期位置 if (!init_lat || !init_lon) { init_lat = 128440300; init_lon = 503173140; } if (!init_lv || init_lv == 0) { init_lv = 16; } ZdcEmapMapObj = new ZdcMap(document.getElementById("ZdcEmapMap"), new ZdcPoint(init_lon, init_lat, 2), init_lv, 4); ZdcEmapMapSize = ZdcEmapMapObj.getMapWindowSize(); //地図中心マーク --------------------------------- add 2009/05/28 Y.Matsukawa //ユーザーコントロール --------------------------------- ZdcEmapMapUsrctl = new ZdcUserControl(); var ZdcEmapMapUsrctl_imgurl = svrurl + "/usrimg/emapControl-move.png"; var ZdcEmapMapUsrctl_shdurl = svrurl + "/usrimg/emapControl-move-shadow.png"; var ZdcEmapMapUsrctl_size = new ZdcSize(54,54); var ZdcEmapMapUsrctl_shdsize = new ZdcSize(60,60); ZdcEmapMapUsrctl.setImage(ZdcEmapMapUsrctl_imgurl,ZdcEmapMapUsrctl_size,ZdcEmapMapUsrctl_shdurl,ZdcEmapMapUsrctl_shdsize); ZdcEmapMapUsrctl.setDocPosition(0,0,0,0); //img position shd position ZdcEmapMapUsrctl.setAction(1,19,0,35,16); //actionid,pixel area ZdcEmapMapUsrctl.setAction(2,0,19,16,35); ZdcEmapMapUsrctl.setAction(3,38,19,54,35); ZdcEmapMapUsrctl.setAction(4,19,38,35,54); ZdcEmapMapUsrctl.setAction(5,19,19,35,35); ZdcEvent.addListener(ZdcEmapMapUsrctl,"clickend",function(){ var tmpx = parseInt(parseInt(ZdcEmapMapSize.width) * 3 / 5); var tmpy = parseInt(parseInt(ZdcEmapMapSize.height) * 3 / 5); switch(this.actionid){ case 0: break; case 1: ZdcEmapMapObj.scrollMap(0,tmpy); break; case 2: ZdcEmapMapObj.scrollMap(tmpx,0); break; case 3: ZdcEmapMapObj.scrollMap(tmpx*-1,0); break; case 4: ZdcEmapMapObj.scrollMap(0,tmpy*-1); break; case 5: ZdcEmapMapObj.restoreMapLocation(); break; } }); ZdcEmapMapObj.addUserControl(ZdcEmapMapUsrctl,10,ZdcEmapMapObj.ZdcMapWpx - 75); ZdcEmapMapZoomctl = new ZdcUserZoomControl(); var ZdcEmapMapZoomctl_imgurl = svrurl + "/usrimg/emapControl-scale.png"; var ZdcEmapMapZoomctl_shdurl = svrurl + "/usrimg/emapControl-scale-shadow.png"; var ZdcEmapMapZoomctl_grdurl = svrurl + "/usrimg/emapControl-scale-grid.png"; var ZdcEmapMapZoomctl_size = new ZdcSize(16,148); var ZdcEmapMapZoomctl_shdsize = new ZdcSize(22,154); var ZdcEmapMapZoomctl_grdsize = new ZdcSize(16,6); ZdcEmapMapZoomctl.setImage(ZdcEmapMapZoomctl_imgurl,ZdcEmapMapZoomctl_size,ZdcEmapMapZoomctl_grdurl,ZdcEmapMapZoomctl_grdsize,ZdcEmapMapZoomctl_shdurl,ZdcEmapMapZoomctl_shdsize); ZdcEmapMapZoomctl.setDocPosition(0,0,0,0,-1,0); //basedoc shadowdoc griddoc ZdcEmapMapZoomctl.setAction('zoomOut',0,0,16,16); //- action id,pixel area ZdcEmapMapZoomctl.setAction('zoomIn',0,132,16,148); //+ ZdcEmapMapZoomctl.setAction('slither',0,18,16,126,6); //action id,pixel area slitherweight ZdcEmapMapZoomctl.setAction('setzoom',0,18,16,126); //action id,pixel area if(1 > -1 && 18 > -1) ZdcEmapMapZoomctl.setZoomLimit( 1, 18 ); ZdcEvent.addListener(ZdcEmapMapZoomctl,"clickend",function(){ switch(this.actionid){ case 'none': break; case 'zoomOut': ZdcEmapMapObj.mapZoomOut(); this.setSlitherPosition(); break; case 'zoomIn': ZdcEmapMapObj.mapZoomIn(); this.setSlitherPosition(); break; case 'setzoom': var s = this.getZoom(); ZdcEmapMapObj.setMapScale(s); this.setSlitherPosition(); break; } }); ZdcEvent.addListener(ZdcEmapMapZoomctl,"mousedowngrid",function(){ if(this.actionid=='slither'){ this.dragstart(1); return false; } }); ZdcEvent.addListener(ZdcEmapMapZoomctl,"mouseup",function(){ if(this.actionid=='slither'){ this.dragend(); } }); ZdcEmapMapObj.addUserZoomControl(ZdcEmapMapZoomctl,78,ZdcEmapMapObj.ZdcMapWpx - 55); //(doc,top,left); //その他地図関係 --------------------------------------- ZdcEmapMapObj.setMouseCursor("hand"); // 2008/04/01 add Y.Matsukawa ZdcEmapMapObj.CenterFirst = false; ZdcEmapMapObj.setScreenMode(); //ZdcEmapMapObj.setMapType(4); del 2011/02/10 Y.Matsukawa ZdcEmapMapObj.reflashMap(); if(1 > -1 && 18 > -1) ZdcEmapMapObj.setMapZoomLimit(1,18); //標準コントロール if(ZdcEmapMapUsrctl == null && ZdcEmapMapZoomctl == null && 3 > 0) ZdcEmapMapObj.addMapControl(new ZdcControl(3)); //if (ZdcEmapMapZoomctl) ZdcEmapMapZoomctl.setSlitherPosition(); // add 2011/02/17 Y.Matsukawa del 2011/02/22 Y.Matsukawa //標準スケールバー if(1 > 0) ZdcEmapMapObj.addMapScaleBar(new ZdcScaleBar(1)); //標準中心アイコン if(-1 > 0) { var obj = new ZdcMapCenter(-1); obj.doc.zIndex=2999;//アイコンを背面にもっていく ZdcEmapMapObj.addMapCenter(obj); } //情報ボックス if(-1 > 0) ZdcEmapMapObj.addMapCenterInfoBox(new ZdcMapCenterInfoBox(-1)); // ZdcEmapMapObj.ZdcMapRasterEngine = false; // //初期位置 // //ZdcEmapMapObj.setMapLocation(new ZdcPoint(503173140,128440300,2), 16); 2007/11/16 mod Y.Matsukawa // if (!init_lat || !init_lon) { // init_lat = 128440300; // init_lon = 503173140; // } // // 2007/11/30 add Y.Matsukawa ↓ // //if (!init_lv) { mod 2009/09/04 Y.Matsukawa // if (!init_lv || init_lv == 0) { // init_lv = 16; // } // // 2007/11/30 add Y.Matsukawa ↑ // //ZdcEmapMapObj.setMapLocation(new ZdcPoint(init_lon, init_lat, 2), 16); 2007/11/30 mod Y.Matsukawa // ZdcEmapMapObj.setMapLocation(new ZdcPoint(init_lon, init_lat, 2), init_lv); ZdcEmapMapObj.saveMapLocation(); //クリック動作区分 if(1 == 2) { ZdcEvent.addListener(ZdcEmapMapObj, "clickmapnomove", function(e) { this.scrollToCenter(new ZdcPoint(this.MouseCLon,this.MouseCLat)); }); } //ホイールズーム区分 if(0 == 0) { ZdcEmapMapObj.setWheelOff(); } else { ZdcEmapMapObj.setWheelOn(); } //各e-map用コントロール -------------------------------- //リスト表示部 ZdcEmapListObj = document.getElementById('ZdcEmapList'); if(!ZdcEmapListObj) ZdcEmapListObj = document.createElement('DIV');//light用ダミー //詳細表示部 ZdcEmapDetailObj = document.getElementById('ZdcEmapDetail'); if(!ZdcEmapDetailObj) ZdcEmapDetailObj = document.createElement('DIV');//light用ダミー //検索条件指定部 ZdcEmapCondObj = document.getElementById('ZdcEmapCond'); if(!ZdcEmapCondObj) ZdcEmapCondObj = document.createElement('DIV');//light用ダミー //検索窓 ZdcEmapSearchWindowObj = document.getElementById('ZdcEmapSearchWindow'); if(!ZdcEmapSearchWindowObj) ZdcEmapSearchWindowObj = document.createElement('DIV');//light用ダミー //【IE6不具合対応】地図画面のリストボックスが検索ウィンドウの上に出てきてしまうのを隠すためのdiv add 2008/05/07 Y.Matsukawa ZdcEmapIE6HideSelectObj = document.getElementById('ZdcEmapIE6HideSelect'); //Myエリア追加用表示エリア ZdcEmapMyareaWrapperObj = document.getElementById('myareaWrapper'); //その他 ----------------------------------------------- //ユーザーレイヤー ZdcEmapMapUserLyr.setLayerScale(1,18); ZdcEmapMapUserLyr.setLayerType('manual'); ZdcEmapMapUserLyr.clearMarker(); ZdcEmapMapUserLyrId = ZdcEmapMapObj.addUserLayer(ZdcEmapMapUserLyr); //画面遷移履歴初期化 ZdcEmapHistoryClear(); //処理中アイコン ZdcEmapMapObj.addZdcWait(parseInt(parseInt(ZdcEmapMapSize.height) / 2) + (-12), parseInt(parseInt(ZdcEmapMapSize.width) / 2) + (-60),'読み込み中です'); } //------------------------------------------------------------- //地図制御 //------------------------------------------------------------- //地図上にカーソル表示 var ZdcEmapMapCurMrkId = null; function ZdcEmapMapCursorSet(lat, lon){ //アイコンの作成 var mrk = ZdcEmapMakeMrk(0,lat,lon, ZdcEmapIconW['@SELB'],ZdcEmapIconH['@SELB'],0,0, ZdcEmapIconOffsetX['@SELB'],ZdcEmapIconOffsetY['@SELB'],0,0,0,0, ZdcEmapIconImg['@SELB'],'', '','',0,null,null,null); if(ZdcEmapMapCurMrkId != null) ZdcEmapMapUserLyr.removeMarkerById(ZdcEmapMapCurMrkId); ZdcEmapMapCurMrkId = ZdcEmapMapUserLyr.addMarker(mrk); } //地図上のカーソル外す function ZdcEmapMapCursorRemove(){ if (ZdcEmapMapCurMrkId != null) { ZdcEmapMapUserLyr.removeMarkerById(ZdcEmapMapCurMrkId); ZdcEmapMapCurMrkId = null; } //詳細表示中 ZdcEmapMapFrontShopDetail();//詳細アイコンを前面にもってくる // 2011/06/15 K.Masuda mod [ //ZdcEmapShopMsgClose();//吹き出しを消す if( true ){ ZdcEmapShopMsgClose();//吹き出しを消す } // 2011/06/15 K.Masuda mod ] } //地図移動 function ZdcEmapMapMove(lat, lon, lvl){ var center = new ZdcPoint(lon, lat, 2); //マップ移動 // if(lvl) ZdcEmapMapObj.setMapLocation(center,lvl); // else ZdcEmapMapObj.setMapLocation(center); ZdcEmapMapObj.setMapLocation(center); if(lvl) ZdcEmapMapObj.setMapScale(lvl); } function ZdcEmapMapScroll(lat, lon){ var center = new ZdcPoint(lon, lat, 2); //マップ移動 ZdcEmapMapObj.scrollToCenter(center); } //地図移動 function ZdcEmapMapMoveBox(minlat,minlon,maxlat,maxlon,pt,noin){ var p1 = new ZdcPoint(minlon,minlat,2); var p2 = new ZdcPoint(maxlon,maxlat,2); var bx = new ZdcBox(p1,p2); if(pt != null) { var s = ZdcEmapMapObj.getMapBoxScale(bx,pt); ZdcEmapMapObj.setMapLocation(pt); if(noin != 1 || (noin == 1 && s < ZdcEmapMapObj.getMapScale())) ZdcEmapMapObj.setMapScale(s); } else { var s = ZdcEmapMapObj.getMapBoxScale(bx); ZdcEmapMapObj.setMapLocation(bx.getBoxCenter()); if(noin != 1 || (noin == 1 && s < ZdcEmapMapObj.getMapScale())) ZdcEmapMapObj.setMapScale(s); } } //------------------------------------------------------------- //画面遷移履歴関係 //------------------------------------------------------------- var ZdcEmapHistoryCnt; var ZdcEmapHistoryCntSv; // add 2010/07/08 Y.Matsukawa var ZdcEmapHistoryCntSvB; var ZdcEmapHistoryName = new Array(10); var ZdcEmapHistoryLink = new Array(10); var ZdcEmapHistorySaveCnt; var ZdcEmapHistorySaveName = new Array(10); var ZdcEmapHistorySaveLink = new Array(10); var ZdcEmapHistoryClicked = 0; //クリック時の動作 function ZdcEmapHistoryClick(cnt) { ZdcEmapHistoryCntSvB = cnt; if(ZdcEmapReadCheck()) return;//読み込み中の動作がある if(!ZdcEmapHistoryLink[cnt]) return ; if (typeof ZdcEmapCFBeforeHistoryClick == 'function') { ZdcEmapCFBeforeHistoryClick(); } ZdcEmapHistoryCntSv = ZdcEmapHistoryCnt; // add 2010/07/08 Y.Matsukawa ZdcEmapHistoryCnt = cnt - 1; ZdcEmapHistoryClicked = 1; eval(ZdcEmapHistoryLink[cnt]); ZdcEmapHistoryClicked = 0; // add 2015/03/23 K.Iwayoshi [ //相談ボタン表示処理 オプションでSMBC_DETAIL_BUTTON_SHOW_FLAGフラグに1をセットしないと動作しない if(0 == 1) { //非表示処理 // mod 2015/04/22 H.Yasunaga 下位互換用関数にてクラス名指定でエレメントを取得する[ //var eles = document.getElementsByClassName(""); var eles = CompatiblegetElementsByClassName(""); // mod 2015/4/22] for(var i = 0 ; i < eles.length ; i++){ eles[i].style.display = "none"; eles[i].removeAttribute("value"); } //相談ボタン表示フラグ ShowListButtonFlag = false; } // add 2015/03/23 K.Iwayoshi] } //遷移履歴のクリック動作がキャンセルされた場合に、履歴を元に戻す add 2010/07/08 Y.Matsukawa function ZdcEmapHistoryClickCancel() { ZdcEmapHistoryCnt = ZdcEmapHistoryCntSv; } //ひとつ戻る function ZdcEmapHistoryBack() { ZdcEmapHistoryClick(ZdcEmapHistoryCnt - 1) // add 2015/03/23 K.Iwayoshi [ //相談ボタン表示処理 オプションでSMBC_DETAIL_BUTTON_SHOW_FLAGフラグに1をセットしないと動作しない if(0 == 1) { // mod 2015/04/22 H.Yasunaga 下位互換用関数にてクラス名指定でエレメントを取得する[ //var eles = document.getElementsByClassName(""); var eles = CompatiblegetElementsByClassName(""); // mod 2015/04/22] for(var i = 0 ; i < eles.length ; i++){ eles[i].style.display = "none"; eles[i].removeAttribute("value"); } //相談ボタン表示フラグ ShowListButtonFlag = false; } // add 2015/03/23 K.Iwayoshi ] } //追加 function ZdcEmapHistoryAdd(name,link) { ZdcEmapHistoryCnt ++; //かぶるページがあれば戻す(ページ遷移や戻るボタン用の対応) for(var i = 1;i < ZdcEmapHistoryCnt;i ++) { if(ZdcEmapHistoryLink[i] == link) { ZdcEmapHistoryCnt = i; break; } } //登録 ZdcEmapHistorySet(ZdcEmapHistoryCnt,name,link); } //変更 function ZdcEmapHistoryChange(name,link) { ZdcEmapHistorySet(ZdcEmapHistoryCnt,name,link); } //クリア function ZdcEmapHistoryClear() { ZdcEmapHistoryCnt = 0; // mod 2011/05/26 K.Masuda [ //ZdcEmapHistorySet(ZdcEmapHistoryCnt,"店舗案内TOP","ZdcEmapSearchOpen('','','');"); if( false ){ ZdcEmapHistorySet(ZdcEmapHistoryCnt,"店舗案内TOP","ZdcEmapSearchOpen('','','');+QSTRING"); } else { ZdcEmapHistorySet(ZdcEmapHistoryCnt,"店舗案内TOP","ZdcEmapSearchOpen('','','');"); } // mod 2011/05/26 K.Masuda ] } //登録本処理 function ZdcEmapHistorySet(cnt,name,link) { ZdcEmapHistoryName[cnt] = name; ZdcEmapHistoryLink[cnt] = link; ZdcEmapHistoryRefresh(); } //再描画 function ZdcEmapHistoryRefresh() { var html = "",name= "",tmp = ""; var html_last = ""; // add 2009/03/04 Y.Matsukawa var html_last_arr = new Array(); // add 2010/03/23 Y.Matsukawa for(var i = 0;i < ZdcEmapHistoryCnt+1;i ++) { //htmlエンテイテイ name = ""; tmp = ZdcEmapHistoryName[i]; // add 2009/06/02 Y.Matsukawa [ // HTMLタグはスペースに置換して表示 tmp = tmp.replace(/
/ig, " "); tmp = tmp.replace(//ig, " "); tmp = tmp.replace(/<\/b>/ig, " "); // add 2009/06/02 Y.Matsukawa ] for (var j = 0; j < tmp.length; j++){ var k = tmp.charAt(j); name += {'<':'<', '>':'>', '&':'&', '"':'"'}[k] || k; } //画面に追加 if(html) html += " > "; if(ZdcEmapHistoryLink[i] && i != ZdcEmapHistoryCnt) { html += ''+name+''; html_last = ''; html_last += ''; html_last += ''; // add 2009/03/04 Y.Matsukawa html_last_arr[1] = ''; html_last_arr[2] = ''; html_last_arr[3] = ''; html_last_arr[4] = ''; html_last_arr[5] = ''; } else { html += name; } } var obj = document.getElementById('history'); if(obj) obj.innerHTML = html; // add 2009/03/04 Y.Matsukawa [ var obj_last = document.getElementById('historyLast'); if(obj_last) obj_last.innerHTML = html_last; // add 2009/03/04 Y.Matsukawa ] // add 2010/03/23 Y.Matsukawa [ for (var i = 1; i <= 5; i++) { obj_last = null; obj_last = document.getElementById('historyLast'+i); if(obj_last && html_last_arr[i]) obj_last.innerHTML = html_last_arr[i]; } // add 2010/03/23 Y.Matsukawa ] } //記憶 function ZdcEmapHistorySave() { for(i = 0;i < ZdcEmapHistoryCnt+1;i ++) { ZdcEmapHistorySaveName[i] = ZdcEmapHistoryName[i]; ZdcEmapHistorySaveLink[i] = ZdcEmapHistoryLink[i]; } ZdcEmapHistorySaveCnt = ZdcEmapHistoryCnt; } //読込 function ZdcEmapHistoryLoad() { if(!ZdcEmapHistorySaveChk()) return; for(i = 0;i < ZdcEmapHistorySaveCnt+1;i ++) { ZdcEmapHistoryName[i] = ZdcEmapHistorySaveName[i]; ZdcEmapHistoryLink[i] = ZdcEmapHistorySaveLink[i]; } ZdcEmapHistoryCnt = ZdcEmapHistorySaveCnt; ZdcEmapHistoryRefresh(); } //記憶の有無チェック function ZdcEmapHistorySaveChk() { return ZdcEmapHistorySaveCnt; } //画面履歴を押されてのアクションかチェック function ZdcEmapHistoryClickChk() { return ZdcEmapHistoryClicked; } //------------------------------------------------------------- //アイコン登録 //------------------------------------------------------------- function ZdcEmapMakeMrk(id,lat,lon, sizew,sizeh,shadowsizew,shadowsizeh, offsetx,offsety,shdoffsetx,shdoffsety,msgoffsetx,msgoffsety, image,shadowimage, data1,data2,nflg, mouseclickmarker,mouseovermarker,mouseoutmarker ,lvl // add 2009/09/04 Y.Matsukawa ) { //1,2,3 //4,5,6,7 //8,9,10,11,12,13 //14(image),15 //16,17,18 //19,20,21 //22 //mod 2011/07/05 Y.nakajima [ //lvlが数字でないときの処理を追加 if (isNaN(lvl) || !lvl || lvl < 1 || lvl >18) lvl = 0; //mod 2011/07/05 Y.nakajima ] var p,mrk,item; var icon = new ZdcIcon(); //アイコンの作成 icon.size = new ZdcSize(sizew, sizeh); icon.offset = new ZdcPixel(offsetx, offsety); //icon.image = image; 2008/11/26 Y.Matsukawa del // 2008/11/26 Y.Matsukawa add [ // icon.imageの末尾が「.gif」でないと、内部的にGIF以外として処理されてしまうので、末尾を無理矢理「.gif」にしています。 // GIF以外で処理されてしまうと、IEで印刷時に透過GIFが透過しません。 // タイムスタンプ値を付加しているのは、キャッシュ抑制のためです。これがないと、アイコン画像を差し替えた際に表示が崩れることがあります。(IEのみ) if (image.substr(image.length-4, 4) == ".gif") { icon.image = image; } else { dd = new Date(); ts = dd.getTime(); if (image.indexOf('?') < 0) { icon.image = image+"?dummy="+ts+".gif"; } else { icon.image = image+"&dummy="+ts+".gif"; } } // 2008/11/26 Y.Matsukawa add ] if(shadowimage) { icon.shadowsize = new ZdcSize(shadowsizew, shadowsizeh); icon.shdoffset = new ZdcPixel(shdoffsetx,shdoffsety); icon.shadowimage = shadowimage; } icon.msgoffset = new ZdcPixel(msgoffsetx,msgoffsety); //マーカーの作成 p = new ZdcPoint(lon, lat, 2); mrk = new ZdcMarker(p, icon); //マーカーの基本情報 mrk.id = id; mrk.data1 = data1; mrk.data2 = data2; mrk.nflg = nflg; if (lvl) mrk.lvl = lvl; // add 2009/09/04 Y.Matsukawa mrk.Point = p; mrk.mouseclickmarker = mouseclickmarker; mrk.mouseovermarker = mouseovermarker; mrk.mouseoutmarker = mouseoutmarker; //マーカークリック時のイベント登録 if(mrk.mouseclickmarker) ZdcEvent.addListener(mrk, "mouseclickmarker", mrk.mouseclickmarker); if(mrk.mouseovermarker) ZdcEvent.addListener(mrk, "mouseovermarker" , mrk.mouseovermarker); if(mrk.mouseoutmarker) ZdcEvent.addListener(mrk, "mouseoutmarker" , mrk.mouseoutmarker); // イベントなしの時はマウスカーソルを変更しない add 2010/02/02 Y.Matsukawa if (!mrk.mouseclickmarker && !mrk.mouseovermarker) mrk.setType('static'); return mrk; } //------------------------------------------------------------- //ルート探索 //------------------------------------------------------------- var ZdcEmapRouteOptionsObj; var ZdcEmapRouteSearchObj; var ZdcEmapRoutePoint1 = null; var ZdcEmapRoutePoint2 = null; var ZdcEmapRouteName1 = null; var ZdcEmapRouteName2 = null; var ZdcEmapRouteFlagLayer; var ZdcEmapRouteFlagIcon1; var ZdcEmapRouteFlagIcon2; var ZdcEmapRouteFlagStartMarker1; var ZdcEmapRouteFlagStartMarker2; //将来フォームで条件を変えられる用に変数化しておく var ZdcEmapRouteType = 1; var ZdcEmapRouteWalkPSC = 0; var ZdcEmapRouteWalkFloorFlg = 0; var ZdcEmapRouteWalkDepFloor = 0; var ZdcEmapRouteWalkDepStationFlg = 0; var ZdcEmapRouteWalkArrFloorFlg = 0; var ZdcEmapRouteWalkArrStationFlg = 0; var ZdcEmapRouteWalkArrFloor = 0; //検索入り口 function ZdcEmapRouteSearch(name1,mx1,my1,name2,mx2,my2) { if(ZdcEmapButtonNG()) return; if(ZdcEmapRouteType == 0) return; ZdcEmapPoiRouteClear(); //パラメーターの設定 ZdcEmapRouteName1 = name1; ZdcEmapRouteName2 = name2; ZdcEmapRoutePoint1 = new ZdcPoint(mx1, my1, 2); ZdcEmapRoutePoint2 = new ZdcPoint(mx2, my2, 2); if(ZdcEmapRouteType == 1 || ZdcEmapRouteType == 3) ZdcEmapRouteSearchWalk(ZdcEmapRouteName1,ZdcEmapRoutePoint1,ZdcEmapRouteName2,ZdcEmapRoutePoint2); if(ZdcEmapRouteType == 2) ZdcEmapRouteSearchCar(ZdcEmapRouteName1,ZdcEmapRoutePoint1,ZdcEmapRouteName2,ZdcEmapRoutePoint2); //画面の移動 ZdcEmapMapMoveBox(my1,mx1,my2,mx2); } //歩行者検索 function ZdcEmapRouteSearchWalk(name1,p1,name2,p2) { ZdcEmapReadOn(); //オブジェクト作成 ZdcEmapRouteOptionsObj = new ZdcPRouteSearchOptions(); ZdcEmapRouteSearchObj = new ZdcPRouteSearch(); ZdcEmapRouteOptionsObj.showMarker = false; ZdcEmapRouteOptionsObj.pointFlg = 2; ZdcEmapRouteSearchObj.timeout = 5000; ZdcEvent.addListener(ZdcEmapRouteSearchObj, 'end', ZdcEmapRouteSearchEndWalk); ZdcEmapMapObj.addPRouteSearch(ZdcEmapRouteSearchObj); //デザイン指定 ZdcEmapRouteSearchObj.routeWidth = 5; ZdcEmapRouteSearchObj.routeOpacity = "0.5"; ZdcEmapRouteSearchObj.routeColor = "#0000ff"; //位置指定 ZdcEmapRouteOptionsObj.arrivalPoint.point = p1; ZdcEmapRouteOptionsObj.departurePoint.point = p2; //検索条件指定 //共通 ZdcEmapRouteOptionsObj.psc = ZdcEmapRouteWalkPSC; ZdcEmapRouteOptionsObj.floorFlg = ZdcEmapRouteWalkFloorFlg; //到着点(出発点) ZdcEmapRouteOptionsObj.arrivalPoint.name = name1; ZdcEmapRouteOptionsObj.arrivalPoint.floorFlg = ZdcEmapRouteWalkArrFloorFlg; ZdcEmapRouteOptionsObj.arrivalPoint.stationFlg = ZdcEmapRouteWalkArrStationFlg; ZdcEmapRouteOptionsObj.arrivalPoint.floor = ZdcEmapRouteWalkArrFloor; //出発点(拠点) ZdcEmapRouteOptionsObj.departurePoint.name = name2; ZdcEmapRouteOptionsObj.departurePoint.stationFlg = ZdcEmapRouteWalkDepStationFlg; ZdcEmapRouteOptionsObj.departurePoint.floor = ZdcEmapRouteWalkDepFloor; //検索開始 ZdcEmapRouteSearchObj.search(ZdcEmapRouteOptionsObj); } function ZdcEmapRouteSearchEndWalk() { ZdcEmapReadOff(); var result = this.getResult(); if(result && (result.status !== 0)) { //エラー処理 if(ZdcEmapRouteType == 1) { //失敗だった場合自動車で再検索する ZdcEmapRouteSearchCar(ZdcEmapRouteName1,ZdcEmapRoutePoint1,ZdcEmapRouteName2,ZdcEmapRoutePoint2); } else { alert('距離が長すぎるか探索に失敗しました。 [' + result.status + ']'); } return; } //スタート/ゴールのアイコンを描画 ZdcEmapRouteFlag(); //ルート距離表示 add 2010/07/23 Y.Matsukawa var ZdcEmapRouteDistance = document.getElementById("ZdcEmapRouteDistance"); if (ZdcEmapRouteDistance) { distance = result.distance; if (distance < 1000) { distance = distance+' m'; } else { distance = distance / 100; distance = Math.round(distance); distance = distance / 10; distance += ' km'; } ZdcEmapRouteDistance.innerHTML = distance; } ZdcEmapRouteSearchEndAction(result, "Walk"); } //自動車検索 function ZdcEmapRouteSearchCar(name1,p1,name2,p2) { ZdcEmapReadOn(); //オブジェクト作成 ZdcEmapRouteOptionsObj = new ZdcRouteSearchOptions(); ZdcEmapRouteSearchObj = new ZdcRouteSearch(); ZdcEmapRouteOptionsObj.showMarker = false; ZdcEmapRouteOptionsObj.pointFlg = 2; ZdcEmapRouteSearchObj.timeout = 5000; ZdcEvent.addListener(ZdcEmapRouteSearchObj, 'end', ZdcEmapRouteSearchEndCar); ZdcEmapMapObj.addRouteSearch(ZdcEmapRouteSearchObj); //デザイン指定 ZdcEmapRouteSearchObj.routeWidth = 5; ZdcEmapRouteSearchObj.routeOpacity = "0.5"; ZdcEmapRouteSearchObj.routeColor = "#0000ff"; //位置指定 ZdcEmapRouteOptionsObj.arrivalPoint = p1; ZdcEmapRouteOptionsObj.departurePoint = p2; //検索開始 ZdcEmapRouteSearchObj.search(ZdcEmapRouteOptionsObj); } function ZdcEmapRouteSearchEndCar() { ZdcEmapReadOff(); var result = this.getResult(); if(result && (result.status !== 0)) { //エラー処理 alert('距離が長すぎるか探索に失敗しました。 [' + result.status + ']'); return; } //スタート/ゴールのアイコンを描画 ZdcEmapRouteFlag(); //ルート距離表示 add 2010/07/23 Y.Matsukawa var ZdcEmapRouteDistance = document.getElementById("ZdcEmapRouteDistance"); if (ZdcEmapRouteDistance) { distance = result.distance; if (distance < 1000) { distance = distance+' m'; } else { distance = distance / 100; distance = Math.round(distance); distance = distance / 10; distance += ' km'; } ZdcEmapRouteDistance.innerHTML = distance; } ZdcEmapRouteSearchEndAction(result, "Car"); } function ZdcEmapRouteSearchEndAction(result, routeType) { var ele,wgs,dms,time=0,hh=0,mi=0; var time=0; if (routeType == "Walk") { mi = parseInt(result.distance / 4000 * 60);//分 hh = parseInt(mi/60);//時間 mi = (mi - hh*60); } else { var cnt = result.getLinkCount(0); var link = new Array(); for(i=0; i < cnt; i++) { var rlink = result.getLink(i, 0); if(rlink.roadType == 0 || rlink.roadType == 1) { // 高速 time += rlink.distance / (80*1000); } else { // 一般 time += rlink.distance / (40*1000); } } if (time > 0) { mi = parseInt(time*10000/166);//分 hh = parseInt(mi/60);//時間 mi = (mi - hh*60); } } ele = document.getElementById("ZdcEmapRouteTimeH"); if (ele) ele.innerHTML = hh; if (hh < 10) hh = "0"+hh; ele = document.getElementById("ZdcEmapRouteTimeHH"); if (ele) ele.innerHTML = hh; ele = document.getElementById("ZdcEmapRouteTimeN"); if (ele) ele.innerHTML = mi; if (mi < 10) mi = "0"+mi; ele = document.getElementById("ZdcEmapRouteTimeNN"); if (ele) ele.innerHTML = mi; } //ルート削除 function ZdcEmapPoiRouteClear() { if(!ZdcEmapRouteSearchObj) return; if(ZdcEmapRouteOptionsObj.departurePoint.point) { try{ ZdcEmapMapObj.ClearPRouteLayer();//1.5まで } catch(e) { ZdcEmapRouteSearchObj.clearRoute();//1.6以降 } } else { ZdcEmapMapObj.removeRouteSearch(); } delete ZdcEmapRouteOptionsObj; delete ZdcEmapRouteSearchObj; //スタート/ゴールのレイヤーを削除 if(ZdcEmapRouteFlagLayer) ZdcEmapRouteFlagLayer.clearMarker(); ZdcEmapMapObj.removeUserLayer(ZdcEmapRouteFlagLayer); delete ZdcEmapRouteFlagIcon1; delete ZdcEmapRouteFlagIcon2; } //ルート開始/終了地点のアイコンを描画 function ZdcEmapRouteFlag() { //ユーザレイヤー作成 ZdcEmapRouteFlagLayer = new ZdcUserLayer(); ZdcEmapRouteFlagLayer.setLayerScale(1, 18); ZdcEmapRouteFlagLayer.setLayerType('manual'); //アイコン作成 ZdcEmapRouteFlagIcon1 = new ZdcIcon(); ZdcEmapRouteFlagIcon1.offset = new ZdcPixel(-4, -36); ZdcEmapRouteFlagIcon1.image = 'https://www.e-map.ne.jp/pc/img/route/RouteEnd.png?k_e=rokinbk'; ZdcEmapRouteFlagIcon2 = new ZdcIcon(); ZdcEmapRouteFlagIcon2.offset = new ZdcPixel(-4, -36); ZdcEmapRouteFlagIcon2.image = 'https://www.e-map.ne.jp/pc/img/route/RouteStart.png?k_e=rokinbk'; //ユーザレイヤーに追加 if(ZdcEmapRoutePoint1) ZdcEmapRouteFlagLayer.addMarker(new ZdcMarker(ZdcEmapRoutePoint1, ZdcEmapRouteFlagIcon1)); if(ZdcEmapRoutePoint2) ZdcEmapRouteFlagLayer.addMarker(new ZdcMarker(ZdcEmapRoutePoint2, ZdcEmapRouteFlagIcon2)); //地図にユーザレイヤーを追加 ZdcEmapMapObj.addUserLayer(ZdcEmapRouteFlagLayer); //ルートレイヤーの上に移動 ZdcEmapRouteFlagLayer.doc.style.zIndex = "3999"; } // add 2011/11/25 Y.Matsukawa //------------------------------------------------------------- //ルート探索モード //------------------------------------------------------------- function ZdcEmapFixRouteSearch(shopItem) { ZdcEmapRouteShopItem = shopItem; if (ZdcEmapRouteShopItem) { for(prop in ZdcEmapRouteShopItem){ ele = document.getElementById("ZdcEmapRouteShop_"+prop); if (ele) ele.innerHTML = eval("ZdcEmapRouteShopItem."+prop); } } ZdcEmapRouteSearch('店舗', ZdcEmapRouteShopItem.lon, ZdcEmapRouteShopItem.lat, '地図中心', ZdcEmapRouteStartLon, ZdcEmapRouteStartLat); } function ZdcEmapFixRouteSelectShop(id) { var shopItem = null; if (ZdcEmapRouteShopItems) { for(i=0; i 18) return; //オブジェクトの作成 ZdcEmapTipsMarker = ZdcEmapMapUserLyr.getMarkerById(ZdcEmapMapPoiMrkId[id]); if(!ZdcEmapMapObj || !ZdcEmapTipsMarker) return; if(!ZdcEmapTipsShape) ZdcEmapTipsShape = new ZdcShape.Text(); if(!ZdcEmapTipsShapeLayer) ZdcEmapTipsShapeLayer = new ZdcShape.Layer(); ZdcEmapMapObj.addShapeLayer(ZdcEmapTipsShapeLayer); ZdcEmapTipsShapeLayer.setZIndex(4010); //テキストの設定 ZdcEmapTipsShape.textString = ZdcEmapTipsMarker.data1; ZdcEmapTipsShape.offsetx = 15; ZdcEmapTipsShape.offsety = 15; ZdcEmapTipsShape.font = "10pt serif"; ZdcEmapTipsShape.borderWidth = 1; ZdcEmapTipsShape.bgColor = "white"; ZdcEmapTipsShape.shadowFlg = true; ZdcEmapTipsShape.shadowX = 3; ZdcEmapTipsShape.shadowY = 3; ZdcEmapTipsShape.opacity = 30; //表示位置の調整 var box = ZdcEmapMapObj.getMapBoundBox(); var point = new ZdcPoint(ZdcEmapTipsMarker.Point.mx, ZdcEmapTipsMarker.Point.my, 2); var x,y,v,h; if(Math.abs(box.minx - point.mx) < Math.abs(box.maxx - point.mx)){ h = "left"; ZdcEmapTipsShape.offsetx = 15; }else{ h = "right"; ZdcEmapTipsShape.offsetx = -15; } if(Math.abs(box.miny - point.my) < Math.abs(box.maxy - point.my)){ v = "bottom"; ZdcEmapTipsShape.offsety = -15; }else{ v = "top"; ZdcEmapTipsShape.offsety = 15; } ZdcEmapTipsShape.anchor = h + "-" + v; ZdcEmapTipsShape.setPoint(point); ZdcEmapTipsShapeLayer.addShape(ZdcEmapTipsShape); //描画中心が地図範囲外の場合移動する if(ZdcEmapTipsMarker.Point.mx < box.minx || ZdcEmapTipsMarker.Point.my < box.miny || ZdcEmapTipsMarker.Point.mx > box.maxx || ZdcEmapTipsMarker.Point.my > box.maxy) ZdcEmapMapObj.setMapLocation(ZdcEmapTipsMarker.Point); //描画 if(!ZdcEmapTipsTopMarkerLayer) ZdcEmapTipsTopMarkerLayer = new ZdcUserLayer();//最上位マーカーレイヤー if(!ZdcEmapTipsTopMarker) ZdcEmapTipsTopMarker = new ZdcMarker(new ZdcPoint(ZdcEmapTipsMarker.getPoint().lon ,ZdcEmapTipsMarker.getPoint().lat), ZdcEmapTipsMarker.getIcon()); ZdcEmapTipsTopMarkerLayer.addMarker(ZdcEmapTipsTopMarker); ZdcEmapMapObj.addUserLayer(ZdcEmapTipsTopMarkerLayer); ZdcEmapTipsTopMarkerLayer.doc.style.zIndex = 4011; ZdcEmapTipsTopMarker.mouseclickmarker = ZdcEmapTipsMarker.mouseclickmarker; //イベントの設定 if(ZdcEmapTipsTopMarker.mouseclickmarker) ZdcEvent.addListener(ZdcEmapTipsTopMarker, "mouseclickmarker", ZdcEmapTipsTopMarker.mouseclickmarker); ZdcEvent.addListener(ZdcEmapTipsTopMarker, "mouseoutmarker", ZdcEmapTipsHideInfo); ZdcEmapTipsTimerID = setTimeout(ZdcEmapTipsHideInfoInterval, ZdcEmapTipsInterval); } //レイヤーを閉じる function ZdcEmapTipsClose() { //シェイプレイヤーを閉じる if(ZdcEmapTipsShapeLayer) { ZdcEmapTipsShapeLayer.clearShape(); ZdcEmapMapObj.removeShapeLayer(ZdcEmapTipsShapeLayer); } ZdcEmapTipsShapeLayer = null; ZdcEmapTipsShape = null; //最上位マーカーレイヤーを閉じる if(ZdcEmapTipsTopMarkerLayer) { ZdcEmapTipsTopMarkerLayer.clearMarker(); ZdcEmapMapObj.removeUserLayer(ZdcEmapTipsTopMarkerLayer); ZdcEmapTipsTopMarker.mouseclickmarker = null; } ZdcEmapTipsTopMarker = null; ZdcEmapTipsTopMarkerLayer = null; //タイマーのクリア if(ZdcEmapTipsTimerID) clearTimeout(ZdcEmapTipsTimerID); ZdcEmapTipsTimerID = null; } //強制的に簡易噴出し非表示メソッド function ZdcEmapTipsHideInfoInterval() { if(ZdcEmapTipsTimerID) clearTimeout(ZdcEmapTipsTimerID); ZdcEmapTipsTimerID = null; ZdcEmapTipsClose(); } //簡易噴出し非表示メソッド function ZdcEmapTipsHideInfo() { if(!ZdcEmapTipsIsMouseOutMarker()) return; ZdcEmapTipsClose(); } //IEでmouseoutイベントがマーカーオブジェクトの子ノードの間で発生しているかどうか function ZdcEmapTipsIsMouseOutMarker() { if(!document.all) return true; if(!ZdcEmapTipsTopMarker) return true; if(!window.event || window.event.type != "mouseout") return false; var tmp = window.event.toElement; while(tmp) { if(tmp == ZdcEmapTipsTopMarker.doc) return false; tmp = tmp.parentElement; } return true; } //------------------------------------------------------------- //その他 //------------------------------------------------------------- //HTML読み込み用ajax通信関数 //function ZdcEmapHttpRequestHtml(url,func) { mod 2009/02/16 Y.Matsukawa function ZdcEmapHttpRequestHtml(url,func,nowaitmsg) { //ZdcEmapReadOn();//読み込み中フラグon mod 2009/02/16 Y.Matsukawa if(!nowaitmsg) ZdcEmapReadOn();//読み込み中フラグon //通信処理 var ZdcEmapHttpRequestObj = new ZdcEmapHttpRequest('EUC', 'EUC'); ZdcEmapHttpRequestObj.request(url, function(html,status) { if(status == 3) status = 0;//タイムアウトは無視 連続呼び出し時の動作が安定しないので if(status == 9) status = 0;//テンプレートが無い場合に対応 if(html == null) html = "";//nullは出さない if(status == 0) { func(html,status); } else { //エラー処理 func(html,status); } ZdcEmapReadOff();//読み込み中フラグoff },10000); } //ボタン押下拒否判定 function ZdcEmapButtonNG() { if(ZdcEmapReadCheck()) return 1;//読み込み中の動作がある if(ZdcEmapSearchWindowObj.innerHTML != "") return 1;//検索ウィンドウが開いている return 0; } //読み込み中フラグ var ZdcEmapReading = 0;//読み込み中・処理中フラグ function ZdcEmapReadOn() { ZdcEmapReading ++; if(ZdcEmapReading == 1) ZdcEmapMapObj.visibleZdcWait(); } function ZdcEmapReadOff() { if(ZdcEmapReading <= 0) return; ZdcEmapReading --; if(ZdcEmapReading == 0) ZdcEmapMapObj.hiddenZdcWait(); } function ZdcEmapReadCheck() { if(ZdcEmapReading > 0) return 1;//読み込み中の動作がある return 0; } //指定された駅・施設アイコンを前面にもってくる function ZdcEmapMapFrontPoi(id){ if(ZdcEmapMapPoiMrkId[id] != null) { var mrk = ZdcEmapMapUserLyr.getMarkerById(ZdcEmapMapPoiMrkId[id]); ZdcEmapMapUserLyr.removeMarkerById(ZdcEmapMapPoiMrkId[id]); ZdcEmapMapPoiMrkId[id] = ZdcEmapMapUserLyr.addMarker(mrk); //イベント当てなおし if(mrk.mouseclickmarker) ZdcEvent.addListener(mrk, "mouseclickmarker", mrk.mouseclickmarker); if(mrk.mouseovermarker) ZdcEvent.addListener(mrk, "mouseovermarker" , mrk.mouseovermarker); if(mrk.mouseoutmarker) ZdcEvent.addListener(mrk, "mouseoutmarker" , mrk.mouseoutmarker); } } // アイコンを前面に移動(APIv1.10で実装予定の機能を先行して実装) add 2009/10/14 Y.Matsukawa //v110 add -- set top zindex for marker ZdcMarker.prototype.setTopZIndex=function(idx){ // if (this.parentLayer.addmapstatus){ // for (var i=0; i