// マーカー var ZdcEmapMapShopMrkId = new Array(30); var ZdcEmapMapShopMrkCnt = null; // 地図 var ZdcEmapMapObj = null; // 地図余白領域 add 2011/08/26 H.osamoto var ZdcEmapAnyDispPx = 0; var ZdcEmapAnyDispPy = 0; // add 2011/12/26 K.Masuda // ユーザーレイヤー var ZdcEmapMapUserLyr = new ZdcUserLayer(); var ZdcEmapMapUserLyrId = null; // マーカー var ZdcEmapMapShopMrkId = new Array(30); var ZdcEmapMapShopMrkCnt = null; var ZdcEmapMapShopDetailMrkId = null; var ZdcEmapMapCurFocusMrkId = null; var ZdcEmapMapPoiMrkId = new Array(20); // add 2011/07/13 Y.Matsukawa var ZdcEmapMapPoiMrkCnt = null; // add 2011/07/13 Y.Matsukawa // 吹き出し var ZdcEmapMsg = new ZdcUserMsgWindow(); // アイコン情報 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/smt/lawson/img/000000.gif';ZdcEmapIconW['@SHOP'] = 11;ZdcEmapIconH['@SHOP'] = 11;ZdcEmapIconOffsetX['@SHOP'] = -6;ZdcEmapIconOffsetY['@SHOP'] = -6;ZdcEmapIconImg['@NEW'] = 'https://www.e-map.ne.jp/cgi/icon_select.cgi?cid=lawson&icon_id=@NEW.gif';ZdcEmapIconW['@NEW'] = 23;ZdcEmapIconH['@NEW'] = 10;ZdcEmapIconOffsetX['@NEW'] = -12;ZdcEmapIconOffsetY['@NEW'] = -5;ZdcEmapIconImg['@SEL'] = 'https://www.e-map.ne.jp/smt/lawson/img/icon_cursor/0003.gif';ZdcEmapIconW['@SEL'] = 51;ZdcEmapIconH['@SEL'] = 50;ZdcEmapIconOffsetX['@SEL'] = -26;ZdcEmapIconOffsetY['@SEL'] = -25;ZdcEmapIconImg['@SELB'] = 'https://www.e-map.ne.jp/smt/lawson/img/icon_cursor/0000.gif';ZdcEmapIconW['@SELB'] = 51;ZdcEmapIconH['@SELB'] = 50;ZdcEmapIconOffsetX['@SELB'] = -26;ZdcEmapIconOffsetY['@SELB'] = -25;ZdcEmapIconImg['@TP'] = 'https://www.e-map.ne.jp/smt/lawson/img/tp11.gif';ZdcEmapIconW['@TP'] = 11;ZdcEmapIconH['@TP'] = 11;ZdcEmapIconOffsetX['@TP'] = -6;ZdcEmapIconOffsetY['@TP'] = -6;ZdcEmapIconImg['1'] = 'https://www.e-map.ne.jp/cgi/icon_select.cgi?cid=lawson&icon_id=1';ZdcEmapIconW['1'] = 25;ZdcEmapIconH['1'] = 25;ZdcEmapIconOffsetX['1'] = -13;ZdcEmapIconOffsetY['1'] = -13;ZdcEmapIconImg['2'] = 'https://www.e-map.ne.jp/cgi/icon_select.cgi?cid=lawson&icon_id=2';ZdcEmapIconW['2'] = 25;ZdcEmapIconH['2'] = 25;ZdcEmapIconOffsetX['2'] = -13;ZdcEmapIconOffsetY['2'] = -13;ZdcEmapIconImg['3'] = 'https://www.e-map.ne.jp/cgi/icon_select.cgi?cid=lawson&icon_id=3';ZdcEmapIconW['3'] = 21;ZdcEmapIconH['3'] = 21;ZdcEmapIconOffsetX['3'] = -11;ZdcEmapIconOffsetY['3'] = -11;ZdcEmapIconImg['4'] = 'https://www.e-map.ne.jp/cgi/icon_select.cgi?cid=lawson&icon_id=4';ZdcEmapIconW['4'] = 25;ZdcEmapIconH['4'] = 25;ZdcEmapIconOffsetX['4'] = -13;ZdcEmapIconOffsetY['4'] = -13;ZdcEmapIconImg['5'] = 'https://www.e-map.ne.jp/cgi/icon_select.cgi?cid=lawson&icon_id=5';ZdcEmapIconW['5'] = 21;ZdcEmapIconH['5'] = 21;ZdcEmapIconOffsetX['5'] = -11;ZdcEmapIconOffsetY['5'] = -11;ZdcEmapIconImg['6'] = 'https://www.e-map.ne.jp/cgi/icon_select.cgi?cid=lawson&icon_id=6';ZdcEmapIconW['6'] = 25;ZdcEmapIconH['6'] = 25;ZdcEmapIconOffsetX['6'] = -13;ZdcEmapIconOffsetY['6'] = -13; var ZdcEmapSearchFirst = null;//位置決定後の最初の検索か否か var ZdcEmapSearchRetry = null;//地図範囲で検索した結果が0件だった場合に、半径指定で再検索 add 2012/10/24 Y.Matsukawa var ZdcEmapSearchRetryVCnt = 0;//分布地図再検索後、最初のn件が入りきる縮尺に変更する add 2012/10/24 Y.Matsukawa var ZdcEmapSearchCond = null; //絞り込み条件 add 2012/10/24 Y.Matsukawa var ZdcEmapSearchPoint = null;//検索した位置を保持 var ZdcEmapSearchScale = null;//検索した縮尺を保持 var ZdcEmapSearchClickFlg = 0;//最寄検索中に更に地図移動した場合のコンフリクト防止フラグ add 2011/06/29 Y.Matsukawa var ZdcEmapLastOrientation = null;//ウィンドウ縦横 var ZdcEmapIconDt = new Array(); // add 2012/08/16 K.Masuda [ // 最大縮尺、最小縮尺 // var max_lvl = "1"; // var min_lvl = "15"; var max_lvl = parseInt("1"); var min_lvl = parseInt("15"); // add 2012/08/16 K.Masuda ] //------------------------------------------------------------- //自動検索のイベント管理 //------------------------------------------------------------- var ZdcEmapSearchEventFlg = 0; var ZdcEmapSearchEventFunc = null; var ZdcEmapSearchEventDragmapend; var ZdcEmapSearchEventScrollmapend; var ZdcEmapSearchEventChangezoomend; function ZdcEmapRefMap() { var obj = document.getElementById("ZdcEmapMap"); if (obj) { obj.offsetLeft; } } // del 2020/10/08 MLAB.HieuHuynh [ //function ZdcEmapInit(init_lat, init_lon, init_lv){ // mod 2011/08/10 H.osamoto // function ZdcEmapInit(init_lat, init_lon, init_lv, nmapflg){ // ZdcEmapWindowWidth = window.innerWidth; // ZdcEmapWindowHeight = window.innerHeight; // ZdcEmapLastOrientation = window.orientation; // ZdcEmapLastOrientation = 999; // // add 2011/08/10 H.osamoto [ // if (nmapflg && 0 > 0) { // ZdcEmapWindowHeight = ZdcEmapWindowHeight - 0; // ZdcEmapAnyDispPx = 0; // } // if (!nmapflg && 0 > 0) { // ZdcEmapWindowHeight = ZdcEmapWindowHeight - 0; // ZdcEmapAnyDispPx = 0; // } // // add 2011/08/10 H.osamoto ] // // add 2011/12/26 K.Masuda [ // if (nmapflg && 0 > 0) { // ZdcEmapWindowWidth = ZdcEmapWindowWidth - 0; // ZdcEmapAnyDispPy = 0; // } // if (!nmapflg && 0 > 0) { // ZdcEmapWindowWidth = ZdcEmapWindowWidth - 0; // ZdcEmapAnyDispPy = 0; // } // // add 2011/12/26 K.Masuda ] // document.getElementById("ZdcEmapMap").setAttribute( 'style', // 'postion:absolute; top:0px; left:0px; width:' + ZdcEmapWindowWidth + 'px; height:' + ZdcEmapWindowHeight + 'px; z-index:0;' ); // if (!init_lv || init_lv == 0) { // init_lv = 14; // } // ZdcEmapMapObj = new ZdcMap(document.getElementById("ZdcEmapMap"), // new ZdcPoint(init_lon, init_lat, 2), // init_lv // , 2 // add 2011/09/01 Y.Matsukawa // ); // // 地図の縮尺レベル変更イベント( changezoomend ) をハンドルする // ZdcEvent.addListener( ZdcEmapMapObj, 'changezoomend', function() { // // セレクトボックスの選択を変更する // ZdcEmapMapScaleToLvlSelect(); // // ズームボタンのイメージを変更する // if(0 == '1') ZdcEmapLvlScaleBtn(); // add 2012/08/16 K.Masuda // } ); // ZdcEmapMapObj.addMapScaleBar( new ZdcScaleBar( '3' ) ); // ZdcEmapMapObj.reflashMap(); // ZdcEmapMapObj.saveMapLocation(); // ZdcEmapMapScaleToLvlSelect(); // //ユーザーレイヤー // ZdcEmapMapUserLyr.setLayerScale(1,15); // ZdcEmapMapUserLyr.clearMarker(); // ZdcEmapMapUserLyrId = ZdcEmapMapObj.addUserLayer(ZdcEmapMapUserLyr); // // add 2016/11/09 K.Tani [ // document.getElementById("ZdcEmapMap").ontouchmove = function ( event ) { // event.preventDefault(); // }; // // add 2016/11/09 K.Tani ] // ZdcEvent.addListener(ZdcEmapMapObj, "clickmapnomove", function(e) { // ZdcEmapShopMsgClose(); // }); // // add 2012/02/22 H.osamoto [ // ZdcEvent.addListener(ZdcEmapMapObj, "changezoomend", ZdcEmapMapEventLogZoom); // ZdcEvent.addListener(ZdcEmapMapObj, "dragmapend", ZdcEmapMapEventLogLoc); // // add 2012/02/22 H.osamoto ] // if(0 == '1') ZdcEmapLvlScaleBtn(); // add 2012/08/16 K.Masuda // setTimeout(ZdcEmapRefMap, 100); // } // del 2020/10/08 MLAB.HieuHuynh ] function ZdcEmapShopMapInit(kid,lat,lon,icnno,nflg,lvl,mode) { var mrk,tmp; var tooltip_w,tooltip_h,tooltip_offset_x,tooltip_offset_y; // add 2011/08/10 H.Osamoto if (lvl && lvl != 0) { ZdcEmapMapObj.setMapScale(lvl); } else if(14 > 0) { ZdcEmapMapObj.setMapScale(14); } // add 2011/08/10 H.Osamoto [ // add 2011/08/10 H.Osamoto ] // //フォーカスカーソルを表示する // mrk = ZdcEmapMakeMrk(0,lat,lon, // ZdcEmapIconW['@SEL'],ZdcEmapIconH['@SEL'], // 0,0, // ZdcEmapIconOffsetX['@SEL'],ZdcEmapIconOffsetY['@SEL'], // 0,0, // 0,0, // ZdcEmapIconImg['@SEL'],'', // '','',0, // null // ); // if(ZdcEmapMapCurFocusMrkId != null) ZdcEmapMapUserLyr.removeMarkerById(ZdcEmapMapCurFocusMrkId); // ZdcEmapMapCurFocusMrkId = ZdcEmapMapUserLyr.addMarker(mrk); // mrk.setTopZIndex(3); //店舗アイコンを表示する if(nflg == 1) tmp = ZdcEmapIconImg["@NEW"]; else tmp = ""; // add 2011/08/10 H.Osamoto [ // アイコン位置を指定する場合は通常のnewアイコン表示処理を行わない if (tooltip_w && tooltip_h) { tmp = ""; } // add 2011/08/10 H.Osamoto ] if (ZdcEmapIconImg[icnno] == null) icnno = "@TP"; // mrk = ZdcEmapMakeMrk(0,lat,lon, // ZdcEmapIconW[icnno],ZdcEmapIconH[icnno], // ZdcEmapIconW['@NEW'],ZdcEmapIconH['@NEW'], // ZdcEmapIconOffsetX[icnno],ZdcEmapIconOffsetY[icnno], // ZdcEmapIconW[icnno]-ZdcEmapIconW['@NEW'],ZdcEmapIconH[icnno], // 0,-8, // ZdcEmapIconImg[icnno],tmp, // kid,icnno,nflg, // // function() { ZdcEmapShopMsg(null, 1, 'detail'); } // ); if (mode == "nomsgbox") { mrk = ZdcEmapMakeMrk(0,lat,lon, ZdcEmapIconW[icnno],ZdcEmapIconH[icnno], ZdcEmapIconW['@NEW'],ZdcEmapIconH['@NEW'], ZdcEmapIconOffsetX[icnno],ZdcEmapIconOffsetY[icnno], ZdcEmapIconW[icnno]-ZdcEmapIconW['@NEW'],ZdcEmapIconH[icnno], 0,-8, ZdcEmapIconImg[icnno],tmp, kid,icnno,nflg, null ); } else { mrk = ZdcEmapMakeMrk(0,lat,lon, ZdcEmapIconW[icnno],ZdcEmapIconH[icnno], ZdcEmapIconW['@NEW'],ZdcEmapIconH['@NEW'], ZdcEmapIconOffsetX[icnno],ZdcEmapIconOffsetY[icnno], ZdcEmapIconW[icnno]-ZdcEmapIconW['@NEW'],ZdcEmapIconH[icnno], 0,-8, ZdcEmapIconImg[icnno],tmp, kid,icnno,nflg, function() { ZdcEmapShopMsg(null, 1, 'detail'); } ); } if(ZdcEmapMapShopDetailMrkId != null) ZdcEmapMapUserLyr.removeMarkerById(ZdcEmapMapShopDetailMrkId); ZdcEmapMapShopDetailMrkId = ZdcEmapMapUserLyr.addMarker(mrk); // add 2011/08/10 H.osamoto [ if (nflg == 1) { var tooltip = new ZdcTooltip(); var tooltipHTML = ''; tooltip.setZdcTooltip(mrk.Point, tooltipHTML, tooltip_w, tooltip_h, new ZdcPixel(tooltip_offset_x, tooltip_offset_y), 4); tooltip.mrkid = mrk.id; ZdcEvent.addListener(tooltip, "mouseclicktooltip", function() { ZdcEmapShopMsg(this.mrkid, 1, 'detail'); }); ZdcEmapMapUserLyr.addZdcTooltip(tooltip); mrk.toolid = tooltip.id; ZdcEmapMapUserLyr.visibleZdcTooltipById(mrk.toolid); } // add 2011/08/10 H.osamoto ] if (mode == '') { ZdcEmapShopMsg(null, 1, 'detail'); ZdcEmapMapObj.reflashMap(); } ZdcEmapMapObj.saveMapLocation(); } function ZdcEmapMaplinkInit(lat,lon,icnno,lvl,parm_nm) { var mrk,tmp; if (lvl && lvl != 0) { ZdcEmapMapObj.setMapScale(lvl); } else if(14 > 0) { ZdcEmapMapObj.setMapScale(14); } if (icnno == '') icnno = '@SHOP'; //店舗アイコンを表示する mrk = ZdcEmapMakeMrk(0,lat,lon, ZdcEmapIconW[icnno],ZdcEmapIconH[icnno], ZdcEmapIconW['@NEW'],ZdcEmapIconH['@NEW'], ZdcEmapIconOffsetX[icnno],ZdcEmapIconOffsetY[icnno], ZdcEmapIconW[icnno]-ZdcEmapIconW['@NEW'],ZdcEmapIconH[icnno], 0,-8, ZdcEmapIconImg[icnno],"", null,icnno,null, function() { ZdcEmapShopMsgMaplink(parm_nm); } ); if(ZdcEmapMapShopDetailMrkId != null) ZdcEmapMapUserLyr.removeMarkerById(ZdcEmapMapShopDetailMrkId); ZdcEmapMapShopDetailMrkId = ZdcEmapMapUserLyr.addMarker(mrk); ZdcEmapShopMsgMaplink(parm_nm); ZdcEmapMapObj.reflashMap(); ZdcEmapMapObj.saveMapLocation(); } function ZdcEmapMakeMrk(id,lat,lon, sizew,sizeh,shadowsizew,shadowsizeh, offsetx,offsety,shdoffsetx,shdoffsety,msgoffsetx,msgoffsety, image,shadowimage, data1,data2,nflg, mouseclickmarker ,lvl ) { var p,mrk,item; var icon = new ZdcIcon(); //アイコンの作成 icon.size = new ZdcSize(sizew, sizeh); icon.offset = new ZdcPixel(offsetx, offsety); 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"; } } 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; mrk.Point = p; mrk.mouseclickmarker = mouseclickmarker; //マーカークリック時のイベント登録 if(mrk.mouseclickmarker) ZdcEvent.addListener(mrk, "mouseclickmarker", mrk.mouseclickmarker); return mrk; } //フキダシ表示 function ZdcEmapShopMsg(id, link, maptype, overlap) { // set default value for overlap parameter overlap = typeof overlap !== 'undefined' ? overlap : ''; ZdcEmapReadOn(); ZdcEmapShopMsgClose(); // //アイコンを前面に出す // if(id != null) ZdcEmapMapFrontShopMrk(id); // else ZdcEmapMapFrontShopDetail(); //デザイン ZdcEmapMsg.setImage('https://www.e-map.ne.jp/smt/lawson/img/msg/0002.png',new ZdcSize(242,95), 'https://www.e-map.ne.jp/smt/lawson/img/msg/0002-t.png',new ZdcSize(194,67), 'https://www.e-map.ne.jp/smt/lawson/img/msg/0002-x.png',new ZdcSize(13,13), 'https://www.e-map.ne.jp/smt/lawson/img/msg/0002-s.png',new ZdcSize(13,13), null); ZdcEmapMsg.setDocPosition(0,0,11,8,11,224,55,0); ZdcEmapMsg.setDocOffset(-110,-90); ZdcEmapMsg.setTextClass('UserMsgWindowTextStyle'); if(id != null) var obj = ZdcEmapMapUserLyr.getMarkerById(ZdcEmapMapShopMrkId[id]); else var obj = ZdcEmapMapUserLyr.getMarkerById(ZdcEmapMapShopDetailMrkId); //フキダシを表示させる if( overlap == 1) { var kidprm = ""; for (var i = 0; i < IconGrp.length; i++) { var grpKid = IconGrp[i].split(','); if( grpKid.length > 1) { if( grpKid.indexOf( obj.data1) == 0) {// choosen "clicked icon" is first. for( var k=0; k < grpKid.length; k++ ){ if( grpKid[k] == ""){ continue; } kidprm += "&kid" + k + "=" + grpKid[k]; } } } else if( grpKid.length == 1) kidprm += "&kid=" + obj.data1; } var url = "http://127.0.0.1/smt/lawson/shop_msg.htm?cid=lawson&id="+id+kidprm; } else { var url = "http://127.0.0.1/smt/lawson/shop_msg.htm?cid=lawson&id="+id+"&kid="+obj.data1; } //url += "&"; //url += ""; // add 2012/01/11 Y.Matsukawa mod 2012/09/10 Y.Matsukawa url += ""; url += "&https_req=1"; if (link) url += "&link="+link; if (maptype) url += "&maptype="+maptype; url += "&PARENT_HTTP_HOST=www.e-map.ne.jp"; ZdcEmapHttpRequestHtml(url, function(html,status){ if(status) html = "申し訳ありませんが只今大変混み合っております。TOPページに戻りしばらく時間を置いてからご利用ください msg["+status+"]"; var node = document.createElement('DIV'); node.innerHTML = html; obj.openUserMsgWindow(ZdcEmapMsg,obj.Point,node,1); ZdcEmapReadOff(); }, false, 2); } //フキダシ(Maplink用)表示 function ZdcEmapShopMsgMaplink(parm_nm) { if (parm_nm == '') return; ZdcEmapReadOn(); ZdcEmapShopMsgClose(); //デザイン ZdcEmapMsg.setImage('https://www.e-map.ne.jp/smt/lawson/img/msg/0002.png',new ZdcSize(242,95), 'https://www.e-map.ne.jp/smt/lawson/img/msg/0002-t.png',new ZdcSize(194,67), 'https://www.e-map.ne.jp/smt/lawson/img/msg/0002-x.png',new ZdcSize(13,13), 'https://www.e-map.ne.jp/smt/lawson/img/msg/0002-s.png',new ZdcSize(13,13), null); ZdcEmapMsg.setDocPosition(0,0,11,8,11,224,55,0); ZdcEmapMsg.setDocOffset(-110,-90); ZdcEmapMsg.setTextClass('UserMsgWindowTextStyle'); var obj = ZdcEmapMapUserLyr.getMarkerById(ZdcEmapMapShopDetailMrkId); //フキダシを表示させる var url = "http://127.0.0.1/smt/lawson/maplink_msg.htm?"+parm_nm; url += "&https_req=1"; //url += ""; // add 2012/01/11 Y.Matsukawa mod 2012/09/10 Y.Matsukawa url += ""; ZdcEmapHttpRequestHtml(url, function(html,status){ if(status) html = "申し訳ありませんが只今大変混み合っております。TOPページに戻りしばらく時間を置いてからご利用ください msg["+status+"]"; var node = document.createElement('DIV'); node.innerHTML = html; obj.openUserMsgWindow(ZdcEmapMsg,obj.Point,node,1); ZdcEmapReadOff(); }, false, 2); } function ZdcEmapShopMsgClose() { if (ZdcEmapMapObj.getUserMsgOpenStatus()) { ZdcEmapMapObj.closeUserMsgWindow(); } //ZdcEmapMapFrontShopReset(); } function ZdcEmapMapScaleToLvlSelect() { var newLvl = ZdcEmapMapObj.getMapScale(); var e = document.getElementById( "ZdcEmapLvlSelect" ); for (var i = 0; i < e.options.length; ++i) { if (newLvl == e.options[i].value) { e.selectedIndex = i; break; } } } function ZdcEmapLvlSelectChanged() { var e = document.getElementById( "ZdcEmapLvlSelect" ); var newLvl = e.options[e.selectedIndex].value; ZdcEmapMapObj.setMapScale(newLvl); } function ZdcEmapResetMapLocation() { ZdcEmapMapObj.restoreMapLocation(); } // +-ボタン function ZdcEmapLvlScaleBtn(){ // var now_lvl = ZdcEmapMapObj.getMapScale(); var now_lvl = parseInt(ZdcEmapMapObj.getMapScale()); var btnp = document.getElementById( "ZdcEmapLvlBtnP" ); //(+) var btnm = document.getElementById( "ZdcEmapLvlBtnM" ); //(−) if( now_lvl == max_lvl ){ if(btnp.src)btnp.src = "https://www.e-map.ne.jp/smt/lawson/img/btn_plus_def.png"; //(+) if(btnm.src)btnm.src = "https://www.e-map.ne.jp/smt/lawson/img/btn_minus_dis.png"; //(−) } else if( now_lvl == min_lvl ){ if(btnp.src)btnp.src = "https://www.e-map.ne.jp/smt/lawson/img/btn_plus_dis.png"; //(+) if(btnm.src)btnm.src = "https://www.e-map.ne.jp/smt/lawson/img/btn_minus_def.png"; //(−) } else { if(btnp.src)btnp.src = "https://www.e-map.ne.jp/smt/lawson/img/btn_plus_def.png"; //(+) if(btnm.src)btnm.src = "https://www.e-map.ne.jp/smt/lawson/img/btn_minus_def.png"; //(−) } } // +-ボタンでの地図縮尺変更 function ZdcEmapLvlScaleChanged(type){ // var now_lvl = ZdcEmapMapObj.getMapScale(); var now_lvl = parseInt(ZdcEmapMapObj.getMapScale()); if( max_lvl <= now_lvl || now_lvl >= min_lvl ){ if(type == 'p'){ if( now_lvl < min_lvl ){ now_lvl++; } ZdcEmapMapObj.setMapScale(now_lvl); } else { if( now_lvl > max_lvl ){ now_lvl--; } ZdcEmapMapObj.setMapScale(now_lvl); } } else { if(type == 'p'){ now_lvl = min_lvl; } else { now_lvl = max_lvl; } ZdcEmapMapObj.setMapScale(now_lvl); } ZdcEmapLvlScaleBtn(); } //地図移動 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); } } function ZdcEmapMapMoveBoxKanaden(minlat,minlon,maxlat,maxlon){ var p1 = new ZdcPoint(minlon,minlat,2); var p2 = new ZdcPoint(maxlon,maxlat,2); var bx = new ZdcBox(p1,p2); var s = ZdcEmapMapObj.getMapBoxScale(bx, p1); ZdcEmapMapObj.setMapLocation(p1); ZdcEmapMapObj.setMapScale(s); } // 最寄り店舗分布表示 function ZdcEmapSearchShopStart(cond) { ZdcEmapSearchFirst = 1; ZdcEmapSearchCond = cond; ZdcEmapSearchClickFlg = 1; // add 2011/06/29 Y.Matsukawa ZdcEmapSearchShop(cond); ZdcEmapSearchEventAdd("ZdcEmapSearchShop('"+cond+"')"); } function ZdcEmapSearchMapIcon() { //アイコン表示位置設定 var p = new ZdcPoint(); p = ZdcEmapMapObj.getMapLocation(); ZdcEmapIconPoint = new ZdcPoint(p.mx, p.my, 2); //ユーザレイヤー作成 ZdcEmapIconLayer = new ZdcUserLayer(); ZdcEmapIconLayer.setLayerScale(1, 15); //アイコン作成 ZdcEmapIcon1 = new ZdcIcon(); ZdcEmapIcon1.offset = new ZdcPixel(-5, -5); ZdcEmapIcon1.image = 'https://www.e-map.ne.jp/smt/lawson/img/000000.gif'; //ユーザレイヤーに追加 ZdcEmapIconLayer.addMarker(new ZdcMarker(ZdcEmapIconPoint, ZdcEmapIcon1)); //地図にユーザレイヤーを追加 ZdcEmapMapObj.addUserLayer(ZdcEmapIconLayer); } function ZdcEmapResearchShopStart(cond, cond2) { var jkn = ""; if (cond) jkn += cond; if (cond2) { if (jkn) jkn += " AND "; jkn += "("+cond2+")"; } ZdcEmapSearchFirst = 1; ZdcEmapSearchPoint = null;//必ず再検索させるため ZdcEmapSearchShop(jkn); ZdcEmapSearchEventAdd("ZdcEmapSearchShop('"+jkn+"')"); } function ZdcEmapSearchShop(cond) { ZdcEmapReadOn(); //位置・範囲取得 var p = new ZdcPoint(); p = ZdcEmapMapObj.getMapLocation(); var box = ZdcEmapMapObj.getMapBoundBox(); //検索するか否かの判断 if(ZdcEmapSearchPoint != null) { var pix1 = ZdcEmapMapObj.convertPoint2Pixel( ZdcEmapSearchPoint, 2 ); var pix2 = ZdcEmapMapObj.convertPoint2Pixel( p, 2 ); if(Math.abs(pix1.x-pix2.x) < 15 && Math.abs(pix1.y-pix2.y) < 15 && ZdcEmapSearchScale == ZdcEmapMapObj.getMapScale()) { ZdcEmapReadOff(); return; } } if(ZdcEmapSearchPoint != null && 15 == -1) { //自動再検索しない ZdcEmapReadOff(); return; } //自動検索イベント停止 ZdcEmapSearchEventStop(); //ZdcEmapShopMsgClose(); // var opts = new ZdcNearShopOptions(); //opts.cid='lawson' mod 2012/01/19 N.Wada opts.cid='lawson' opts.lat = p.my; opts.lon = p.mx; if(ZdcEmapSearchFirst != 1) { opts.latlon = box.miny+","+box.minx+","+box.maxy+","+box.maxx; opts.radius = 50000; } else { ZdcEmapSearchFirst = 0; opts.radius = 50000; } if (cond) opts.jkn = cond; opts.pos = 1; opts.maxCount = 30; opts.limitCount = 30; opts.timeout = 10000; ZdcEmapNearShop.opts = opts; //アイコンを表示する ZdcEmapNearShop.search(opts,ZdcEmapSearchShopResult); } //検索結果の処理 function ZdcEmapSearchShopResult(result) { var i,item,mrk,tmp,icnt,maxlat=0,maxlon=0,minlat=999999999,minlon=999999999; var tooltip_w,tooltip_h,tooltip_offset_x,tooltip_offset_y; // add 2011/08/10 H.Osamoto //マーカー削除 if(ZdcEmapMapShopMrkCnt != null) { for( i = 0;i < ZdcEmapMapShopMrkCnt;i ++) { ZdcEmapMapUserLyr.removeMarkerById(ZdcEmapMapShopMrkId[i]); ZdcEmapMapUserLyr.clearZdcTooltip(); // add 2011/08/10 H.osamoto ZdcEmapMapShopMrkId[i] = null; } } ZdcEmapMapShopMrkCnt = 0; //エラー処理 if(result.status != 0 && result.status != 3 && result.status != 5 && result.status != 9) { alert("検索に失敗しました listres["+result.status+"]"); ZdcEmapSearchEventStart(); ZdcEmapReadOff(); return; } // add 2011/08/10 H.Osamoto [ // add 2011/08/10 H.Osamoto ] //地図に置く icnt = result.items.length; if (icnt > 0) { for (i=icnt-1; i>=0; i--) { item = result.items[i]; if(!item.icon) break; if(item.nflg == 1) tmp = ZdcEmapIconImg["@NEW"]; else tmp = ""; // add 2011/08/10 H.Osamoto [ // アイコン位置を指定する場合は通常のnewアイコン表示処理を行わない if (tooltip_w && tooltip_h) { tmp = ""; } // 無効なアイコンIDの場合は透明アイコンに差し替え add 2012/11/15 Y.Matsukawa if (ZdcEmapIconImg[item.icon] == null) ZdcEmapIconImg[item.icon] = ZdcEmapIconImg["@TP"]; // add 2011/08/10 H.Osamoto ] mrk = ZdcEmapMakeMrk(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],0,-8, ZdcEmapIconImg[item.icon],tmp, item.id,item.icon,item.nflg, function() { ZdcEmapShopMsg(this.id, 1, 'bunpu', ""); }, null, null, item.lvl ); if (ZdcEmapMapShopMrkId[i] != null) ZdcEmapMapUserLyr.removeMarkerById(ZdcEmapMapShopMrkId[i]);//念のため ZdcEmapMapShopMrkId[i] = ZdcEmapMapUserLyr.addMarker(mrk); // add 2011/08/10 H.osamoto [ if (item.nflg == 1) { var tooltip = new ZdcTooltip(); var tooltipHTML = ''; tooltip.setZdcTooltip(mrk.Point, tooltipHTML, tooltip_w, tooltip_h, new ZdcPixel(tooltip_offset_x, tooltip_offset_y), 4); tooltip.mrkid = mrk.id; ZdcEvent.addListener(tooltip, "mouseclicktooltip", function() { ZdcEmapShopMsg(this.mrkid, 1, 'bunpu'); }); ZdcEmapMapUserLyr.addZdcTooltip(tooltip); mrk.toolid = tooltip.id; ZdcEmapMapUserLyr.visibleZdcTooltipById(mrk.toolid); } // add 2011/08/10 H.osamoto ] //最大最小緯度経度取得 ZdcEmapSearchRetry = 0; if (ZdcEmapSearchRetryVCnt) { if (i+1 <= ZdcEmapSearchRetryVCnt) { 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; } } else { 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; } ZdcEmapMapShopMrkCnt ++; ZdcEmapIconDt[i] = item.lat + ":" + item.lon + ":" + ZdcEmapIconW[item.icon] + ":" + ZdcEmapIconH[item.icon]; } ZdcEmapSearchRetryVCnt = 0; // add 2011/06/29 Y.Matsukawa [ if(ZdcEmapSearchClickFlg) { ZdcEmapSearchClickFlg = 0; // add 2011/06/29 Y.Matsukawa ] //初期検索時は画面移動 if (ZdcEmapMapShopMrkCnt > 0) { //拠点が収まる範囲に移動 ZdcEmapMapMoveBox(minlat,minlon,maxlat,maxlon,ZdcEmapMapObj.getMapLocation(),1); } else { //検索半径の縮尺に移動 ※位置によってgetPoint2PointDistanceの値が変わるため毎回計算している var p = new ZdcPoint(); p = ZdcEmapMapObj.getMapLocation(); 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); } } } else { if (ZdcEmapSearchRetry) { ZdcEmapSearchRetry = 0; ZdcEmapSearchFirst = 1; ZdcEmapSearchClickFlg = 1; ZdcEmapSearchPoint = null;//必ず再検索させるため ZdcEmapSearchRetryVCnt = 0; ZdcEmapReadOff(); ZdcEmapSearchShop(ZdcEmapSearchCond); return; } } ZdcEmapMapObj.reflashMap(); ZdcEmapSearchEventStart(); //検索位置を保持 ZdcEmapSearchPoint = ZdcEmapMapObj.getMapLocation(); ZdcEmapSearchScale = ZdcEmapMapObj.getMapScale(); ZdcEmapReadOff(); } // 検索イベント開始 function ZdcEmapSearchEventStart() { ZdcEmapSearchEventFlg = 1; } // 検索イベント停止 function ZdcEmapSearchEventStop() { ZdcEmapSearchEventFlg = 0; } // フキダシを閉じる function ZdcEmapShopMsgClose() { if (ZdcEmapMapObj.getUserMsgOpenStatus()) { ZdcEmapMapObj.closeUserMsgWindow(); } } //検索実行 function ZdcEmapSearchEventAction() { if(!ZdcEmapSearchEventFlg) return; //if(ZdcEmapMapObj.getUserMsgOpenStatus()) return;//フキダシ表示中は検索しない eval(ZdcEmapSearchEventFunc); } //検索イベント追加 function ZdcEmapSearchEventAdd(func) { ZdcEmapSearchEventDel(); ZdcEmapSearchEventFunc = func; ZdcEmapSearchEventDragmapend = ZdcEvent.addListener(ZdcEmapMapObj, "dragmapend" , ZdcEmapSearchEventAction); ZdcEmapSearchEventScrollmapend = ZdcEvent.addListener(ZdcEmapMapObj, "scrollmapend" , ZdcEmapSearchEventAction); ZdcEmapSearchEventChangezoomend = ZdcEvent.addListener(ZdcEmapMapObj, "changezoomend", ZdcEmapSearchEventAction); } //検索イベント削除 function ZdcEmapSearchEventDel() { ZdcEmapSearchEventStop(); if(ZdcEmapSearchEventDragmapend) ZdcEvent.removeListener(ZdcEmapSearchEventDragmapend); //if(ZdcEmapSearchEventScrollmapend) ZdcEvent.removeListener(ZdcEmapSearchEventScrollmapend); if(ZdcEmapSearchEventChangezoomend) ZdcEvent.removeListener(ZdcEmapSearchEventChangezoomend); ZdcEmapSearchEventDragmapend = null; //ZdcEmapSearchEventScrollmapend = null; ZdcEmapSearchEventChangezoomend = null; delete ZdcEmapSearchEventFunc; } //検索イベント開始 function ZdcEmapSearchEventStart() { ZdcEmapSearchEventFlg = 1; } //検索イベント停止 function ZdcEmapSearchEventStop() { ZdcEmapSearchEventFlg = 0; } var ZdcEmapReading = 0;//読み込み中・処理中フラグ function ZdcEmapReadOn() { ZdcEmapReading ++; //if(ZdcEmapReading == 1) ZdcEmapMapObj.visibleZdcWait(); if(ZdcEmapReading == 1) ZdcEampVisibleWait(); } function ZdcEmapReadOff() { if(ZdcEmapReading <= 0) return; ZdcEmapReading --; //if(ZdcEmapReading == 0) ZdcEmapMapObj.hiddenZdcWait(); if(ZdcEmapReading == 0) ZdcEampHiddenWait(); } function ZdcEampVisibleWait() { var wait = document.getElementById("ZdcEmapWait"); if (!wait) return; wait.style.left = (ZdcEmapWindowWidth / 2 + (-60))+'px'; wait.style.top = (ZdcEmapWindowHeight / 2 + (-15))+'px'; // wait.style.width = 121; // wait.style.height = 31; wait.style.display = "block"; } function ZdcEampHiddenWait() { var wait = document.getElementById("ZdcEmapWait"); if (!wait) return; // wait.style.width = 0; // wait.style.height = 0; wait.style.display = "none"; } //--------------------------------------------------------------------------- // Landscape(横表示/縦表示)で地図サイズを切り替えます。 // onLoad 時と、onorientationchange 時にコールされます。 //--------------------------------------------------------------------------- function ZdcEmapChangeOrientation() { var mapdiv = document.getElementById('ZdcEmapMap'); mapdiv.style.width = '320px'; mapdiv.style.height = '320px'; ZdcEmapWindowWidth = window.innerWidth; ZdcEmapWindowHeight = window.innerHeight; ZdcEmapWindowHeight = ZdcEmapWindowHeight - ZdcEmapAnyDispPx; // add 2011/08/26 H.osamoto ZdcEmapWindowWidth = ZdcEmapWindowWidth - ZdcEmapAnyDispPy; // add 2011/12/26 K.Masuda var mapDom = document.getElementById('ZdcEmapMap'); mapDom.style.width = ZdcEmapWindowWidth + 'px'; mapDom.style.height = ZdcEmapWindowHeight + 'px'; //if ( window.orientation == 90 || window.orientation == -90 ) //{ // // Landscape(横表示) // ZdcEmapMapObj.removeMapScaleBar(); // ZdcEmapMapObj.resizeMapWindow( 0, 0, ZdcEmapWindowWidth, ZdcEmapWindowHeight ); // ZdcEmapMapObj.addMapScaleBar( new ZdcScaleBar( '3' ) ); //} //else //{ // // Portrait(縦表示) // ZdcEmapMapObj.removeMapScaleBar(); // ZdcEmapMapObj.resizeMapWindow( 0, 0, ZdcEmapWindowWidth, ZdcEmapWindowHeight ); // ZdcEmapMapObj.addMapScaleBar( new ZdcScaleBar( '3' ) ); //} ZdcEmapMapObj.removeMapScaleBar(); ZdcEmapMapObj.resizeMapWindow( 0, 0, ZdcEmapWindowWidth, ZdcEmapWindowHeight ); ZdcEmapMapObj.addMapScaleBar( new ZdcScaleBar( '3' ) ); } window.onload = function() { ZdcEmapWindowWidth = window.innerWidth; ZdcEmapWindowHeight = window.innerHeight; }; 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 ZdcEmapRouteOptionsObj; var ZdcEmapRouteSearchObj; var ZdcEmapRoutePoint1 = null; var ZdcEmapRoutePoint2 = null; var ZdcEmapRouteFlagLayer; var ZdcEmapRouteFlagIcon1; var ZdcEmapRouteFlagIcon2; var ZdcEmapRouteFlagStartMarker1; var ZdcEmapRouteFlagStartMarker2; var ZdcEmapRouteType = null; var ZdcEmapLocRouteType = 1; var ZdcEmapNekiRouteType = 1; var ZdcEmapNpoiRouteType = 0; var ZdcEmapSearchRouteType = 1; var ZdcEmapRouteWalkPSC = 0; var ZdcEmapRouteWalkFloorFlg = 0; var ZdcEmapRouteWalkDepFloor = 0; var ZdcEmapRouteWalkDepStationFlg = 0; var ZdcEmapRouteWalkArrFloorFlg = 0; var ZdcEmapRouteWalkArrStationFlg = 0; var ZdcEmapRouteWalkArrFloor = 0; // 現在地からルート探索 function ZdcEmapLocRoute(loc_lat, loc_lon, shop_lat, shop_lon) { if(ZdcEmapLocRouteType == 0) return; ZdcEmapRouteType = ZdcEmapLocRouteType; ZdcEmapShopMsgClose(); ZdcEmapRouteClear(); ZdcEmapPoiMrkClear(); ZdcEmapRoutePoint1 = new ZdcPoint(shop_lon, shop_lat, 2); ZdcEmapRoutePoint2 = ZdcCommon.WGS2TKY(loc_lon, loc_lat); if(ZdcEmapRouteType == 1) ZdcEmapRouteSearchWalk(ZdcEmapRoutePoint1, ZdcEmapRoutePoint2); if(ZdcEmapRouteType == 2) ZdcEmapRouteSearchCar(ZdcEmapRoutePoint1, ZdcEmapRoutePoint2); //画面の移動 ZdcEmapMapMoveBox(ZdcEmapRoutePoint1.my, ZdcEmapRoutePoint1.mx, ZdcEmapRoutePoint2.my, ZdcEmapRoutePoint2.mx); } // 最寄り駅アイコン表示 function ZdcEmapEki(eki_lat, eki_lon, shop_lat, shop_lon) { var point1 = new ZdcPoint(eki_lon, eki_lat, 2); var point2 = new ZdcPoint(shop_lon, shop_lat, 2); // 駅アイコン表示 ZdcEmapPoiMrkClear(); var i = ZdcEmapMapPoiMrkCnt; var mrk = ZdcEmapMakeMrk(i,eki_lat,eki_lon, 19,24,0,0, -10,-12,0,0,0,0, 'https://www.e-map.ne.jp/smt/lawson/img/icon_eki/0000.gif',"", "","",0, null, null, null); if (ZdcEmapMapPoiMrkId[i] != null) ZdcEmapMapUserLyr.removeMarkerById(ZdcEmapMapPoiMrkId[i]);//念のため ZdcEmapMapPoiMrkId[i] = ZdcEmapMapUserLyr.addMarker(mrk); ZdcEmapMapPoiMrkCnt ++; //画面の移動 ZdcEmapMapMoveBox(point1.my, point1.mx, point2.my, point2.mx); } // 駅からルート探索 function ZdcEmapEkiRoute(eki_lat, eki_lon, shop_lat, shop_lon) { if(ZdcEmapNekiRouteType == 0) return; ZdcEmapRouteType = ZdcEmapNekiRouteType; ZdcEmapShopMsgClose(); ZdcEmapRouteClear(); ZdcEmapRoutePoint1 = new ZdcPoint(shop_lon, shop_lat, 2); ZdcEmapRoutePoint2 = new ZdcPoint(eki_lon, eki_lat, 2); if(ZdcEmapRouteType == 1) ZdcEmapRouteSearchWalk(ZdcEmapRoutePoint1, ZdcEmapRoutePoint2); if(ZdcEmapRouteType == 2) ZdcEmapRouteSearchCar(ZdcEmapRoutePoint1, ZdcEmapRoutePoint2); //画面の移動 ZdcEmapMapMoveBox(ZdcEmapRoutePoint1.my, ZdcEmapRoutePoint1.mx, ZdcEmapRoutePoint2.my, ZdcEmapRoutePoint2.mx); } function ZdcEmapPoi(poi_lat, poi_lon, poi_jnrmn, shop_lat, shop_lon) { var point1 = new ZdcPoint(poi_lon, poi_lat, 2); var point2 = new ZdcPoint(shop_lon, shop_lat, 2); ZdcEmapPoiMrkClear(); var i = ZdcEmapMapPoiMrkCnt; var mrk = ZdcEmapMakeMrk(i,poi_lat,poi_lon, 16,16,0,0, -8,-8,0,0,0,0, 'https://www.e-map.ne.jp/smt/lawson/img/icon_poi/'+poi_jnrmn+'.gif',"", "","",0, null, null, null); if (ZdcEmapMapPoiMrkId[i] != null) ZdcEmapMapUserLyr.removeMarkerById(ZdcEmapMapPoiMrkId[i]);//念のため ZdcEmapMapPoiMrkId[i] = ZdcEmapMapUserLyr.addMarker(mrk); ZdcEmapMapPoiMrkCnt ++; ZdcEmapMapMoveBox(point1.my, point1.mx, point2.my, point2.mx); } function ZdcEmapPoiRoute(poi_lat, poi_lon, shop_lat, shop_lon) { if(ZdcEmapNpoiRouteType == 0) return; ZdcEmapRouteType = ZdcEmapNpoiRouteType; ZdcEmapShopMsgClose(); ZdcEmapRouteClear(); ZdcEmapRoutePoint1 = new ZdcPoint(poi_lon, poi_lat, 2); ZdcEmapRoutePoint2 = new ZdcPoint(shop_lon, shop_lat, 2); if(ZdcEmapRouteType == 1) ZdcEmapRouteSearchWalk(ZdcEmapRoutePoint1, ZdcEmapRoutePoint2); if(ZdcEmapRouteType == 2) ZdcEmapRouteSearchCar(ZdcEmapRoutePoint1, ZdcEmapRoutePoint2); ZdcEmapMapMoveBox(ZdcEmapRoutePoint1.my, ZdcEmapRoutePoint1.mx, ZdcEmapRoutePoint2.my, ZdcEmapRoutePoint2.mx); } function ZdcEmapShopKanaden(now_lat, now_lon, shop_lat, shop_lon) { var point1 = new ZdcPoint(now_lon, now_lat, 2); var point2 = new ZdcPoint(shop_lon, shop_lat, 2); ZdcEmapPoiMrkClear(); var i = ZdcEmapMapPoiMrkCnt; var mrk = ZdcEmapMakeMrk(i,now_lat,now_lon, 11,11,0,0, 0,0,0,0,0,0, '',"", "","",0, null, null, null); if (ZdcEmapMapPoiMrkId[i] != null) ZdcEmapMapUserLyr.removeMarkerById(ZdcEmapMapPoiMrkId[i]);//念のため ZdcEmapMapPoiMrkId[i] = ZdcEmapMapUserLyr.addMarker(mrk); ZdcEmapMapPoiMrkCnt ++; //画面の移動 ZdcEmapMapMoveBoxKanaden(point1.my, point1.mx, point2.my, point2.mx); } function ZdcEmapEkiKanaden(eki_lat, eki_lon, shop_lat, shop_lon) { var point1 = new ZdcPoint(eki_lon, eki_lat, 2); var point2 = new ZdcPoint(shop_lon, shop_lat, 2); var i = ZdcEmapMapPoiMrkCnt; var mrk = ZdcEmapMakeMrk(i,eki_lat,eki_lon, 19,24,0,0, -10,-12,0,0,0,0, 'https://www.e-map.ne.jp/smt/lawson/img/icon_eki/0000.gif',"", "","",0, null, null, null); if (ZdcEmapMapPoiMrkId[i] != null) ZdcEmapMapUserLyr.removeMarkerById(ZdcEmapMapPoiMrkId[i]);//念のため ZdcEmapMapPoiMrkId[i] = ZdcEmapMapUserLyr.addMarker(mrk); ZdcEmapMapPoiMrkCnt ++; //画面の移動 ZdcEmapMapMoveBoxKanaden(point2.my, point2.mx, point1.my, point1.mx); } function ZdcEmapPoiKanaden(poi_lat, poi_lon, poi_jnrmn, shop_lat, shop_lon) { var point1 = new ZdcPoint(poi_lon, poi_lat, 2); var point2 = new ZdcPoint(shop_lon, shop_lat, 2); var i = ZdcEmapMapPoiMrkCnt; var mrk = ZdcEmapMakeMrk(i,poi_lat,poi_lon, 19,24,0,0, -10,-12,0,0,0,0, 'https://www.e-map.ne.jp/smt/lawson/img/icon_eki/0000.gif',"", "","",0, null, null, null); if (ZdcEmapMapPoiMrkId[i] != null) ZdcEmapMapUserLyr.removeMarkerById(ZdcEmapMapPoiMrkId[i]);//念のため ZdcEmapMapPoiMrkId[i] = ZdcEmapMapUserLyr.addMarker(mrk); ZdcEmapMapPoiMrkCnt ++; ZdcEmapMapMoveBoxKanaden(point2.my, point2.mx, point1.my, point1.mx); } // 出発地指定ルート探索 function ZdcEmapSearchRoute(srch_lat, srch_lon, shop_lat, shop_lon) { if(ZdcEmapSearchRouteType == 0) return; ZdcEmapRouteType = ZdcEmapSearchRouteType; ZdcEmapShopMsgClose(); ZdcEmapRouteClear(); ZdcEmapRoutePoint1 = new ZdcPoint(shop_lon, shop_lat, 2); ZdcEmapRoutePoint2 = new ZdcPoint(srch_lon, srch_lat, 2); if(ZdcEmapRouteType == 1) ZdcEmapRouteSearchWalk(ZdcEmapRoutePoint1, ZdcEmapRoutePoint2); if(ZdcEmapRouteType == 2) ZdcEmapRouteSearchCar(ZdcEmapRoutePoint1, ZdcEmapRoutePoint2); //画面の移動 ZdcEmapMapMoveBox(ZdcEmapRoutePoint1.my, ZdcEmapRoutePoint1.mx, ZdcEmapRoutePoint2.my, ZdcEmapRoutePoint2.mx); } // 歩行者ルート function ZdcEmapRouteSearchWalk(p1,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; // 2011/08/24 K.Masuda 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.floorFlg = ZdcEmapRouteWalkArrFloorFlg; ZdcEmapRouteOptionsObj.arrivalPoint.stationFlg = ZdcEmapRouteWalkArrStationFlg; ZdcEmapRouteOptionsObj.arrivalPoint.floor = ZdcEmapRouteWalkArrFloor; //出発点(拠点) 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(ZdcEmapRoutePoint1,ZdcEmapRoutePoint2); } else { // alert('ルート探索に失敗しました。 [' + result.status + ']'); // mod 2015/03/09 H.Osamoto alert('ルート探索に失敗しました。'); } return; } //スタート/ゴールのアイコンを描画 ZdcEmapRouteFlag(); //ルート距離表示 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; } } // 自動車検索 function ZdcEmapRouteSearchCar(p1,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; // 2011/08/24 K.Masuda 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 + ']'); mod 2015/03/09 H.Osamoto alert('ルート探索に失敗しました。'); return; } //スタート/ゴールのアイコンを描画 ZdcEmapRouteFlag(); //ルート距離表示 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; } } // ルート削除 function ZdcEmapRouteClear() { if(!ZdcEmapRouteSearchObj) return; if(ZdcEmapRouteOptionsObj.departurePoint.point) { ZdcEmapRouteSearchObj.clearRoute(); } 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, 15); //ZdcEmapRouteFlagLayer.setLayerType('manual'); //アイコン作成 ZdcEmapRouteFlagIcon1 = new ZdcIcon(); ZdcEmapRouteFlagIcon1.offset = new ZdcPixel(-4, -36); ZdcEmapRouteFlagIcon1.image = 'https://www.e-map.ne.jp/smt/lawson/img/route/RouteEnd.png'; ZdcEmapRouteFlagIcon2 = new ZdcIcon(); ZdcEmapRouteFlagIcon2.offset = new ZdcPixel(-4, -36); ZdcEmapRouteFlagIcon2.image = 'https://www.e-map.ne.jp/smt/lawson/img/route/RouteStart.png'; //ユーザレイヤーに追加 if(ZdcEmapRoutePoint1) ZdcEmapRouteFlagLayer.addMarker(new ZdcMarker(ZdcEmapRoutePoint1, ZdcEmapRouteFlagIcon1)); if(ZdcEmapRoutePoint2) ZdcEmapRouteFlagLayer.addMarker(new ZdcMarker(ZdcEmapRoutePoint2, ZdcEmapRouteFlagIcon2)); //地図にユーザレイヤーを追加 ZdcEmapMapObj.addUserLayer(ZdcEmapRouteFlagLayer); //ルートレイヤーの上に移動 ZdcEmapRouteFlagLayer.doc.style.zIndex = "3999"; } // 駅・施設アイコン消去 function ZdcEmapPoiMrkClear() { var i; for( i = 0;i < ZdcEmapMapPoiMrkCnt;i ++) { ZdcEmapMapUserLyr.removeMarkerById(ZdcEmapMapPoiMrkId[i]);//マーカー削除 ZdcEmapMapPoiMrkId[i] = null; } ZdcEmapMapPoiMrkCnt = 0; } // add 2012/02/22 H.osamoto [ // APIイベントログ出力 // (event_log.cgiを呼び出し) function ZdcEmapEventLog(evt) { var url = "http://127.0.0.1/cgi2/event_log.cgi"; url += "?key=40nQIP9ZlgrvBMnAdvB2nAWf9LmgiPBlidU5S3Xu5mAYfBWzTRrxEzTerxszTjngnXBioQWv8koQwzFXpRFzTm"; url += "&event="+evt; url += "&opt=lawson"; if ("") { url += "&freeparm="; } var httpReq = new ZdcEmapHttpRequest('EUC', 'EUC'); httpReq.request(url, function(reference_text,status){ }, 60000); } function ZdcEmapMapEventLogZoom() { ZdcEmapEventLog('mapapi_ChangeZoom'); } function ZdcEmapMapEventLogLoc() { ZdcEmapEventLog('mapapi_ChangeLocation'); } // add 2012/02/22 H.osamoto ] // add 2015/11/18 Xuan Chien [ // GPS検索ログ出力 // (gps_log.cgiを呼び出し) function ZdcEmapGpsLog(pLat, pLon) { var url = "http://127.0.0.1/cgi2/gps_log.cgi"; url += "?cid=lawson"; url += "&lat="+pLat; url += "&lon="+pLon; var httpReq = new ZdcEmapHttpRequest('EUC', 'EUC'); httpReq.request(url, function(reference_text,status){ }, 60000); } // add 2015/11/18 Xuan Chien ] function ZdcEmapGetCondJkn() { var form = document.formCond; if (!form) return ''; var jkn = ''; var chk = null; var arr_cond = new Array(); arr_cond[0] = ""; chk = form.cond1; if (chk && chk.checked) { if (arr_cond[0] != "") arr_cond[0] += " OR "; arr_cond[0] += chk.value; } chk = form.cond2; if (chk && chk.checked) { if (arr_cond[0] != "") arr_cond[0] += " OR "; arr_cond[0] += chk.value; } chk = form.cond3; if (chk && chk.checked) { if (arr_cond[0] != "") arr_cond[0] += " OR "; arr_cond[0] += chk.value; } arr_cond[1] = ""; chk = form.cond4; if (chk && chk.checked) { if (arr_cond[1] != "") arr_cond[1] += " AND "; arr_cond[1] += chk.value; } chk = form.cond5; if (chk && chk.checked) { if (arr_cond[1] != "") arr_cond[1] += " AND "; arr_cond[1] += chk.value; } chk = form.cond6; if (chk && chk.checked) { if (arr_cond[1] != "") arr_cond[1] += " AND "; arr_cond[1] += chk.value; } chk = form.cond7; if (chk && chk.checked) { if (arr_cond[1] != "") arr_cond[1] += " AND "; arr_cond[1] += chk.value; } chk = form.cond9; if (chk && chk.checked) { if (arr_cond[1] != "") arr_cond[1] += " AND "; arr_cond[1] += chk.value; } chk = form.cond10; if (chk && chk.checked) { if (arr_cond[1] != "") arr_cond[1] += " AND "; arr_cond[1] += chk.value; } chk = form.cond11; if (chk && chk.checked) { if (arr_cond[1] != "") arr_cond[1] += " AND "; arr_cond[1] += chk.value; } chk = form.cond12; if (chk && chk.checked) { if (arr_cond[1] != "") arr_cond[1] += " AND "; arr_cond[1] += chk.value; } chk = form.cond13; if (chk && chk.checked) { if (arr_cond[1] != "") arr_cond[1] += " AND "; arr_cond[1] += chk.value; } chk = form.cond14; if (chk && chk.checked) { if (arr_cond[1] != "") arr_cond[1] += " AND "; arr_cond[1] += chk.value; } chk = form.cond15; if (chk && chk.checked) { if (arr_cond[1] != "") arr_cond[1] += " AND "; arr_cond[1] += chk.value; } chk = form.cond16; if (chk && chk.checked) { if (arr_cond[1] != "") arr_cond[1] += " AND "; arr_cond[1] += chk.value; } chk = form.cond17; if (chk && chk.checked) { if (arr_cond[1] != "") arr_cond[1] += " AND "; arr_cond[1] += chk.value; } chk = form.cond18; if (chk && chk.checked) { if (arr_cond[1] != "") arr_cond[1] += " AND "; arr_cond[1] += chk.value; } chk = form.cond19; if (chk && chk.checked) { if (arr_cond[1] != "") arr_cond[1] += " AND "; arr_cond[1] += chk.value; } chk = form.cond28; if (chk && chk.checked) { if (arr_cond[1] != "") arr_cond[1] += " AND "; arr_cond[1] += chk.value; } chk = form.cond31; if (chk && chk.checked) { if (arr_cond[1] != "") arr_cond[1] += " AND "; arr_cond[1] += chk.value; } chk = form.cond32; if (chk && chk.checked) { if (arr_cond[1] != "") arr_cond[1] += " AND "; arr_cond[1] += chk.value; } chk = form.cond34; if (chk && chk.checked) { if (arr_cond[1] != "") arr_cond[1] += " AND "; arr_cond[1] += chk.value; } chk = form.cond35; if (chk && chk.checked) { if (arr_cond[1] != "") arr_cond[1] += " AND "; arr_cond[1] += chk.value; } chk = form.cond36; if (chk && chk.checked) { if (arr_cond[1] != "") arr_cond[1] += " AND "; arr_cond[1] += chk.value; } chk = form.cond37; if (chk && chk.checked) { if (arr_cond[1] != "") arr_cond[1] += " AND "; arr_cond[1] += chk.value; } chk = form.cond38; if (chk && chk.checked) { if (arr_cond[1] != "") arr_cond[1] += " AND "; arr_cond[1] += chk.value; } chk = form.cond39; if (chk && chk.checked) { if (arr_cond[1] != "") arr_cond[1] += " AND "; arr_cond[1] += chk.value; } chk = form.cond40; if (chk && chk.checked) { if (arr_cond[1] != "") arr_cond[1] += " AND "; arr_cond[1] += chk.value; } chk = form.cond41; if (chk && chk.checked) { if (arr_cond[1] != "") arr_cond[1] += " AND "; arr_cond[1] += chk.value; } chk = form.cond42; if (chk && chk.checked) { if (arr_cond[1] != "") arr_cond[1] += " AND "; arr_cond[1] += chk.value; } chk = form.cond43; if (chk && chk.checked) { if (arr_cond[1] != "") arr_cond[1] += " AND "; arr_cond[1] += chk.value; } chk = form.cond44; if (chk && chk.checked) { if (arr_cond[1] != "") arr_cond[1] += " AND "; arr_cond[1] += chk.value; } chk = form.cond45; if (chk && chk.checked) { if (arr_cond[1] != "") arr_cond[1] += " AND "; arr_cond[1] += chk.value; } arr_cond[2] = ""; chk = form.cond20; if (chk && chk.checked) { if (arr_cond[2] != "") arr_cond[2] += " AND "; arr_cond[2] += chk.value; } chk = form.cond21; if (chk && chk.checked) { if (arr_cond[2] != "") arr_cond[2] += " AND "; arr_cond[2] += chk.value; } chk = form.cond22; if (chk && chk.checked) { if (arr_cond[2] != "") arr_cond[2] += " AND "; arr_cond[2] += chk.value; } chk = form.cond23; if (chk && chk.checked) { if (arr_cond[2] != "") arr_cond[2] += " AND "; arr_cond[2] += chk.value; } chk = form.cond24; if (chk && chk.checked) { if (arr_cond[2] != "") arr_cond[2] += " AND "; arr_cond[2] += chk.value; } chk = form.cond25; if (chk && chk.checked) { if (arr_cond[2] != "") arr_cond[2] += " AND "; arr_cond[2] += chk.value; } chk = form.cond26; if (chk && chk.checked) { if (arr_cond[2] != "") arr_cond[2] += " AND "; arr_cond[2] += chk.value; } chk = form.cond27; if (chk && chk.checked) { if (arr_cond[2] != "") arr_cond[2] += " AND "; arr_cond[2] += chk.value; } if (arr_cond.length > 0) { for(var i=0; i < arr_cond.length; i++) { if (arr_cond[i] && arr_cond[i] != "") { if (jkn) jkn += " AND "; jkn += "("+arr_cond[i]+")"; } } } return jkn; } // For search Icon overlapping 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"]=67; D_ZOOM2PXMS_LAT["67"]=1150.326797; D_ZOOM2PXMS_LON["67"]=1411.764706; D_ZOOM["9"]=62; D_ZOOM2PXMS_LAT["62"]=539.2156863; D_ZOOM2PXMS_LON["62"]=661.7647059; D_ZOOM["10"]=56; D_ZOOM2PXMS_LAT["56"]=206.6993464; D_ZOOM2PXMS_LON["56"]=253.6764706; D_ZOOM["11"]=55; D_ZOOM2PXMS_LAT["55"]=152.7777778; D_ZOOM2PXMS_LON["55"]=187.5000000; D_ZOOM["12"]=52; D_ZOOM2PXMS_LAT["52"]=98.85620915; D_ZOOM2PXMS_LON["52"]=121.3235294; D_ZOOM["13"]=50; D_ZOOM2PXMS_LAT["50"]=74.14215686; D_ZOOM2PXMS_LON["50"]=90.99264706; D_ZOOM["14"]=44; D_ZOOM2PXMS_LAT["44"]=33.70098039; D_ZOOM2PXMS_LON["44"]=41.36029412; D_ZOOM["15"]=39; D_ZOOM2PXMS_LAT["39"]=15.72712418; D_ZOOM2PXMS_LON["39"]=19.30147059; var IconGrp = new Array(); 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(); for(ic=icnt-1; ic>=0; ic--){ icdt = ZdcEmapIconDt[ic].split(":"); // icdt[0] lat:緯度 // icdt[1] lon:経度 // icdt[2] w:アイコン幅 // icdt[3] h:アイコン高 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))); // 左下経度 } for(ic=icnt-1; ic>=0; ic--){ // id->kid変換 obj = ZdcEmapMapUserLyr.getMarkerById(ZdcEmapMapShopMrkId[ic]); IconGrp[ic] = obj.data1; // 重なり判定 for(tmpic=icnt-1; tmpic>=0; tmpic--){ if( tmpic == ic){ continue; } // 自分自身は除外 // id->kid変換 obj = ZdcEmapMapUserLyr.getMarkerById(ZdcEmapMapShopMrkId[tmpic]); // 矩形緯度経度 p1 = new ZdcPoint(nlonmin[ic],nlatmin[ic],2); p2 = new ZdcPoint(nlonmax[ic],nlatmax[ic],2); // 線分緯度経度 c1 = new ZdcPoint(nlonmin[tmpic],nlatmin[tmpic],2); // 右上緯度経度 c2 = new ZdcPoint(nlonmax[tmpic],nlatmin[tmpic],2); // 左上緯度経度 c3 = new ZdcPoint(nlonmax[tmpic],nlatmax[tmpic],2); // 左下緯度経度 c4 = new ZdcPoint(nlonmin[tmpic],nlatmax[tmpic],2); // 右下緯度経度 // 矩形に線分が交差するか? if( ZGobj.isLineCrossRect(c1,c2,p1,p2) ){ IconGrp[ic] += "," + obj.data1; continue; } if( ZGobj.isLineCrossRect(c2,c3,p1,p2) ){ IconGrp[ic] += "," + obj.data1; continue; } if( ZGobj.isLineCrossRect(c3,c4,p1,p2) ){ IconGrp[ic] += "," + obj.data1; continue; } if( ZGobj.isLineCrossRect(c4,c1,p1,p2) ){ IconGrp[ic] += "," + obj.data1; continue; } } } } function ZdcEmapGetPointsByRad(latlon, rad) { var lat_dist = Math.round((300000 / (9 * 1000)) * rad); var lon_dist = Math.round((450000 / (11 * 1000)) * rad); var lat_ms = latlon.my; var lon_ms = latlon.mx; var p1 = new ZdcPoint(lon_ms - lon_dist,lat_ms - lat_dist,2); var p2 = new ZdcPoint(lon_ms + lon_dist,lat_ms + lat_dist,2); return new Array(p1, p2); } function ZdcEmap711omniSearchShop(init_rad) { var p = ZdcEmapMapObj.getMapLocation(); latlon = new ZdcPoint(p.mx, p.my, 2); var latlons = ZdcEmapGetPointsByRad(latlon, init_rad) var bx = new ZdcBox(latlons[0], latlons[1]); var lv = ZdcEmapMapObj.getMapBoxScale( bx, p ); if(lv < 18) lv = lv + 1;//1つズームイン ZdcEmapMapObj.setMapScale(lv); var box = ZdcEmapMapObj.getMapBoundBox(); // 初期検索範囲にSEJ店舗が1つ以上存在するかどうか var opts = new ZdcNearShopOptions(); opts.cid = "lawson"; opts.lat = p.my; opts.lon = p.mx; opts.latlon = box.miny+","+box.minx+","+box.maxy+","+box.maxx; opts.radius = 0; opts.jkn = ""; opts.pos = 1; opts.maxCount = 1; opts.limitCount = 1; opts.timeout = 10000; ZdcEmapNearShop.opts = opts; ZdcEmapNearShop.search(opts, ZdcEmap711omniSearchShopResult); } function ZdcEmap711omniSearchShopResult(result) { // エラー処理 if(result.status != 0 && result.status != 3 && result.status != 5 && result.status != 9) { alert("検索に失敗しました listres["+result.status+"]"); ZdcEmapSearchEventStart(); ZdcEmapReadOff(); return; } // 件数確認 var cnt = result.items.length; if (cnt) { // SEJ店舗ありなら地図範囲で最寄り検索 ZdcEmapSearchFirst = 0;//地図範囲を検索 ZdcEmapSearchShop(ZdcEmapSearchCond); ZdcEmapSearchEventAdd('ZdcEmapSearchShop("' + ZdcEmapSearchCond + '")'); } else { // 店舗なしなら既定半径の入りきる縮尺で最寄り検索 var p = ZdcEmapMapObj.getMapLocation(); latlon = new ZdcPoint(p.mx, p.my, 2); var latlons = ZdcEmapGetPointsByRad(latlon, 0); var bx = new ZdcBox(latlons[0], latlons[1]); var lv = ZdcEmapMapObj.getMapBoxScale( bx, p ); ZdcEmapMapObj.setMapScale(lv); ZdcEmapSearchFirst = 0;//地図範囲を検索 ZdcEmapSearchShop(ZdcEmapSearchCond); ZdcEmapSearchEventAdd('ZdcEmapSearchShop("' + ZdcEmapSearchCond + '")'); } } // add 2020/10/08 MLAB.HieuHuynh [ function ZdcEmapInit(init_lat, init_lon, init_lv, nmapflg){ ZdcEmapWindowWidth = window.innerWidth; ZdcEmapWindowHeight = window.innerHeight; ZdcEmapLastOrientation = window.orientation; ZdcEmapLastOrientation = 999; // add 2011/08/10 H.osamoto [ if (nmapflg && 0 > 0) { ZdcEmapWindowHeight = ZdcEmapWindowHeight - 0; ZdcEmapAnyDispPx = 0; } if (!nmapflg && 0 > 0) { ZdcEmapWindowHeight = ZdcEmapWindowHeight - 0; ZdcEmapAnyDispPx = 0; } // add 2011/08/10 H.osamoto ] // add 2011/12/26 K.Masuda [ if (nmapflg && 0 > 0) { ZdcEmapWindowWidth = ZdcEmapWindowWidth - 0; ZdcEmapAnyDispPy = 0; } if (!nmapflg && 0 > 0) { ZdcEmapWindowWidth = ZdcEmapWindowWidth - 0; ZdcEmapAnyDispPy = 0; } // add 2011/12/26 K.Masuda ] document.getElementById("ZdcEmapMap").setAttribute( 'style', 'postion:absolute; top:0px; left:0px; width:' + ZdcEmapWindowWidth + 'px; height:' + ZdcEmapWindowHeight + 'px; z-index:0;' ); if (!init_lv || init_lv == 0) { init_lv = 14; } ZdcEmapMapObj = new ZdcMap(document.getElementById("ZdcEmapMap"), new ZdcPoint(init_lon, init_lat, 2), init_lv , 2 // add 2011/09/01 Y.Matsukawa ); // 地図の縮尺レベル変更イベント( changezoomend ) をハンドルする ZdcEvent.addListener( ZdcEmapMapObj, 'changezoomend', function() { // セレクトボックスの選択を変更する ZdcEmapMapScaleToLvlSelect(); // ズームボタンのイメージを変更する if(0 == '1') ZdcEmapLvlScaleBtn(); // add 2012/08/16 K.Masuda } ); ZdcEmapMapObj.addMapScaleBar( new ZdcScaleBar( '3' ) ); ZdcEmapMapObj.reflashMap(); ZdcEmapMapObj.saveMapLocation(); ZdcEmapMapScaleToLvlSelect(); //ユーザーレイヤー ZdcEmapMapUserLyr.setLayerScale(1,15); ZdcEmapMapUserLyr.clearMarker(); ZdcEmapMapUserLyrId = ZdcEmapMapObj.addUserLayer(ZdcEmapMapUserLyr); // add 2016/11/09 K.Tani [ document.getElementById("ZdcEmapMap").ontouchmove = function ( event ) { event.preventDefault(); }; // add 2016/11/09 K.Tani ] ZdcEvent.addListener(ZdcEmapMapObj, "clickmapnomove", function(e) { ZdcEmapShopMsgClose(); }); // add 2012/02/22 H.osamoto [ ZdcEvent.addListener(ZdcEmapMapObj, "changezoomend", ZdcEmapMapEventLogZoom); ZdcEvent.addListener(ZdcEmapMapObj, "dragmapend", ZdcEmapMapEventLogLoc); // add 2012/02/22 H.osamoto ] if(0 == '1') ZdcEmapLvlScaleBtn(); // add 2012/08/16 K.Masuda setTimeout(ZdcEmapRefMap, 100); } // add 2020/10/08 MLAB.HieuHuynh ]