// 地図
var ZdcEmapMapObj = null;
// 地図余白領域 add 2011/08/26 H.osamoto
var ZdcEmapAnyDispPx = 0;
var ZdcEmapAnyDispPy = 0; // add 2011/12/26 K.Masuda
// マーカー
var ZdcEmapListMarkers = [];
var ZdcEmapListPointMarkers = [];
var ZdcEmapScaleType = "1";
var ZdcEmapWindowWidth = 0;
var ZdcEmapWindowHeight = 0;
// 吹き出し
var ZdcEmapMsg = 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/smt/daitomap/img/000000.gif';ZdcEmapIconW['@SHOP'] = 11;ZdcEmapIconH['@SHOP'] = 11;ZdcEmapIconOffsetX['@SHOP'] = -6;ZdcEmapIconOffsetY['@SHOP'] = -6;ZdcEmapIconImg['@NEW'] = 'https://www.e-map.ne.jp/smt/daitomap/img/new.gif';ZdcEmapIconW['@NEW'] = 23;ZdcEmapIconH['@NEW'] = 10;ZdcEmapIconOffsetX['@NEW'] = -12;ZdcEmapIconOffsetY['@NEW'] = -5;ZdcEmapIconImg['@SEL'] = 'https://www.e-map.ne.jp/smt/daitomap/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/daitomap/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/daitomap/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=daitomap&icon_id=1';ZdcEmapIconW['1'] = 34;ZdcEmapIconH['1'] = 80;ZdcEmapIconOffsetX['1'] = -17;ZdcEmapIconOffsetY['1'] = -40;ZdcEmapIconImg['2'] = 'https://www.e-map.ne.jp/cgi/icon_select.cgi?cid=daitomap&icon_id=2';ZdcEmapIconW['2'] = 34;ZdcEmapIconH['2'] = 80;ZdcEmapIconOffsetX['2'] = -17;ZdcEmapIconOffsetY['2'] = -40;ZdcEmapIconImg['3'] = 'https://www.e-map.ne.jp/cgi/icon_select.cgi?cid=daitomap&icon_id=3';ZdcEmapIconW['3'] = 34;ZdcEmapIconH['3'] = 80;ZdcEmapIconOffsetX['3'] = -17;ZdcEmapIconOffsetY['3'] = -40;
// 最寄り地図での詳細情報
var ZdcEmapSearchNShopInfoObj = null;
var ZdcEmapSearchNShopInfoOpen = false; // nmapでkid指定の初期表示判定 2019/05/16 add Y.Uesugi
// 最寄り地図での詳細表示アイコン
var ZdcEmapShopPinMarkers = null;
var ZdcEmapShopPinIconImg = new Array();
var ZdcEmapShopPinIconW = new Array();
var ZdcEmapShopPinIconH = new Array();
var ZdcEmapShopPinIconOffsetX = new Array();
var ZdcEmapShopPinIconOffsetY = new Array();
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 ZdcEmapSearchBox = null;// 地図範囲を保持 add 2017/02/03 K.Tani
var ZdcEmapIconDt = new Array();
// add 2012/08/16 K.Masuda [
// 最大縮尺、最小縮尺
// var max_lvl = "3";
// var min_lvl = "16";
var max_lvl = parseInt("3");
var min_lvl = parseInt("16");
// add 2012/08/16 K.Masuda ]
var zoomRange = [], i;
for(i = parseInt('3'); i <= parseInt('16'); i++)
zoomRange.push(i);
/**
* Convert zoom from virtual zoom to real zoom
*/
function EncRealZoom(zoom){
for(var i = 0; i < zoomRange.length; i++){
if(zoom == zoomRange[i]){
return i + 1;
}
}
}
/**
* Convert zoom from real zoom to virtual zoom
*/
function DecRealZoom(zoom){
return zoomRange[zoom] - 1;
}
//-------------------------------------------------------------
//自動検索のイベント管理
//-------------------------------------------------------------
var ZdcEmapSearchEventFlg = 0;
var ZdcEmapSearchEventFunc = null;
var ZdcEmapSearchEventDragmapend;
var ZdcEmapSearchEventScrollmapend;
var ZdcEmapSearchEventChangezoomend;
var ZdcEmapNListEventFlg = 0;
function ZdcEmapRefMap() {
var obj = document.getElementById("ZdcEmapMap");
if (obj) {
obj.offsetLeft;
}
}
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) {
lvl = EncRealZoom(lvl);
ZdcEmapMapObj.setZoom(lvl - 1);
} else if(14 > 0) {
lvl = EncRealZoom(14);
ZdcEmapMapObj.setZoom(lvl - 1);
}
// 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(0, 1, 'detail'); }
);
}
ZdcEmapListMarkers[0] = mrk;
ZdcEmapMapObj.addWidget(mrk.marker);
if(mrk.tooltip != null)
ZdcEmapMapObj.addWidget(mrk.tooltip);
if (mode == '') { ZdcEmapShopMsg(0, 1, 'detail');
}
ZdcEmapMapObj.setHome();
}
function ZdcEmapMaplinkInit(lat,lon,icnno,lvl,parm_nm) {
var mrk,tmp;
if (lvl && lvl != 0) {
lvl = EncRealZoom(lvl);
ZdcEmapMapObj.setZoom(lvl - 1); // fix zoom level
} else if(14 > 0) {
lvl = EncRealZoom(14);
ZdcEmapMapObj.setZoom(lvl - 1);
}
var hidemarker = false;
if (icnno == '' || ( undefined == ZdcEmapIconImg[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); }
);
ZdcEmapListMarkers[0] = mrk;
ZdcEmapMapObj.addWidget(mrk.marker);
ZdcEmapShopMsgMaplink(parm_nm);
ZdcEmapMapObj.setHome();
}
function ZdcEmapMakeMrk(id, lat, lon,
sizew, sizeh, shadowsizew, shadowsizeh,
offsetx, offsety, shdoffsetx, shdoffsety, msgoffsetx, msgoffsety,
image, shadowimage,
data1, data2, nflg,
mouseclickmarker
, lvl
) {
lat = ZDC.msTodeg(lat);
lon = ZDC.msTodeg(lon);
if(image.substr(image.length - 4, 4) != '.gif'){
var ts = new Date().getTime();
image += image.indexOf('?') < 0 ? '?' : '&' + 'dummy=' + ts + '.gif';
}
var latlon = new ZDC.LatLon(lat, lon);
var marker = new ZDC.Marker(latlon, {
custom:{
base:{
src:image
}
},
offset: ZDC.Pixel(offsetx, offsety)
});
marker.data = {id: id};
if(typeof mouseclickmarker == 'function')
ZDC.addListener(marker, ZDC.MARKER_MOUSEUP, mouseclickmarker);
var tooltip = null;
if(nflg == 1){
tooltip = new ZDC.Marker(latlon, {
custom:{
base:{
src:ZdcEmapIconImg['@NEW']
}
},
offset: ZDC.Pixel(
- sizew / 2,
+ sizeh / 2
)
});
tooltip.data = {id: id};
if(typeof mouseclickmarker == 'function')
ZDC.addListener(tooltip, ZDC.MARKER_MOUSEUP, mouseclickmarker);
}
return {
'id': id,
'marker': marker,
'tooltip': tooltip,
'data1': data1,
'data2': data2,
'w': sizew,
'h': sizeh
}
}
//フキダシ表示
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();
//デザイン
var obj = ZdcEmapListMarkers[id]; //フキダシを表示させる
var kidprm = "";
if( overlap == 2) {
if (IconGrp.length > 0) {
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];
}
} else {
kidprm = "&kid="+obj.data1;
}
}
}
}
} else if( overlap == 1) {
var grpKid = markerOverlaps[id].split(',');
if( grpKid.length > 1){
for(var k = 0; k < grpKid.length; k++){
if(grpKid[k] == '')
continue;
kidprm += '&kid' + k + '=' + grpKid[k];
}
}else{
kidprm += '&kid=' + obj.data1;
}
}
if (overlap) {
var url = "http://127.0.0.1/smt/daitomap/shop_msg.htm?cid=daitomap&id="+id+kidprm;
} else { var url = "http://127.0.0.1/smt/daitomap/shop_msg.htm?cid=daitomap&id="+id+"&kid="+obj.data1;
}
//url += "&";
//url += "&p_f2=4"; // add 2012/01/11 Y.Matsukawa mod 2012/09/10 Y.Matsukawa
url += "&p_f2=4";
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+"]";
ZdcEmapMsg.setHtml(html);
ZdcEmapMsg.moveLatLon(obj.marker.getLatLon());
ZdcEmapMsg.open();
ZdcEmapReadOff();
}, false, 2);
}
//フキダシ(Maplink用)表示
function ZdcEmapShopMsgMaplink(parm_nm) {
if (parm_nm == '') return;
ZdcEmapReadOn();
ZdcEmapShopMsgClose();
//デザイン
//フキダシを表示させる
var url = "http://127.0.0.1/smt/daitomap/maplink_msg.htm?"+parm_nm;
url += "&https_req=1"; //url += "&p_f2=4"; // add 2012/01/11 Y.Matsukawa mod 2012/09/10 Y.Matsukawa
url += "&p_f2=4";
ZdcEmapHttpRequestHtml(url, function(html,status){
if(status) html = "申し訳ありませんが只今大変混み合っております。TOPページに戻りしばらく時間を置いてからご利用ください msg["+status+"]";
ZdcEmapMsg.setHtml(html);
ZdcEmapMsg.moveLatLon(ZdcEmapListMarkers[0].marker.getLatLon());
ZdcEmapMsg.open();
ZdcEmapReadOff();
}, false, 2);
}
function ZdcEmapShopMsgClose() {
//ZdcEmapMapFrontShopReset();
if(ZdcEmapMsg != null)
ZdcEmapMsg.close();
}
//最寄り地図での選択アイコン拡大、情報表示
//id_flg:kidではなくアイコンIDが指定された場合はこのフラグを1とする
function ZdcEmapShopNlistInfo(kid, id_flg) {
ZdcEmapShopNlistInfoClose();
var iconId = null;
if(id_flg == 1){
iconId = kid;
}else {
for(j=0; j < ZdcEmapListMarkers.length; j++) {
if (ZdcEmapListMarkers[j].data1 == kid) {
iconId = j;
break;
}
}
}
//エラー処理
if(!ZdcEmapListMarkers[iconId]) {
//alert("予期しないエラーが発生しました listres["+result.status+"]");
//ZdcEmapReadOff();
return;
}
var obj = ZdcEmapListMarkers[iconId];
//拡大アイコンを表示する
mrk = ZdcEmapMakeMrk(999,obj.lat,obj.lon,
ZdcEmapShopPinIconW[obj.data2],ZdcEmapShopPinIconH[obj.data2],0,0,
ZdcEmapShopPinIconOffsetX[obj.data2],ZdcEmapShopPinIconOffsetY[obj.data2],0,0,0,0,
ZdcEmapShopPinIconImg[obj.data2],null,
obj.data1,obj.data2,0,
null
//function() { ZdcEmapShopNlistInfoClose(); }
);
//add 2021/11/02 sugita #7045 [
//add 2021/11/02 sugita #7045 ]
ZdcEmapMapObj.addWidget(mrk.marker);
ZdcEmapMapObj.moveLatLon(mrk.marker.getLatLon());
ZdcEmapMapObj.movePx(0,ZdcEmapWindowHeight/4);
ZdcEmapShopPinMarkers = mrk.marker;
//詳細情報を画面に設定する
var url = "http://127.0.0.1/smt/daitomap/n_inf.htm?kid="+obj.data1;
url += "&p_f2=4";
ZdcEmapHttpRequestHtml(url, function(html, status){
if(status) html = "申し訳ありませんが只今大変混み合っております。TOPページに戻りしばらく時間を置いてからご利用ください search["+status+"]";
if(document.getElementById("ZdcEmapSearchNShopInf")){
ZdcEmapSearchNShopInfoObj = document.getElementById('ZdcEmapSearchNShopInf');
}
if(ZdcEmapSearchNShopInfoObj){
ZdcEmapSearchNShopInfoObj.innerHTML = html;
ZdcEmapSearchNShopInfoObj.style.visibility = "visible";
}
}, false, 2);
//yamato09 custom.jsに記述
ZdcEmapShopNlistInfoSlide();
}
//詳細表示、拡大アイコン削除
function ZdcEmapShopNlistInfoClose() {
if(ZdcEmapShopPinMarkers != null){
ZdcEmapMapObj.removeWidget(ZdcEmapShopPinMarkers);
ZdcEmapShopPinMarkers = null;
}
if(ZdcEmapSearchNShopInfoObj != null){
ZdcEmapSearchNShopInfoObj = null;
}
}
//拡大アイコンを最前面へ
function ZdcEmapMapFrontShopIcon() {
if(ZdcEmapShopPinMarkers != null){
ZdcEmapShopPinMarkers.setZindex(999);
}
}
function ZdcEmapInit(init_lat, init_lon, init_lv, nmapflg){
ZdcEmapSearchNShopInfoOpen = false;
ZdcEmapWindowWidth = window.innerWidth;
ZdcEmapWindowHeight = window.innerHeight;
ZdcEmapLastOrientation = window.orientation; ZdcEmapLastOrientation = 999;
init_lat = ZDC.msTodeg(init_lat);
init_lon = ZDC.msTodeg(init_lon);
// 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 ]
// 横向きの時に任意の地図サイズを指定(ヘッダフッタが大きい場合の地図が表示されない現象への対応)
if ((window.innerWidth > window.innerHeight) && 0 > 0) { ZdcEmapWindowHeight = 0;
}
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;
}
init_lv = EncRealZoom(init_lv); // add 2015/06/08 Y.Matsukawa
ZdcEmapMapObj = new ZDC.Map(document.getElementById('ZdcEmapMap'), {
latlon: new ZDC.LatLon(init_lat, init_lon),
zoom: init_lv - 1, // Fix zoom level
mapType: ZDC.MAPTYPE_HIGHRESOLUTION == 9 ? 15 : ZDC.MAPTYPE_HIGHRESOLUTION,
zoomRange: zoomRange // Set zoom range
}
);
// スケールバー表示
ZdcEmapMapObj.addWidget(new ZDC.ScaleBar({bottom: 3, left: 10}));
// ホーム位置セット
ZdcEmapMapObj.setHome();
// 縮尺リストボックス
ZdcEmapMapScaleToLvlSelect();
// 縮尺+-ボタン
if(ZdcEmapScaleType == '1')
ZdcEmapLvlScaleBtn();
// 地図上クリック(ドラッグでない)
ZDC.addListener(ZdcEmapMapObj, ZDC.MAP_MOUSEDOWN, function(){
curentMapLatLon = ZdcEmapMapObj.getLatLon();
});
ZDC.addListener(ZdcEmapMapObj, ZDC.MAP_MOUSEUP, function(){
// フキダシを閉じる
if(ZdcEmapMapObj.getLatLon().lat == curentMapLatLon.lat &&
ZdcEmapMapObj.getLatLon().lon == curentMapLatLon.lon){
ZdcEmapShopMsgClose();
}
});
// ドラッグ
ZDC.addListener(ZdcEmapMapObj, ZDC.MAP_DRAG_END, function(){
// 課金ログ出力
ZdcEmapMapEventLogLoc();
});
// 縮尺変更
ZDC.addListener(ZdcEmapMapObj, ZDC.MAP_CHG_ZOOM, function(){
// 課金ログ出力
ZdcEmapMapEventLogZoom();
// 縮尺リストボックス更新
ZdcEmapMapScaleToLvlSelect();
// 縮尺+-ボタン更新
if(ZdcEmapScaleType == '1')
ZdcEmapLvlScaleBtn();
});
// フキダシ表示用オブジェクト
ZdcEmapMsg = new ZDC.MsgInfo(ZdcEmapMapObj.getLatLon(), {
'closeBtn':true
});
ZdcEmapMapObj.addWidget(ZdcEmapMsg);
//if(< ?php echo ($D_SCALE_TYPE)?'1':'0'; ? > == '1') ZdcEmapLvlScaleBtn(); // add 2012/08/16 K.Masuda mod 2015/06/08 Y.Matsukawa ?>
if(ZdcEmapScaleType == '1') ZdcEmapLvlScaleBtn();
setTimeout(ZdcEmapRefMap, 100);
}
function ZdcEmapMapScaleToLvlSelect() {
var newLvl = DecRealZoom(ZdcEmapMapObj.getZoom()) + 1;
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.setZoom(EncRealZoom(newLvl) - 1);
}
function ZdcEmapResetMapLocation() {
ZdcEmapMapObj.moveHome();
}
// +-ボタン
function ZdcEmapLvlScaleBtn(){
// var now_lvl = ZdcEmapMapObj.getMapScale();
var now_lvl = parseInt(DecRealZoom(ZdcEmapMapObj.getZoom()) + 1);
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/daitomap/img/btn_plus_def.png"; //(+)
if(btnm.src)btnm.src = "https://www.e-map.ne.jp/smt/daitomap/img/btn_minus_dis.png"; //(-)
} else if( now_lvl == min_lvl ){
if(btnp.src)btnp.src = "https://www.e-map.ne.jp/smt/daitomap/img/btn_plus_dis.png"; //(+)
if(btnm.src)btnm.src = "https://www.e-map.ne.jp/smt/daitomap/img/btn_minus_def.png"; //(-)
} else {
if(btnp.src)btnp.src = "https://www.e-map.ne.jp/smt/daitomap/img/btn_plus_def.png"; //(+)
if(btnm.src)btnm.src = "https://www.e-map.ne.jp/smt/daitomap/img/btn_minus_def.png"; //(-)
}
}
// +-ボタンでの地図縮尺変更
function ZdcEmapLvlScaleChanged(type){
// var now_lvl = ZdcEmapMapObj.getMapScale();
var now_lvl = parseInt(DecRealZoom(ZdcEmapMapObj.getZoom()) + 1);
if( max_lvl <= now_lvl || now_lvl >= min_lvl ){
if(type == 'p'){
if( now_lvl < min_lvl ){
now_lvl++;
}
now_lvl = EncRealZoom(now_lvl);
ZdcEmapMapObj.setZoom(now_lvl - 1);
} else {
if( now_lvl > max_lvl ){
now_lvl--;
}
now_lvl = EncRealZoom(now_lvl);
ZdcEmapMapObj.setZoom(now_lvl - 1);
}
} else {
if(type == 'p'){
now_lvl = min_lvl;
} else {
now_lvl = max_lvl;
}
now_lvl = EncRealZoom(now_lvl);
ZdcEmapMapObj.setZoom(now_lvl - 1);
}
ZdcEmapLvlScaleBtn();
}
//地図移動
function ZdcEmapMapMoveBox(minlat,minlon,maxlat,maxlon,pt,noin){
var swLatlon = new ZDC.LatLon(minlat, minlon);
var neLatlon = new ZDC.LatLon(maxlat, maxlon);
var latlons = [swLatlon, neLatlon];
if(pt != null) {
latlons.push(pt);
var adjust = ZdcEmapMapObj.getAdjustZoom(latlons, {fix: true});
} else {
var adjust = ZdcEmapMapObj.getAdjustZoom(latlons, {fix: false});
}
if(null != adjust){
ZdcEmapMapObj.moveLatLon(adjust.latlon);
if(noin != 1 || (noin == 1 && adjust.zoom < ZdcEmapMapObj.getZoom()))
ZdcEmapMapObj.setZoom(adjust.zoom);
}
}
function ZdcEmapMapMoveBoxKanaden(minlat,minlon,maxlat,maxlon){
var swLat = ZDC.msTodeg(minLat);
var swLon = ZDC.msTodeg(minLon);
var neLat = ZDC.msTodeg(maxLat);
var neLon = ZDC.msTodeg(maxLon);
var swLatlon = new ZDC.LatLon(swLat, swLon);
var neLatlon = new ZDC.LatLon(neLat, neLon);
var adjust = ZdcEmapMapObj.getAdjustZoom([swLatlon, neLatlon], {
fix: false
});
ZdcEmapMapObj.moveLatLon(adjust.latlon);
ZdcEmapMapObj.setZoom(adjust.zoom);
}
// 最寄り店舗分布表示
function ZdcEmapSearchShopStart(cond) {
ZdcEmapSearchFirst = 1;
ZdcEmapSearchCond = cond;
ZdcEmapSearchClickFlg = 1; // add 2011/06/29 Y.Matsukawa
ZdcEmapSearchShop(cond);
ZdcEmapSearchEventAdd("ZdcEmapSearchShop('"+cond+"')");
}
function ZdcEmapSearchMapIcon() {
var latlon = ZdcEmapMapObj.getLatLon();
var marker = new ZDC.Marker(latlon, {
custom:{
base:{
src: 'https://www.e-map.ne.jp/smt/daitomap/img/000000.gif'
}
},
offset: ZDC.Pixel(
-5, -5 )
});
ZdcEmapMapObj.addWidget(marker);
}
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 = ZdcEmapMapObj.getLatLon();
var box = ZdcEmapMapObj.getLatLonBox();
if(ZdcEmapSearchPoint != null){
var pix1 = ZdcEmapMapObj.latLonToTL(ZdcEmapSearchPoint);
var pix2 = ZdcEmapMapObj.latLonToTL(p);
if(Math.abs(pix1.left-pix2.left) < 15 && Math.abs(pix1.top-pix2.top) < 15 && ZdcEmapSearchScale == ZdcEmapMapObj.getZoom()) {
ZdcEmapReadOff();
return;
}
}
if(ZdcEmapSearchPoint != null && 15 == -1) {
//自動再検索しない
ZdcEmapReadOff();
return;
}
//自動検索イベント停止
ZdcEmapSearchEventStop();
ZdcEmapNListEventStop(); //ZdcEmapShopMsgClose();
//
var opts = new ZdcNearShopOptions();
//opts.cid='daitomap' mod 2012/01/19 N.Wada
opts.cid='daitomap'
opts.lat = ZDC.degToms(p.lat);
opts.lon = ZDC.degToms(p.lon);
if(ZdcEmapSearchFirst != 1) {
opts.latlon = ZDC.degToms(box.getMin().lat)
+ "," + ZDC.degToms(box.getMin().lon)
+ "," + ZDC.degToms(box.getMax().lat)
+ "," + ZDC.degToms(box.getMax().lon);
opts.radius = 10000;
} else {
ZdcEmapSearchFirst = 0;
opts.researchCount = 1;
opts.radius = 10000;
}
if (cond) opts.jkn = cond;
opts.pos = 1;
opts.maxCount = 50;
opts.limitCount = 50;
opts.timeout = 10000;
ZdcEmapNearShop2.opts = opts;
//アイコンを表示する
ZdcEmapNearShop2.search(opts,ZdcEmapSearchShopResult);
}
var IconGrp = new Array(); //検索結果の処理
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
for(i = 0; i < ZdcEmapListMarkers.length; i++){
ZdcEmapMapObj.removeWidget(ZdcEmapListMarkers[i].marker);
if(ZdcEmapListMarkers[i].tooltip)
ZdcEmapMapObj.removeWidget(ZdcEmapListMarkers[i].tooltip);
}
ZdcEmapListMarkers = [];
//エラー処理
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.data.id, 1, 'bunpu', ""); },
//null,
null,
null,
item.lvl
);
// add 2011/08/10 H.osamoto [
ZdcEmapMapObj.addWidget(mrk.marker);
ZdcEmapListMarkers[i] = mrk;
// add start 2018/02/19 H.Yasunaga ゆうプリタッチ対応 [
// add end 2018/02/19 H.Yasunaga ]
if(mrk.tooltip != null)
ZdcEmapMapObj.addWidget(mrk.tooltip);
// 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;
}
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(ZdcEmapListMarkers.length > 0){
//拠点が収まる範囲に移動
ZdcEmapMapMoveBox(ZDC.msTodeg(minlat), ZDC.msTodeg(minlon), ZDC.msTodeg(maxlat), ZDC.msTodeg(maxlon), ZdcEmapMapObj.getLatLon(), 1);
} else {
//検索半径の縮尺に移動
var p = ZdcEmapMapObj.getLatLon();
var rx = parseInt((450000 / (11 * 1000)) * 10000);//CGIと計算をあわせる
var ry = parseInt((300000 / (9 * 1000)) * 10000);//〃
ZdcEmapMapMoveBox(
p.lat - ZDC.msTodeg(rx),
p.lon - ZDC.msTodeg(ry),
p.lat + ZDC.msTodeg(rx),
p.lon + ZDC.msTodeg(ry),
p
);
}
}
} else {
if (ZdcEmapSearchRetry) {
ZdcEmapSearchRetry = 0;
ZdcEmapSearchFirst = 1;
ZdcEmapSearchClickFlg = 1;
ZdcEmapSearchPoint = null;//必ず再検索させるため
ZdcEmapSearchRetryVCnt = 0;
ZdcEmapReadOff();
ZdcEmapSearchShop(ZdcEmapSearchCond);
return;
}
}
// 再検索時に吹き出しを削除
if( false ){
ZdcEmapShopMsgClose();
}
ZdcEmapSearchEventStart();
//検索位置を保持
ZdcEmapSearchPoint = ZdcEmapMapObj.getZoom();
ZdcEmapSearchScale = ZdcEmapMapObj.getLatLon();
// 初期表示の地図範囲を保持
if(!ZdcEmapSearchBox){
ZdcEmapSearchBox = ZdcEmapMapObj.getLatLonBox();
}
ZdcEmapReadOff();
}
// 検索イベント開始
function ZdcEmapSearchEventStart() {
ZdcEmapSearchEventFlg = 1;
}
// 検索イベント停止
function ZdcEmapSearchEventStop() {
ZdcEmapSearchEventFlg = 0;
}
function ZdcEmapNListEventStart() {
ZdcEmapNListEventFlg = 1;
}
function ZdcEmapNListEventStop() {
ZdcEmapNListEventFlg = 0;
}
//検索実行
function ZdcEmapSearchEventAction() {
if(!ZdcEmapSearchEventFlg) return;
//if(ZdcEmapMapObj.getUserMsgOpenStatus()) return;//フキダシ表示中は検索しない
eval(ZdcEmapSearchEventFunc);
}
//検索イベント追加
function ZdcEmapSearchEventAdd(func) {
ZdcEmapSearchEventDel();
ZdcEmapSearchEventFunc = func;
ZdcEmapSearchEventDragmapend = ZDC.addListener(
ZdcEmapMapObj, ZDC.MAP_CHG_LATLON, ZdcEmapSearchEventAction
);
// Due when map move box not finish will double search
// The function move box haven't callback function
setTimeout(function(){
ZdcEmapSearchEventChangezoomend = ZDC.addListener(
ZdcEmapMapObj, ZDC.MAP_CHG_ZOOM, ZdcEmapSearchEventAction
);
}, 400);
}
//検索イベント削除
function ZdcEmapSearchEventDel() {
ZdcEmapSearchEventStop();
ZdcEmapNListEventStop(); if(ZdcEmapSearchEventDragmapend) ZDC.removeListener(ZdcEmapSearchEventDragmapend);
if(ZdcEmapSearchEventChangezoomend) ZDC.removeListener(ZdcEmapSearchEventChangezoomend);
ZdcEmapSearchEventDragmapend = null;
//ZdcEmapSearchEventScrollmapend = null;
ZdcEmapSearchEventChangezoomend = null;
delete ZdcEmapSearchEventFunc;
}
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 時にコールされます。
//---------------------------------------------------------------------------
var ZdcEmapChangeOrientationTimer = null; // add 2016/03/28 Y.Matsukawa
function ZdcEmapChangeOrientation()
{
if (ZdcEmapChangeOrientationTimer) {
clearInterval(ZdcEmapChangeOrientationTimer);
ZdcEmapChangeOrientationTimer = null;
} else {
var adjust = true;
if (adjust) {
var mapdiv = document.getElementById('ZdcEmapMap');
mapdiv.style.width = '320px';
mapdiv.style.height = '320px';
// add Khanh.Le 2021.07.05 [Fixbug #46788: [SP][711NS][JPTEST]拠点分布地図画面でview_v2.jsでUncaught TypeError_Uncaught TypeError][
// ZdcEmapMapObj.refresh();
if (ZdcEmapMapObj) {
ZdcEmapMapObj.refresh();
}
// add Khanh.Le 2021.07.05 [Fixbug #46788: [SP][711NS][JPTEST]拠点分布地図画面でview_v2.jsでUncaught TypeError_Uncaught TypeError]]
}
ZdcEmapChangeOrientationTimer = setInterval(ZdcEmapChangeOrientation, 500);
return;
}
ZdcEmapWindowWidth = window.innerWidth;
ZdcEmapWindowHeight = window.innerHeight;
ZdcEmapWindowHeight = ZdcEmapWindowHeight - ZdcEmapAnyDispPx; // add 2011/08/26 H.osamoto
ZdcEmapWindowWidth = ZdcEmapWindowWidth - ZdcEmapAnyDispPy; // add 2011/12/26 K.Masuda
//
if ((ZdcEmapWindowWidth > ZdcEmapWindowHeight) && 0 > 0) {
ZdcEmapWindowHeight = 0;
}
var mapDom = document.getElementById('ZdcEmapMap');
mapDom.style.width = ZdcEmapWindowWidth + 'px';
mapDom.style.height = ZdcEmapWindowHeight + 'px';
// add Khanh.Le 2021.07.05 [Fixbug #46788: [SP][711NS][JPTEST]拠点分布地図画面でview_v2.jsでUncaught TypeError_Uncaught TypeError][
// ZdcEmapMapObj.refresh();
if (ZdcEmapMapObj) {
ZdcEmapMapObj.refresh();
}
// add Khanh.Le 2021.07.05 [Fixbug #46788: [SP][711NS][JPTEST]拠点分布地図画面でview_v2.jsでUncaught TypeError_Uncaught TypeError]]
}
window.onload = function()
{
ZdcEmapWindowWidth = window.innerWidth;
ZdcEmapWindowHeight = window.innerHeight;
};
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 = 1; var ZdcEmapSearchRouteType = 1;
var ZdcEmapRouteWalkPSC = 0;
var ZdcEmapRouteWalkFloorFlg = 0;
var ZdcEmapRouteWalkDepFloor = 0;
var ZdcEmapRouteWalkDepStationFlg = 0;
var ZdcEmapRouteWalkArrFloorFlg = 0;
var ZdcEmapRouteWalkArrStationFlg = 0;
var ZdcEmapRouteWalkArrFloor = 0;
var routeInfo = {
'from': null,
'to': null,
'polyline': null,
'flagFrom': null,
'flagTo': null
};
var pscWalk = {
0: 'dist',
1: 'time',
3: 'easy',
5: 'roof'
}
// 現在地からルート探索
function ZdcEmapLocRoute(loc_lat, loc_lon, shop_lat, shop_lon) {
if(ZdcEmapLocRouteType == 0) return;
ZdcEmapRouteType = ZdcEmapLocRouteType;
ZdcEmapShopMsgClose();
ZdcEmapRouteClear();
ZdcEmapPoiMrkClear();
routeInfo.from = ZDC.wgsTotky(new ZDC.LatLon(loc_lat, loc_lon));
routeInfo.to = new ZDC.LatLon(ZDC.msTodeg(shop_lat), ZDC.msTodeg(shop_lon));
if(ZdcEmapRouteType == 1)
ZdcEmapRouteSearchWalk();
if(ZdcEmapRouteType == 2)
ZdcEmapRouteSearchCar();
ZdcEmapMapMoveBox(routeInfo.to.lat, routeInfo.to.lon, routeInfo.from.lat, routeInfo.from.lon);
}
// 最寄り駅アイコン表示
function ZdcEmapEki(eki_lat, eki_lon, shop_lat, shop_lon) {
// 駅アイコン表示
ZdcEmapPoiMrkClear();
var i = ZdcEmapListPointMarkers.length;
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/daitomap/img/icon_eki/0000.gif',"",
"","",0,
null,
null,
null);
ZdcEmapListPointMarkers[i] = mrk;
ZdcEmapMapObj.addWidget(mrk.marker);
ZdcEmapMapMoveBox(ZDC.msTodeg(eki_lat), ZDC.msTodeg(eki_lon), ZDC.msTodeg(shop_lat), ZDC.msTodeg(shop_lon));
}
// 駅からルート探索
function ZdcEmapEkiRoute(eki_lat, eki_lon, shop_lat, shop_lon) {
if(ZdcEmapNekiRouteType == 0) return;
ZdcEmapRouteType = ZdcEmapNekiRouteType;
ZdcEmapShopMsgClose();
ZdcEmapRouteClear();
routeInfo.from = new ZDC.LatLon(ZDC.msTodeg(eki_lat), ZDC.msTodeg(eki_lon));
routeInfo.to = new ZDC.LatLon(ZDC.msTodeg(shop_lat), ZDC.msTodeg(shop_lon));
if(ZdcEmapRouteType == 1)
ZdcEmapRouteSearchWalk();
if(ZdcEmapRouteType == 2)
ZdcEmapRouteSearchCar();
ZdcEmapMapMoveBox(ZDC.msTodeg(eki_lat), ZDC.msTodeg(eki_lon), ZDC.msTodeg(shop_lat), ZDC.msTodeg(shop_lon));
}
function ZdcEmapPoi(poi_lat, poi_lon, poi_jnrmn, shop_lat, shop_lon) {
ZdcEmapPoiMrkClear();
var i = ZdcEmapListPointMarkers.length;
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/daitomap/img/icon_poi/'+poi_jnrmn+'.gif',"",
"","",0,
null,
null,
null);
ZdcEmapListPointMarkers[i] = mrk;
ZdcEmapMapObj.addWidget(mrk.marker);
ZdcEmapMapMoveBox(ZDC.msTodeg(poi_lat), ZDC.msTodeg(poi_lon), ZDC.msTodeg(shop_lat), ZDC.msTodeg(shop_lon));
}
function ZdcEmapPoiRoute(poi_lat, poi_lon, shop_lat, shop_lon) {
if(ZdcEmapNpoiRouteType == 0) return;
ZdcEmapRouteType = ZdcEmapNpoiRouteType;
ZdcEmapShopMsgClose();
ZdcEmapRouteClear();
routeInfo.from = new ZDC.LatLon(ZDC.msTodeg(poi_lat), ZDC.msTodeg(poi_lon));
routeInfo.to = new ZDC.LatLon(ZDC.msTodeg(shop_lat), ZDC.msTodeg(shop_lon));
if(ZdcEmapRouteType == 1)
ZdcEmapRouteSearchWalk();
if(ZdcEmapRouteType == 2)
ZdcEmapRouteSearchCar();
ZdcEmapMapMoveBox(ZDC.msTodeg(poi_lat), ZDC.msTodeg(poi_lon), ZDC.msTodeg(shop_lat), ZDC.msTodeg(shop_lon));
}
function ZdcEmapShopKanaden(now_lat, now_lon, shop_lat, shop_lon) {
ZdcEmapPoiMrkClear();
var i = ZdcEmapListPointMarkers.length;
var mrk = ZdcEmapMakeMrk(i,now_lat,now_lon,
11,11,0,0,
0,0,0,0,0,0,
'',"",
"","",0,
null,
null,
null);
ZdcEmapListPointMarkers[i] = mrk;
ZdcEmapMapObj.addWidget(mrk.marker);
ZdcEmapMapMoveBox(ZDC.msTodeg(now_lat), ZDC.msTodeg(now_lon), ZDC.msTodeg(shop_lat), ZDC.msTodeg(shop_lon));
}
function ZdcEmapEkiKanaden(eki_lat, eki_lon, shop_lat, shop_lon) {
var i = ZdcEmapListPointMarkers.length;
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/daitomap/img/icon_eki/0000.gif',"",
"","",0,
null,
null,
null);
ZdcEmapListPointMarkers[i] = mrk;
ZdcEmapMapObj.addWidget(mrk.marker);
ZdcEmapMapMoveBox(ZDC.msTodeg(eki_lat), ZDC.msTodeg(eki_lon), ZDC.msTodeg(shop_lat), ZDC.msTodeg(shop_lon));
}
function ZdcEmapPoiKanaden(poi_lat, poi_lon, poi_jnrmn, shop_lat, shop_lon) {
var i = ZdcEmapListPointMarkers.length;
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/daitomap/img/icon_eki/0000.gif',"",
"","",0,
null,
null,
null);
ZdcEmapListPointMarkers[i] = mrk;
ZdcEmapMapObj.addWidget(mrk.marker);
ZdcEmapMapMoveBox(ZDC.msTodeg(poi_lat), ZDC.msTodeg(poi_lon), ZDC.msTodeg(shop_lat), ZDC.msTodeg(shop_lon));
}
// 出発地指定ルート探索
function ZdcEmapSearchRoute(srch_lat, srch_lon, shop_lat, shop_lon) {
if(ZdcEmapSearchRouteType == 0) return;
ZdcEmapRouteType = ZdcEmapSearchRouteType;
ZdcEmapShopMsgClose();
ZdcEmapRouteClear();
routeInfo.from = new ZDC.LatLon(ZDC.msTodeg(srch_lat), ZDC.msTodeg(srch_lon));
routeInfo.to = new ZDC.LatLon(ZDC.msTodeg(shop_lat), ZDC.msTodeg(shop_lon));
if(ZdcEmapRouteType == 1)
ZdcEmapRouteSearchWalk();
if(ZdcEmapRouteType == 2)
ZdcEmapRouteSearchCar();
ZdcEmapMapMoveBox(ZDC.msTodeg(shop_lat), ZDC.msTodeg(shop_lon), ZDC.msTodeg(srch_lat), ZDC.msTodeg(srch_lon));
}
// 歩行者ルート
function ZdcEmapRouteSearchWalk() {
ZdcEmapReadOn();
var query = {
'from': routeInfo.from,
'to': routeInfo.to,
'searchtype': pscWalk[ZdcEmapRouteWalkPSC],
'maxdist': 10
};
ZDC.Search.getRouteByWalk(query, function(status, res){
ZdcEmapRouteSearchEndWalk(status, res);
});
}
function ZdcEmapRouteSearchEndWalk(status, res) {
ZdcEmapReadOff();
if(status.code != '000'){ //エラー処理
if(ZdcEmapRouteType == 1) {
//失敗だった場合自動車で再検索する
ZdcEmapRouteSearchCar();
} else {
// alert('ルート探索に失敗しました。 [' + result.status + ']'); // mod 2015/03/09 H.Osamoto
alert('ルート探索に失敗しました。');
}
return;
}
//スタート/ゴールのアイコンを描画
ZdcEmapRouteFlag();
var route = res.route;
var latlons = [];
for(var i = 0; i < route.link.length; i++)
for(var j = 0; j 0) {
for(var i=0; i < arr_cond.length; i++) {
if (arr_cond[i] && arr_cond[i] != "") {
if (jkn) jkn += " OR ";
jkn += "("+arr_cond[i]+")";
}
}
}
return jkn;
}
// パラメータ取得
function getParam(name, url) {
if (!url) url = window.location.href;
name = name.replace(/[\[\]]/g, "\\$&");
var regex = new RegExp("[?&]" + name + "(=([^&#]*)|&|#|$)"),
results = regex.exec(url);
if (!results) return null;
if (!results[2]) return '';
return decodeURIComponent(results[2].replace(/\+/g, " "));
}
// For search Icon overlapping
var markerOverlaps = []; var miriLat= [];
var miriLon= [];
miriLat['1'] = 128836.6013; miriLon['1'] = 158117.6471;
miriLat['2'] = 64418.30065; miriLon['2'] = 79058.82353;
miriLat['3'] = 28183.00654; miriLon['3'] = 34588.23529;
miriLat['4'] = 14954.24837; miriLon['4'] = 18352.94118;
miriLat['5'] = 10352.94118; miriLon['5'] = 12705.88235;
miriLat['6'] = 5751.633987; miriLon['6'] = 7058.823529;
miriLat['7'] = 2588.235294; miriLon['7'] = 3176.470588;
miriLat['8'] = 1581.699346; miriLon['8'] = 1941.176471;
miriLat['9'] = 1150.326797; miriLon['9'] = 1411.764706;
miriLat['10'] = 539.2156863; miriLon['10'] = 661.7647059;
miriLat['11'] = 206.6993464; miriLon['11'] = 253.6764706;
miriLat['12'] = 152.7777778; miriLon['12'] = 187.5000000;
miriLat['13'] = 98.85620915; miriLon['13'] = 121.3235294;
miriLat['14'] = 74.14215686; miriLon['14'] = 90.99264706;
miriLat['15'] = 47.18137255; miriLon['15'] = 57.90441176;
miriLat['16'] = 33.70098039; miriLon['16'] = 41.36029412;
miriLat['17'] = 26.96078431; miriLon['17'] = 33.08823529;
miriLat['18'] = 15.72712418; miriLon['18'] = 19.30147059;
function ZdcEmapIconOverlap(icnt,lvl){
var zoom = DecRealZoom(ZdcEmapMapObj.getZoom()) + 1;
var minLat = [], minLon = [], maxLat = [], maxLon = [], latlon;
for(var i = 0; i < ZdcEmapListMarkers.length; i++){
markerOverlaps[ZdcEmapListMarkers[i].marker.data.id] = ZdcEmapListMarkers[i].data1;
latlon = ZdcEmapListMarkers[i].marker.getLatLon();
var w = ZdcEmapListMarkers[i].w;
var h = ZdcEmapListMarkers[i].h;
minLat[i] = (parseFloat(latlon.lat) -
(miriLat[zoom]/3600000 * (parseInt(w) / 2)));
minLon[i] = (parseFloat(latlon.lon) -
(miriLon[zoom]/3600000 * (parseInt(h) / 2)));
maxLat[i] = (parseFloat(latlon.lat) +
(miriLat[zoom]/3600000 * (parseInt(w) / 2)));
maxLon[i] = (parseFloat(latlon.lon) +
(miriLon[zoom]/3600000 * (parseInt(h) / 2)));
}
for(var i = 0; i < ZdcEmapListMarkers.length; i++){
latlon = ZdcEmapListMarkers[i].marker.getLatLon();
var wsLatlon = new ZDC.LatLon(minLat[i], minLon[i]);
var neLatlon = new ZDC.LatLon(maxLat[i], maxLon[i]);
var box = new ZDC.LatLonBox(wsLatlon, neLatlon);
for(var j = i + 1; j < ZdcEmapListMarkers.length; j++){
var p1 = new ZDC.LatLon(minLat[j],minLon[j]);
var p2 = new ZDC.LatLon(maxLat[j],minLon[j]);
var p3 = new ZDC.LatLon(maxLat[j],maxLon[j]);
var p4 = new ZDC.LatLon(minLat[j],maxLon[j]);
if( ZDC.getLineCrossRectLatLons(p1, p2, box)){
markerOverlaps[ZdcEmapListMarkers[i].marker.data.id] += ',' +
ZdcEmapListMarkers[j].data1;
markerOverlaps[ZdcEmapListMarkers[j].marker.data.id] += ',' +
ZdcEmapListMarkers[i].data1;
continue;
}
if( ZDC.getLineCrossRectLatLons(p2, p3, box)){
markerOverlaps[ZdcEmapListMarkers[i].marker.data.id] += ',' +
ZdcEmapListMarkers[j].data1;
markerOverlaps[ZdcEmapListMarkers[j].marker.data.id] += ',' +
ZdcEmapListMarkers[i].data1;
continue;
}
if( ZDC.getLineCrossRectLatLons(p3, p4, box)){
markerOverlaps[ZdcEmapListMarkers[i].marker.data.id] += ',' +
ZdcEmapListMarkers[j].data1;
markerOverlaps[ZdcEmapListMarkers[j].marker.data.id] += ',' +
ZdcEmapListMarkers[i].data1;
continue;
}
if( ZDC.getLineCrossRectLatLons(p4, p1, box)){
markerOverlaps[ZdcEmapListMarkers[i].marker.data.id] += ',' +
ZdcEmapListMarkers[j].data1;
markerOverlaps[ZdcEmapListMarkers[j].marker.data.id] += ',' +
ZdcEmapListMarkers[i].data1;
continue;
}
}
}
}
function ZdcEmapGetPointsByRad(latlon, rad) {
var lat_dist = (300000 / (9 * 1000)) * rad;
var lon_dist = (450000 / (11 * 1000)) * rad;
var lat_ms = ZDC.degToms(latlon.lat);
var lon_ms = ZDC.degToms(latlon.lon);
var p1 = new ZDC.LatLon(ZDC.msTodeg(lat_ms + lat_dist), latlon.lon);
var p2 = new ZDC.LatLon(ZDC.msTodeg(lat_ms - lat_dist), latlon.lon);
var p3 = new ZDC.LatLon(latlon.lat, ZDC.msTodeg(lon_ms + lon_dist));
var p4 = new ZDC.LatLon(latlon.lat, ZDC.msTodeg(lon_ms - lon_dist));
return new Array(p1, p2, p3, p4);
}
function ZdcEmap711omniSearchShop(init_rad) {
var latlon = ZdcEmapMapObj.getLatLon();
var latlons = ZdcEmapGetPointsByRad(latlon, init_rad)
var zi = ZdcEmapMapObj.getAdjustZoom(latlons, {fix:true});
ZdcEmapMapObj.setZoom(zi.zoom);
var box = ZdcEmapMapObj.getLatLonBox();
var boxmin = box.getMin();
var boxmax = box.getMax();
// 初期検索範囲にSEJ店舗が1つ以上存在するかどうか
var opts = new ZdcNearShopOptions2();
opts.cid = "daitomap";
opts.lat = ZDC.degToms(latlon.lat);
opts.lon = ZDC.degToms(latlon.lon);
opts.latlon = ZDC.degToms(boxmin.lat)+","+ZDC.degToms(boxmin.lon)+","+ZDC.degToms(boxmax.lat)+","+ZDC.degToms(boxmax.lon);
opts.jkn = "";
opts.pos = 1;
opts.maxCount = 1;
opts.limitCount = 1;
opts.timeout = 10000;
ZdcEmapNearShop2.opts = opts;
ZdcEmapNearShop2.search(opts, ZdcEmap711omniSearchShopResult);
}
function ZdcEmap711omniSearchShopResult(result) {
// エラー処理
if(result.status != 0 && result.status != 3 && result.status != 5 && result.status != 9) {
alert("検索に失敗しました" + ' [' + result.status + ']');
ZdcEmapSearchEventStart();
ZdcEmapReadOff();
return;
}
// 件数確認
var cnt = result.items.length;
if (cnt) {
// SEJ店舗ありなら地図範囲で最寄り検索
searchFirst = 0;//地図範囲を検索
searchClick = 0;//縮尺調整しない
ZdcEmapSearchShop(ZdcEmapSearchCond);
ZdcEmapSearchEventAdd('ZdcEmapSearchShop("' + ZdcEmapSearchCond + '")');
} else {
// SEJ店舗なしなら既定半径の入りきる縮尺で最寄り検索
var latlons = ZdcEmapGetPointsByRad(ZdcEmapMapObj.getLatLon(), 0)
var zi = ZdcEmapMapObj.getAdjustZoom(latlons, {fix:true});
ZdcEmapMapObj.setZoom(zi.zoom);
searchFirst = 0;//地図範囲を検索
searchClick = 0;//縮尺調整しない
ZdcEmapSearchShop(ZdcEmapSearchCond);
ZdcEmapSearchEventAdd('ZdcEmapSearchShop("' + ZdcEmapSearchCond + '")');
}
}
var SearchCount = 0;
function ZdcEmap711aplSearchShop(init_rad) {
var latlon = ZdcEmapMapObj.getLatLon();
// 検索範囲を設定
var opts = new ZdcNearShopOptions2();
opts.cid = "daitomap";
opts.lat = ZDC.degToms(latlon.lat);
opts.lon = ZDC.degToms(latlon.lon);
// 0:半径指定無し
if(init_rad == 0){
opts.radius = 0;
}else{
// 指定半径が入る範囲で検索
var latlons = ZdcEmapGetPointsByRad(latlon, init_rad)
var zi = ZdcEmapMapObj.getAdjustZoom(latlons, {fix:true});
ZdcEmapMapObj.setZoom(zi.zoom);
var box = ZdcEmapMapObj.getLatLonBox();
var boxmin = box.getMin();
var boxmax = box.getMax();
opts.latlon = ZDC.degToms(boxmin.lat)+","+ZDC.degToms(boxmin.lon)+","+ZDC.degToms(boxmax.lat)+","+ZDC.degToms(boxmax.lon);
}
// var latlons = ZdcEmapGetPointsByRad(latlon, init_rad)
// var zi = ZdcEmapMapObj.getAdjustZoom(latlons, {fix:true});
// ZdcEmapMapObj.setZoom(zi.zoom);
// var box = ZdcEmapMapObj.getLatLonBox();
// var boxmin = box.getMin();
// var boxmax = box.getMax();
// 初期検索範囲にSEJ店舗が1つ以上存在するかどうか
// var opts = new ZdcNearShopOptions2();
// opts.cid = "daitomap";
// opts.lat = ZDC.degToms(latlon.lat);
// opts.lon = ZDC.degToms(latlon.lon);
// opts.latlon = ZDC.degToms(boxmin.lat)+","+ZDC.degToms(boxmin.lon)+","+ZDC.degToms(boxmax.lat)+","+ZDC.degToms(boxmax.lon);
if (ZdcEmapSearchCond) opts.jkn = ZdcEmapSearchCond;
opts.pos = 1;
opts.maxCount = 1;
opts.limitCount = 1;
opts.timeout = 10000;
ZdcEmapNearShop2.opts = opts;
ZdcEmapNearShop2.search(opts, ZdcEmap711aplSearchShopResult);
}
function ZdcEmap711aplSearchShopResult(result) {
// 検索回数カウント
SearchCount++;
// エラー処理
if(result.status != 0 && result.status != 3 && result.status != 5 && result.status != 9) {
alert("検索に失敗しました" + ' [' + result.status + ']');
ZdcEmapSearchEventStart();
ZdcEmapReadOff();
return;
}
// 件数確認
var cnt = result.items.length;
if (cnt) {
if(SearchCount >= 3){
// 店舗ありなら、店舗が入る範囲を設定し、最寄り検索
var nLatlon = new ZDC.LatLon(ZDC.msTodeg(result.items[0].lat), ZDC.msTodeg(result.items[0].lon));
var pLatlon = ZdcEmapMapObj.getLatLon();
var latlons = [nLatlon, pLatlon];
var zi = ZdcEmapMapObj.getAdjustZoom(latlons, {fix:true});
if(zi != null){
ZdcEmapMapObj.setZoom(zi.zoom);
ZdcEmapSearchFirst = 0;
}else{
// 地図を最大範囲にしても直近の最寄りが入らない場合は最大縮尺にする
ZdcEmapMapObj.setZoom(0);
// 縮尺自動調整は行わない
ZdcEmapSearchFirst = 1;
}
ZdcEmapSearchShop(ZdcEmapSearchCond);
ZdcEmapSearchEventAdd('ZdcEmapSearchShop("' + ZdcEmapSearchCond + '")');
}else{
// 店舗ありなら地図範囲で最寄り検索
ZdcEmapSearchFirst = 0;
ZdcEmapSearchShop(ZdcEmapSearchCond);
ZdcEmapSearchEventAdd('ZdcEmapSearchShop("' + ZdcEmapSearchCond + '")');
}
// 店舗ありなら地図範囲で最寄り検索
// ZdcEmapSearchFirst = 0;
// ZdcEmapSearchClickFlg = 1;
// ZdcEmapSearchShop(ZdcEmapSearchCond);
// ZdcEmapSearchEventAdd('ZdcEmapSearchShop("' + ZdcEmapSearchCond + '")');
} else {
if(SearchCount < 2){
// 2回目 検索開始
ZdcEmap711aplSearchShop(0);
}else if(SearchCount < 3){
// 3回目 範囲上限なし
ZdcEmap711aplSearchShop(0);
}else{
// 店舗なしなら通常の検索
ZdcEmapSearchClickFlg = 1;
ZdcEmapSearchShop(ZdcEmapSearchCond);
ZdcEmapSearchEventAdd("ZdcEmapSearchShop('"+ZdcEmapSearchCond+"')");
}
}
}
function ZdcEmapCondDisabled() {
var cond_form;
if (document.formCond !== undefined) cond_form = document.formCond;
if (cond_form !== undefined) {
document.body.style.cursor = 'wait';
cond_form.disabled = true;
for (i=0, len=cond_form.elements.length; i