// 地図
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 = "0";
var ZdcEmapWindowWidth = 0;
var ZdcEmapWindowHeight = 0;
var ZdcEmapSearchBox = null; var D_MAP_TYPE = ZDC.MAPTYPE_ALPHABETSV2;
// 吹き出し
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://ml.its-mo.com/smt/en/smbcbank/img/000000.gif';ZdcEmapIconW['@SHOP'] = 11;ZdcEmapIconH['@SHOP'] = 11;ZdcEmapIconOffsetX['@SHOP'] = -6;ZdcEmapIconOffsetY['@SHOP'] = -6;ZdcEmapIconImg['@NEW'] = 'https://ml.its-mo.com/smt/en/smbcbank/img/new.gif';ZdcEmapIconW['@NEW'] = 23;ZdcEmapIconH['@NEW'] = 10;ZdcEmapIconOffsetX['@NEW'] = -12;ZdcEmapIconOffsetY['@NEW'] = -5;ZdcEmapIconImg['@SEL'] = 'https://ml.its-mo.com/smt/en/smbcbank/img/icon_cursor/0003.gif';ZdcEmapIconW['@SEL'] = 51;ZdcEmapIconH['@SEL'] = 50;ZdcEmapIconOffsetX['@SEL'] = -26;ZdcEmapIconOffsetY['@SEL'] = -25;ZdcEmapIconImg['@SELB'] = 'https://ml.its-mo.com/smt/en/smbcbank/img/icon_cursor/0000.gif';ZdcEmapIconW['@SELB'] = 51;ZdcEmapIconH['@SELB'] = 50;ZdcEmapIconOffsetX['@SELB'] = -26;ZdcEmapIconOffsetY['@SELB'] = -25;ZdcEmapIconImg['@TP'] = 'https://ml.its-mo.com/smt/en/smbcbank/img/tp11.gif';ZdcEmapIconW['@TP'] = 11;ZdcEmapIconH['@TP'] = 11;ZdcEmapIconOffsetX['@TP'] = -6;ZdcEmapIconOffsetY['@TP'] = -6;ZdcEmapIconImg['5582'] = 'https://www.e-map.ne.jp/cgi/icon_select.cgi?cid=smbcbank&icon_id=5582';ZdcEmapIconW['5582'] = 24;ZdcEmapIconH['5582'] = 24;ZdcEmapIconOffsetX['5582'] = -12;ZdcEmapIconOffsetY['5582'] = -12;ZdcEmapIconImg['5583'] = 'https://www.e-map.ne.jp/cgi/icon_select.cgi?cid=smbcbank&icon_id=5583';ZdcEmapIconW['5583'] = 28;ZdcEmapIconH['5583'] = 28;ZdcEmapIconOffsetX['5583'] = -14;ZdcEmapIconOffsetY['5583'] = -14;ZdcEmapIconImg['5584'] = 'https://www.e-map.ne.jp/cgi/icon_select.cgi?cid=smbcbank&icon_id=5584';ZdcEmapIconW['5584'] = 34;ZdcEmapIconH['5584'] = 80;ZdcEmapIconOffsetX['5584'] = -17;ZdcEmapIconOffsetY['5584'] = -40;ZdcEmapIconImg['5585'] = 'https://www.e-map.ne.jp/cgi/icon_select.cgi?cid=smbcbank&icon_id=5585';ZdcEmapIconW['5585'] = 30;ZdcEmapIconH['5585'] = 62;ZdcEmapIconOffsetX['5585'] = -15;ZdcEmapIconOffsetY['5585'] = -31;var ZdcEmapMapIconDist = new Array(50);
var ZdcEmapSeqIconInfo = 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 ZdcEmapIconDt = new Array();
// add 2012/08/16 K.Masuda [
// 最大縮尺、最小縮尺
// var max_lvl = "1";
// var min_lvl = "18";
var max_lvl = parseInt("1");
var min_lvl = parseInt("18");
// add 2012/08/16 K.Masuda ]
var zoomRange = [], i;
for(i = parseInt('1'); i <= parseInt('18'); 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;
function ZdcEmapRefMap() {
var obj = document.getElementById("ZdcEmapMap");
if (obj) {
obj.offsetLeft;
}
}
//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;
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 ]
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 = 16;
}
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: D_MAP_TYPE,
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 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(16 > 0) {
lvl = EncRealZoom(16);
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(16 > 0) {
lvl = EncRealZoom(16);
ZdcEmapMapObj.setZoom(lvl - 1);
}
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); }
);
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
, seq_icon ) {
lat = ZDC.msTodeg(lat);
lon = ZDC.msTodeg(lon);
var latlon = new ZDC.LatLon(lat, lon); var marker = null;
// 連番アイコン(拠点アイコン画像は使わない)
if (seq_icon) {
if (seq_icon.img) {
var divstyle = "display:table-cell;text-align:center;vertical-align:middle;";
divstyle += "width:"+seq_icon.width+"px;";
divstyle += "height:"+seq_icon.height+"px;";
divstyle += "background-image:url(img/icon_seq/"+seq_icon.img+");";
divstyle += "background-repeat:no-repeat;";
divstyle += "background-color:transparent;";
//if (mouseclickmarker) divstyle += "cursor:pointer;";
var numstyle = "";
numstyle += "color:"+seq_icon.textColor+";";
numstyle += "font-weight:"+seq_icon.fontWeight+";";
numstyle += "font-size:"+seq_icon.fontSize+";";
numstyle += "font-family:"+seq_icon.fontFamily+";";
numstyle += "background-color:transparent;";
var w = seq_icon.width + (seq_icon.borderWidth * 2);
var h = seq_icon.height + (seq_icon.borderWidth * 2);
var ofsx = (Math.floor(w / 2)) * -1;
var ofsy = (Math.floor(h / 2)) * -1;
marker = new ZDC.UserWidget(latlon, {
html: '
'
+ ''+seq_icon.seq+''
+ '
',
size: new ZDC.WH(w, h),
offset: new ZDC.Pixel(ofsx, ofsy),
propagation: false
});
} else {
var divstyle = "display:table-cell;text-align:center;vertical-align:middle;";
if (seq_icon.circle) divstyle += "border-radius:50%;";
divstyle += "border:"+seq_icon.borderColor+" "+seq_icon.borderWidth+"px solid;";
divstyle += "background-color:"+seq_icon.backgroundColor+";";
divstyle += "width:"+seq_icon.width+"px;";
divstyle += "height:"+seq_icon.height+"px;";
//if (mouseclickmarker) divstyle += "cursor:pointer;";
var numstyle = "";
numstyle += "color:"+seq_icon.textColor+";";
numstyle += "font-weight:"+seq_icon.fontWeight+";";
numstyle += "font-size:"+seq_icon.fontSize+";";
numstyle += "font-family:"+seq_icon.fontFamily+";";
var w = seq_icon.width + (seq_icon.borderWidth * 2);
var h = seq_icon.height + (seq_icon.borderWidth * 2);
var ofsx = (Math.floor(w / 2)) * -1;
var ofsy = (Math.floor(h / 2)) * -1;
marker = new ZDC.UserWidget(latlon, {
html: ''
+ ''+seq_icon.seq+''
+ '
',
size: new ZDC.WH(w, h),
offset: new ZDC.Pixel(ofsx, ofsy),
propagation: false
});
}
marker.userwidget = true;
// 通常の拠点アイコン(画像)
} else {
if(image.substr(image.length - 4, 4) != '.gif'){
var ts = new Date().getTime();
image += image.indexOf('?') < 0 ? '?' : '&' + 'dummy=' + ts + '.gif';
}
marker = new ZDC.Marker(latlon, {
custom:{
base:{
src:image
}
},
offset: ZDC.Pixel(offsetx, offsety)
});
}
marker.data = {id: id};
if(typeof mouseclickmarker == 'function') {
if (marker.userwidget) {
ZDC.addListener(marker, ZDC.USERWIDGET_MOUSEUP, mouseclickmarker);
} else {
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, update) {
overlap = typeof overlap !== 'undefined' ? overlap : '';
if (!update) { ZdcEmapReadOn();
ZdcEmapShopMsgClose();
}
// if(id != null) ZdcEmapMapFrontShopMrk(id);
// else ZdcEmapMapFrontShopDetail();
var obj = ZdcEmapListMarkers[id]; if( overlap == 1) {
var kidprm = '';
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;
}
var url = "http://localhost_ml/smt/en/smbcbank/shop_msg.htm?cid=smbcbank&id="+id+kidprm;
} else { var url = "http://localhost_ml/smt/en/smbcbank/shop_msg.htm?cid=smbcbank&id="+id+"&kid="+obj.data1;
} url += "&seq="+(id+1); //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=ml.its-mo.com"; ZdcEmapHttpRequestHtml(url, function(html,status){
if(status) html = "We are very busy. Try again after a while. Sorry for the inconvenience. msg["+status+"]";
if (update) {
if (ZdcEmapMsg) ZdcEmapMsg.setHtml(html);
} else {
ZdcEmapMsg.setHtml(html);
ZdcEmapMsg.moveLatLon(obj.marker.getLatLon());
ZdcEmapMsg.kyotenid = obj.data1; ZdcEmapMsg.open();
ZdcEmapReadOff();
}
}, false, 2);
}
//フキダシ(Maplink用)表示
function ZdcEmapShopMsgMaplink(parm_nm) {
if (parm_nm == '') return;
ZdcEmapReadOn();
ZdcEmapShopMsgClose();
//デザイン
//フキダシを表示させる
var url = "http://localhost_ml/smt/en/smbcbank/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 = "We are very busy. Try again after a while. Sorry for the inconvenience. msg["+status+"]";
ZdcEmapMsg.setHtml(html);
ZdcEmapMsg.moveLatLon(ZdcEmapListMarkers[0].marker.getLatLon());
ZdcEmapMsg.open();
ZdcEmapReadOff();
}, false, 2);
}
function ZdcEmapShopMsgClose() {
//ZdcEmapMapFrontShopReset();
if(ZdcEmapMsg != null)
ZdcEmapMsg.close();
}
function ZdcEmapUpdateMsgByKyotenid(kyotenid, link, maptype, overlap) {
if (!ZdcEmapMsg) return;
var id = -1;
for(i = 0; i < ZdcEmapListMarkers.length; i++){
if (ZdcEmapListMarkers[i]) {
var obj = ZdcEmapListMarkers[i];
if (obj.data1 == kyotenid) {
id = i;
}
}
}
if (id < 0) {
ZdcEmapShopMsgClose();
} else {
ZdcEmapShopMsg(id, link, maptype, overlap, 'update');
}
}
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://ml.its-mo.com/smt/en/smbcbank/img/btn_plus_def.png"; //(+)
if(btnm.src)btnm.src = "https://ml.its-mo.com/smt/en/smbcbank/img/btn_minus_dis.png"; //(-)
} else if( now_lvl == min_lvl ){
if(btnp.src)btnp.src = "https://ml.its-mo.com/smt/en/smbcbank/img/btn_plus_dis.png"; //(+)
if(btnm.src)btnm.src = "https://ml.its-mo.com/smt/en/smbcbank/img/btn_minus_def.png"; //(-)
} else {
if(btnp.src)btnp.src = "https://ml.its-mo.com/smt/en/smbcbank/img/btn_plus_def.png"; //(+)
if(btnm.src)btnm.src = "https://ml.its-mo.com/smt/en/smbcbank/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, box) {
ZdcEmapSearchFirst = 1;
ZdcEmapSearchCond = cond;
if (box) ZdcEmapSearchBox = box;
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://ml.its-mo.com/smt/en/smbcbank/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();
//ZdcEmapShopMsgClose();
//
var opts = new ZdcNearShopOptions2();
//opts.cid='smbcbank' mod 2012/01/19 N.Wada
opts.cid='smbcbank'
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 = 50000;
} else {
ZdcEmapSearchFirst = 0;
if (ZdcEmapSearchBox) {
opts.latlon = ZdcEmapSearchBox;
opts.researchCount = "";
opts.radius = "";
ZdcEmapSearchBox = null;
} else {
opts.radius = 50000;
}
}
if (cond) opts.jkn = cond;
opts.pos = 1;
opts.maxCount = 50;
opts.limitCount = 50;
opts.timeout = 60000;
ZdcEmapNearShop2.opts = opts;
//アイコンを表示する
ZdcEmapNearShop2.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
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("Searching failed. 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 ]
var icon_key = "0";
var seq_icon = null;
if (ZdcEmapSeqIconInfo[icon_key]) {
seq_icon = ZdcEmapSeqIconInfo[icon_key];
seq_icon.seq = i + 1;
}
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', ""); },
item.lvl
,seq_icon );
// add 2011/08/10 H.osamoto [
ZdcEmapMapObj.addWidget(mrk.marker);
if (mrk.marker.userwidget) mrk.marker.open(); ZdcEmapListMarkers[i] = mrk;
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)) * 50000);//CGIと計算をあわせる
var ry = parseInt((300000 / (9 * 1000)) * 50000);//〃
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;
}
}
//検索位置を保持
ZdcEmapSearchPoint = ZdcEmapMapObj.getLatLon();
ZdcEmapSearchScale = ZdcEmapMapObj.getZoom();
ZdcEmapReadOff();
ZdcEmapSearchEventStart(); }
// 検索イベント開始
function ZdcEmapSearchEventStart() {
ZdcEmapSearchEventFlg = 1;
}
// 検索イベント停止
function ZdcEmapSearchEventStop() {
ZdcEmapSearchEventFlg = 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();
if(ZdcEmapSearchEventDragmapend) ZDC.removeListener(ZdcEmapSearchEventDragmapend);
if(ZdcEmapSearchEventChangezoomend) ZDC.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()
{
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';
ZdcEmapMapObj.refresh();
}
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://ml.its-mo.com/smt/en/smbcbank/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://ml.its-mo.com/smt/en/smbcbank/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://ml.its-mo.com/smt/en/smbcbank/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://ml.its-mo.com/smt/en/smbcbank/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('Searching route failed. [' + result.status + ']'); // mod 2015/03/09 H.Osamoto
alert('Searching route failed.');
}
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 += " AND ";
jkn += "("+arr_cond[i]+")";
}
}
}
return jkn;
}
function ZdcEmapSetMapLatLonToForm(formTo) {
var latlon = ZdcEmapMapObj.getLatLon();
var lat = document.createElement("input");
lat.setAttribute("type", "hidden");
lat.setAttribute("name", "lat");
lat.setAttribute("value", latlon.lat);
formTo.appendChild(lat);
var lon = document.createElement("input");
lon.setAttribute("type", "hidden");
lon.setAttribute("name", "lon");
lon.setAttribute("value", latlon.lon);
formTo.appendChild(lon);
}
function ZdcEmapSetMapBoxToForm(formTo) {
var box = ZdcEmapMapObj.getLatLonBox();
var max = box.getMax();
var min = box.getMin()
var maxlat = document.createElement("input");
maxlat.setAttribute("type", "hidden");
maxlat.setAttribute("name", "maxlat");
maxlat.setAttribute("value", ZDC.degToms(max.lat));
formTo.appendChild(maxlat);
var maxlon = document.createElement("input");
maxlon.setAttribute("type", "hidden");
maxlon.setAttribute("name", "maxlon");
maxlon.setAttribute("value", ZDC.degToms(max.lon));
formTo.appendChild(maxlon);
var minlat = document.createElement("input");
minlat.setAttribute("type", "hidden");
minlat.setAttribute("name", "minlat");
minlat.setAttribute("value", ZDC.degToms(min.lat));
formTo.appendChild(minlat);
var minlon = document.createElement("input");
minlon.setAttribute("type", "hidden");
minlon.setAttribute("name", "minlon");
minlon.setAttribute("value", ZDC.degToms(min.lon));
formTo.appendChild(minlon);
}
// 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 = "smbcbank";
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 = 60000;
ZdcEmapNearShop2.opts = opts;
ZdcEmapNearShop2.search(opts, ZdcEmap711omniSearchShopResult);
}
function ZdcEmap711omniSearchShopResult(result) {
// エラー処理
if(result.status != 0 && result.status != 3 && result.status != 5 && result.status != 9) {
alert("Searching failed." + ' [' + 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 + '")');
}
}
function ZdcEmapGotoNList() {
var formN = document.formNList;
if (!formN) return;
ZdcEmapSetCondToForm(formN);
ZdcEmapSetMapLatLonToForm(document.formNList);
ZdcEmapSetMapBoxToForm(document.formNList);
formN.submit();
}
function ZdcEmapDispRouteDistanceOnMap(index, lat, lon, type, offsetx, offsety) {
var from = ZdcEmapMapObj.getLatLon();
var to = new ZDC.LatLon(ZDC.msTodeg(lat), ZDC.msTodeg(lon));
if (type == "walk") {
ZDC.Search.getRouteByWalk({
from: from,
to: to,
station: "bothoff"
}, function(status, res) {
if (status.code == '000') {
ZdcEmapShowIconDistance(index, lat, lon, res.route.distance, offsetx, offsety);
} else {
ZdcEmapDispRouteDistanceOnMap(index, lat, lon, "car", offsetx, offsety);
return;
}
});
} else if (type == "car") {
ZDC.Search.getRouteByDrive({
from: from,
to: to
}, function(status, res) {
if (status.code == '000') {
ZdcEmapShowIconDistance(index, lat, lon, res.route.distance, offsetx, offsety);
} else {
return;
}
});
}
}
function ZdcEmapShowIconDistance(index, lat, lon, dist, offsetx, offsety) {
var distance = dist;
if (distance < 1000) {
distance = distance+' m';
} else {
distance = distance / 100;
distance = Math.round(distance);
distance = distance / 10;
distance += ' km';
}
var html = ''+distance+'
';
ZdcEmapMapIconDist[index] = new ZDC.UserWidget(new ZDC.LatLon(ZDC.msTodeg(lat), ZDC.msTodeg(lon)), {
html: html,
offset: new ZDC.Pixel(offsetx, offsety),
propagation: false
});
ZdcEmapMapObj.addWidget(ZdcEmapMapIconDist[index]);
ZdcEmapMapIconDist[index].open();
}