/* global itsmo, lasUpMapType, ZDC, tsmo, facilityNumber, toTime, karaoke, manga, sauna, drink, restaurant, is_appStore, is_chrome_v35 */ itsmo.lasup = {}; itsmo.lasup.vars = {}; itsmo.lasup.vars.areas = {}; itsmo.lasup.vars.endStations = []; itsmo.lasup.vars.endDelayStations = []; itsmo.lasup.vars.stationsUnDraw = []; if (typeof (lasUpMapType) != "undefined") { itsmo.lasup.vars.mapType = lasUpMapType == 1 ? 'weekday' : 'holiday'; } itsmo.lasup.vars.message = { E220: '申し訳ございません。終電地図の対応エリアは東京・名古屋・大阪近郊です。', I222: '出発駅を[param]に変更しました。', I223: '出発駅のエリアが[param1]近郊エリアのため、到着駅を[param2]駅にしました。', I8520: '出発駅を[param]駅に設定中。
駅をタップすると出発駅に変更出来ます。', F8520: '検索結果が見つかりませんでし
,・検索範囲は中心から半径800m以内です。' }; itsmo.lasup.vars.startStation = null; itsmo.lasup.vars.goalStation = null; itsmo.lasup.vars.detailBalloon = null; itsmo.lasup.vars.currentTime = null; itsmo.lasup.vars.ajaxEndStation = null; itsmo.lasup.vars.ajaxDelayStartStation = null; itsmo.lasup.vars.timmerDelayStartStation = null; itsmo.lasup.vars.ajaxEndStationInfo = null; itsmo.lasup.vars.currentViewArea = null; itsmo.lasup.vars.station = {}; itsmo.lasup.vars.firstLoadPage = true; itsmo.lasup.vars.title = '[param]駅の終電時刻・周辺の地図 | いつもNAVI'; itsmo.lasup.vars.hideStartStationMessage = null; itsmo.lasup.init = function () { if (itsmo.vars.g_map_obj == null){ return; } startStation = $.parseJSON(startStation); var latlon = itsmo.lib.toLatLon(startStation.station_lat, startStation.station_lon); itsmo.lasup.vars.startStation = {data: { layerText: startStation.station_cd, point: {lat: latlon.lat, lon: latlon.lon} }, info: { name: startStation.station_nm, lat: latlon.lat, lon: latlon.lon }}; itsmo.lasup.drawStartStation(itsmo.lasup.vars.startStation); setTimeout(function () { itsmo.lasup.showMessage(itsmo.lasup.vars.message.I8520.replace( '[param]', itsmo.lasup.vars.startStation.info.name)); }, 10); var startStationName = itsmo.lasup.vars.startStation.info.name + '駅'; if (startStationName.length > 8){ startStationName = startStationName.substr(0,8) + '...'; } $("#lasup-daytype-choosen .start-name").html(startStationName); var daytype = '平日の時刻表'; switch (lasUpMapType) { case '1': daytype = '平日の時刻表'; $("#lasup-daytype-choosen #daytype-list #item1").addClass('selected'); break; case '2': daytype = '土曜の時刻表'; $("#lasup-daytype-choosen #daytype-list #item2").addClass('selected'); break; case '3': daytype = '日曜・祝日の時刻表'; $("#lasup-daytype-choosen #daytype-list #item3").addClass('selected'); break; } $('#lasup-daytype-choosen > .type').html(daytype); $("#lasup-daytype-choosen #daytype-list .item").on('click', function () { $('#lasup-daytype-choosen > .type').html($(this).find('.type').html()); $("#lasup-daytype-choosen #daytype-list .item").removeClass('selected'); $(this).addClass('selected'); var mapType = itsmo.lasup.detectMapType($(this).attr('daytype')); if (mapType != itsmo.lasup.vars.mapType) { itsmo.lasup.vars.mapType = mapType; itsmo.lasup.drawEndStation(); } }); itsmo.map.map_search_timer(false); itsmo.facilityNight.initFacility(); itsmo.facilityNight.getFacilities(latlon); }; itsmo.lasup.openUsePopup = function () { itsmo.vars.g_screen_non = 0; itsmo.lib.map_windowopen('use_lasup_window'); }; itsmo.lasup.closeUsePopup = function () { itsmo.vars.g_screen_non = 0; itsmo.lib.map_windowclose('use_lasup_window'); }; itsmo.lasup.detectMapType = function (dayType) { return dayType == 1 ? 'weekday' : 'holiday'; }; itsmo.lasup.drawEndStation = function () { itsmo.lasup.closeDetailBalloon(); for (var i in itsmo.lasup.vars.endStations) { itsmo.lasup.drawEndStationWidget(itsmo.lasup.vars.endStations[i]); } for (var i in itsmo.lasup.vars.endDelayStations) { itsmo.lasup.drawEndDelayStationWidget(itsmo.lasup.vars.endDelayStations[i]); } }; itsmo.lasup.drawEndStationWidget = function (station, outSize) { var checkTime = null; if (!outSize) { if (station.widget != null) { itsmo.vars.g_map_obj.removeWidget(station.widget); } var time = '------'; var info = station.info[itsmo.lasup.vars.mapType]; if (info['@attributes'].resCode == '200' && info['@attributes'].errCode == '0') { if (info.charge != '0') { var stationArea = itsmo.lasup.getStationArea(new ZDC.LatLon( station.data.point.lat, station.data.point.lon )); var goalStation = itsmo.lasup.vars.goalStation != null ? itsmo.lasup.vars.goalStation : itsmo.lasup.vars.startStation; var stationAreaGoal = itsmo.lasup.getStationArea(new ZDC.LatLon( goalStation.data.point.lat, goalStation.data.point.lon )); if (stationArea != null && stationAreaGoal != null && stationArea.alias == stationAreaGoal.alias) { if (typeof (info.latestTimeFrom) == 'string') { time = itsmo.lasup.toTime(2, 0, ':', info.latestTimeFrom); checkTime = time.split(":"); } } } else { time = '徒歩推奨'; } } else if (info['@attributes'].errCode == '6') { var meter = parseInt(station.info['@attributes'].meters); if (meter <= 500) { time = '徒歩推奨'; } } else if (info['@attributes'].errCode == '-1004') { time = '徒歩推奨'; } var html = $("#lasup-medium-tpl").html(); var htmlOutDate = ''; if (checkTime != null && checkTime.length > 0) { if (parseInt(checkTime[0]) >= 2 && parseInt(checkTime[0]) <= 6) { htmlOutDate = 'out-of-date'; } } var classParam = ''; if (time == '徒歩推奨') { classParam = htmlOutDate; html = html.replace(/__walk__/g, 'ls-walk-icon'); } else { classParam = htmlOutDate; html = html.replace(/__walk__/g, ''); } html = html.replace(/__eId__/g, station.info.eId); html = html.replace(/__class__/g, classParam); html = html.replace(/__time__/g, time); itsmo.lasup.drawStationWidget(station, html, station.data.number_icon * 8 - 3); classParam = null; style = null; htmlOutDate = null; } else { if (station.widget != null) { itsmo.vars.g_map_obj.removeWidget(station.widget); } var time = '------'; var html = $("#lasup-medium-tpl").html(); html = html.replace(/__eId__/g, station.data.layerText); html = html.replace(/__time__/g, time); itsmo.lasup.drawStationWidget(station, html, station.data.number_icon * 8 - 3); } }; itsmo.lasup.initStationAreas = function () { var temp = itsmo.lib.toLatLon(128441320, 503169540); itsmo.lasup.vars.areas.tokyo = { alias: 'tokyo', name: '東京近郊', area: new ZDC.LatLonBox( itsmo.lib.toLatLon(126592030, 501157162), itsmo.lib.toLatLon(130217450, 505674809) ), station: {data: { layerText: 2590, point: {lat: temp.lat, lon: temp.lon} }, info: { name: '東京', lat: temp.lat, lon: temp.lon }} }; itsmo.lasup.drawArea([ itsmo.lib.toLatLon(126592030, 501157162), itsmo.lib.toLatLon(126592030, 505674809), itsmo.lib.toLatLon(130217450, 505674809), itsmo.lib.toLatLon(130217450, 501157162), itsmo.lib.toLatLon(126592030, 501157162) ], '#000000'); var temp = itsmo.lib.toLatLon(126602880, 492784520); itsmo.lasup.vars.areas.nagoya = { alias: 'nagoya', name: '名古屋近郊', area: new ZDC.LatLonBox( itsmo.lib.toLatLon(125008469, 491741516), itsmo.lib.toLatLon(127688730, 494868575) ), station: {data: { layerText: 4455, point: {lat: temp.lat, lon: temp.lon} }, info: { name: '名古屋', lat: temp.lat, lon: temp.lon }} }; itsmo.lasup.drawArea([ itsmo.lib.toLatLon(125008469, 491741516), itsmo.lib.toLatLon(125008469, 494868575), itsmo.lib.toLatLon(127688730, 494868575), itsmo.lib.toLatLon(127688730, 491741516), itsmo.lib.toLatLon(125008469, 491741516) ], '#CC0033'); var temp = itsmo.lib.toLatLon(124915160, 487792030); itsmo.lasup.vars.areas.kansai = { alias: 'kansai', name: '大阪近郊', area: new ZDC.LatLonBox( itsmo.lib.toLatLon(123639579, 485748575), itsmo.lib.toLatLon(126394612, 489673281) ), station: {data: { layerText: 5006, point: {lat: temp.lat, lon: temp.lon} }, info: { name: '大阪', lat: temp.lat, lon: temp.lon }} }; itsmo.lasup.drawArea([ itsmo.lib.toLatLon(123639579, 485748575), itsmo.lib.toLatLon(123639579, 489673281), itsmo.lib.toLatLon(126394612, 489673281), itsmo.lib.toLatLon(126394612, 485748575), itsmo.lib.toLatLon(123639579, 485748575) ], '#0099CC'); var stationTokyo = itsmo.lasup.vars.areas.tokyo.station; var stationNagoya = itsmo.lasup.vars.areas.nagoya.station; var stationKansai = itsmo.lasup.vars.areas.kansai.station; var latlon = itsmo.lib.toMilliSec(stationTokyo.info.lat,stationTokyo.info.lon); itsmo.lasup.vars.station.tokyo = { station_nm: stationTokyo.info.name, station_cd: stationTokyo.data.layerText, station_lat: latlon.lat, station_lon: latlon.lon }; latlon = itsmo.lib.toMilliSec(stationNagoya.info.lat,stationNagoya.info.lon); itsmo.lasup.vars.station.nagoya = { station_nm: stationNagoya.info.name, station_cd: stationNagoya.data.layerText, station_lat: latlon.lat, station_lon: latlon.lon }; latlon = itsmo.lib.toMilliSec(stationKansai.info.lat,stationKansai.info.lon); itsmo.lasup.vars.station.kansai = { station_nm: stationKansai.info.name, station_cd: stationKansai.data.layerText, station_lat: latlon.lat, station_lon: latlon.lon }; }; itsmo.lasup.drawArea = function (latlons, strokeColor) { itsmo.vars.g_map_obj.addWidget(new ZDC.Polyline(latlons, { strokeWeight: 2, strokeColor: strokeColor })); }; itsmo.lasup.drawStartStation = function (station) { if (station.widget != null) { itsmo.vars.g_map_obj.removeWidget(station.widget); } if (itsmo.lasup.vars.startStation.widget != null) { itsmo.vars.g_map_obj.removeWidget(itsmo.lasup.vars.startStation.widget); } if (itsmo.lasup.vars.goalStation != null && itsmo.lasup.vars.goalStation.widget != null) { itsmo.vars.g_map_obj.removeWidget(itsmo.lasup.vars.goalStation.widget); } var nameDisplay = station.info.name + '駅'; if (nameDisplay.length > 8) { nameDisplay = nameDisplay.substr(0, 8); nameDisplay += '...'; } $("#lasup-daytype-choosen .start-name").html(nameDisplay); itsmo.lasup.replaceUrl(); itsmo.lasup.drawStationWidget(station, '
出発駅
', 0); }; itsmo.lasup.drawStationWidget = function (station, html, offsetX, offsetY) { var size = itsmo.sub.getHtmlSize(html); var w = size.width; var h = size.height; if (typeof offsetY == 'undefined') { offsetY = -h + 26; } station.widget = new ZDC.UserWidget(new ZDC.LatLon( station.data.point.lat, station.data.point.lon ), { html: html, size: size, offset: new ZDC.Pixel(offsetX, offsetY) }); itsmo.vars.g_map_obj.addWidget(station.widget); station.widget.open(); station.widget.setZindex(itsmo.map.D_TIPZIDX_RANGE + 2); }; itsmo.lasup.initEndStations = function () { if (itsmo.lasup.vars.ajaxEndStation != null) { itsmo.lib.XMLHttpRequest2_abort(itsmo.lasup.vars.ajaxEndStation); } if (itsmo.lasup.vars.ajaxDelayStartStation != null) { itsmo.lib.XMLHttpRequest2_abort(itsmo.lasup.vars.ajaxDelayStartStation); } if (itsmo.lasup.vars.ajaxEndStationInfo != null) { itsmo.lib.XMLHttpRequest2_abort(itsmo.lasup.vars.ajaxEndStationInfo); } var latlon = itsmo.vars.g_map_obj.getLatLon(); var zoom = itsmo.vars.g_map_obj.getZoom(); var paramsQuery = { 'zoom': zoom + 1, 'isPC': '1', 'latlon': latlon.lat + ',' + latlon.lon }; var area = itsmo.lasup.getStationArea(latlon); if (area != null) {//Has area if (itsmo.lasup.vars.currentViewArea != null) {//Has viewer area before if (area.alias != itsmo.lasup.vars.currentViewArea.alias) {//Area changed itsmo.lasup.vars.currentViewArea = area; var homeArea = itsmo.lasup.getStationArea(new ZDC.LatLon( itsmo.lasup.vars.startStation.data.point.lat, itsmo.lasup.vars.startStation.data.point.lon )); if (itsmo.lasup.vars.goalStation != null && itsmo.lasup.vars.goalStation.widget != null) itsmo.vars.g_map_obj.removeWidget(itsmo.lasup.vars.goalStation.widget); for (var i in itsmo.lasup.vars.endStations) { if (itsmo.lasup.vars.endStations[i].widget != null) itsmo.vars.g_map_obj.removeWidget(itsmo.lasup.vars.endStations[i].widget); } itsmo.lasup.vars.endStations = []; if (area.alias != homeArea.alias) { itsmo.lasup.vars.goalStation = area.station; setTimeout(function () { itsmo.lasup.showMessage(itsmo.lasup.vars.message.I223.replace( '[param1]', area.name).replace('[param2]', area.station.info.name)); }, 10); itsmo.lasup.drawStartStation(itsmo.lasup.vars.goalStation); } else { itsmo.lasup.vars.goalStation = null; itsmo.lasup.drawStartStation(itsmo.lasup.vars.startStation); setTimeout(function () { itsmo.lasup.showMessage(itsmo.lasup.vars.message.I222.replace( '[param]', decodeURI(itsmo.lasup.vars.startStation.info.name) )); }, 10); } } } else {//Hasn't viewer before itsmo.lasup.vars.currentViewArea = area; var homeArea = itsmo.lasup.getStationArea(new ZDC.LatLon( itsmo.lasup.vars.startStation.data.point.lat, itsmo.lasup.vars.startStation.data.point.lon )); if (area.alias != homeArea.alias) { for (var i in itsmo.lasup.vars.endStations) { if (itsmo.lasup.vars.endStations[i].widget != null) { itsmo.vars.g_map_obj.removeWidget(itsmo.lasup.vars.endStations[i].widget); } } itsmo.lasup.vars.endStations = []; if (itsmo.lasup.vars.goalStation != null && itsmo.lasup.vars.goalStation.widget != null) { itsmo.vars.g_map_obj.removeWidget(itsmo.lasup.vars.goalStation.widget); } itsmo.lasup.vars.goalStation = area.station; setTimeout(function () { itsmo.lasup.showMessage(itsmo.lasup.vars.message.I223.replace('[param1]', area.name) .replace('[param2]', decodeURI(area.station.info.name))); }, 10);// Show message after set home message itsmo.lasup.vars.hideStartStationMessage = true; itsmo.lasup.drawStartStation(itsmo.lasup.vars.goalStation); } } } itsmo.lasup.vars.ajaxEndStation = itsmo.lib.XMLHttpRequest2_send( '/map/get_goal_station.php', function (data) { setTimeout(function () { itsmo.lasup.currentLocationInStationArea(); }, 2000); if (data.status == 200) { var stations = []; if (data.item.length > 0) { var goalStation = itsmo.lasup.vars.goalStation != null ? itsmo.lasup.vars.goalStation : itsmo.lasup.vars.startStation; var dataRequest = {s: goalStation.data.layerText, e: [], isLasup: '1'}; $.each(data.item, function (i, item) { if (item.drawFlag && item.layerText != null) { if (dataRequest.s != item.layerText) { stations[item.layerText] = {data: item}; } } }); var stationArea; var stationAreaGoal = itsmo.lasup.getStationArea(new ZDC.LatLon( goalStation.data.point.lat, goalStation.data.point.lon )); for (var i in stations) { if (itsmo.lasup.vars.endStations[i] == null) { stationArea = itsmo.lasup.getStationArea(new ZDC.LatLon( stations[i].data.point.lat, stations[i].data.point.lon )); if (stationArea != null && stationAreaGoal != null && stationArea.alias == stationAreaGoal.alias) { dataRequest.e.push(i); } else { itsmo.lasup.vars.stationsUnDraw.push(stations[i]); itsmo.lasup.drawEndStationWidget(stations[i], true); } } } for (var i in itsmo.lasup.vars.endDelayStations) { if (itsmo.lasup.vars.endDelayStations[i].widget != null) { itsmo.vars.g_map_obj.removeWidget(itsmo.lasup.vars.endDelayStations[i].widget); } } itsmo.lasup.vars.endDelayStations = []; if (dataRequest.e.length > 0) { itsmo.lasup.getInfoStations(dataRequest, stations); } } } }, 'GET', paramsQuery, 'json'); }; itsmo.lasup.getStationArea = function (latLon) { var stationArea = null; $.each(itsmo.lasup.vars.areas, function (i, item) { if (item.area.isLatLonInclude(latLon)) { stationArea = item; return; } }); return stationArea; }; itsmo.lasup.currentLocationInStationArea = function () { var latlon = itsmo.vars.g_map_obj.getLatLon(); var area = itsmo.lasup.getStationArea(latlon); if (area == null) { itsmo.lasup.showMessage(itsmo.lasup.vars.message.E220); } else { itsmo.lasup.closeMessage(); } }; itsmo.lasup.drawEndDelayStationWidget = function (station) { if (station.widget != null) { itsmo.vars.g_map_obj.removeWidget(station.widget); } var html = $("#lasup-medium-tpl").html(); html = html.replace(/__eId__/g, ''); html = html.replace(/__time__/g, '----'); html = html.replace(/__class_/g, ''); itsmo.lasup.drawStationWidget(station, html, station.data.number_icon * 8 - 3); }; itsmo.lasup.showMessage = function (message) { $('#ajax_mapbor #bottom-message').html(message); $('#ajax_mapbor #bottom-message').show(); setTimeout(function () { $('#ajax_mapbor #bottom-message').hide(); }, 3000); }; itsmo.lasup.closeMessage = function () { $('#ajax_mapbor #bottom-message').hide(); }; itsmo.lasup.mapChangeZoom = function () { itsmo.lasup.closeDetailBalloon(); itsmo.lasup.closeMessage(); clearTimeout(itsmo.lasup.vars.timmerDelayStartStation); for (var i in itsmo.lasup.vars.endStations) { if (itsmo.lasup.vars.endStations[i].widget != null) { itsmo.vars.g_map_obj.removeWidget(itsmo.lasup.vars.endStations[i].widget); } } for (var i in itsmo.lasup.vars.endDelayStations) { if (itsmo.lasup.vars.endDelayStations[i].widget != null) { itsmo.vars.g_map_obj.removeWidget(itsmo.lasup.vars.endDelayStations[i].widget); } } for (var i in itsmo.lasup.vars.stationsUnDraw) { if (itsmo.lasup.vars.stationsUnDraw[i].widget != null) { itsmo.vars.g_map_obj.removeWidget(itsmo.lasup.vars.stationsUnDraw[i].widget); } } itsmo.lasup.vars.endStations = []; itsmo.lasup.vars.stationsUnDraw = []; itsmo.lasup.vars.endDelayStations = []; }; itsmo.lasup.mapDragEnd = function () { itsmo.lasup.closeMessage(); }; itsmo.lasup.drawDetailBalloon = function (code) { itsmo.lasup.closeDetailBalloon(); if (itsmo.lasup.vars.endStations[code] == null) { return; } var station = itsmo.lasup.vars.endStations[code]; var goalStation = itsmo.lasup.vars.goalStation != null ? itsmo.lasup.vars.goalStation : itsmo.lasup.vars.startStation; var info = station.info[itsmo.lasup.vars.mapType]; var fromTime = toTime = chargeFare = '----'; if (info['@attributes'].resCode == '200' && info['@attributes'].errCode == '0') { if (info.charge != '0') { var stationArea = itsmo.lasup.getStationArea(new ZDC.LatLon( station.data.point.lat, station.data.point.lon )); var stationAreaGoal = itsmo.lasup.getStationArea(new ZDC.LatLon( goalStation.data.point.lat, goalStation.data.point.lon )); if (stationArea != null && stationAreaGoal != null && stationArea.alias == stationAreaGoal.alias) { if (typeof (info.latestTimeFrom) == 'string') { fromTime = itsmo.lasup.toTime(2, 0, ':', info.latestTimeFrom); } if (typeof (info.latestTimeTo) == 'string') { toTime = itsmo.lasup.toTime(2, 0, ':', info.latestTimeTo); } if (typeof (info.charge) == 'string') { chargeFare = info.charge + '円'; } } } } else if (info['@attributes'].errCode == '-1004') { fromTime = '徒歩推奨'; } else if (info['@attributes'].errCode == '6') { var meter = parseInt(station.info['@attributes'].meters); if (meter <= 500) { fromTime = '徒歩推奨'; } } var html = $("#lasup-large-tpl").html(); var htmlOutDate = ''; if (fromTime == '徒歩推奨') { html = html.replace(/__cost__/g, ''); html = html.replace(/__time__/g, '※ 徒歩推奨'); html = html.replace(/__walk__/g, 'ls-walk-icon'); } else if (fromTime == '----') { html = html.replace(/__cost__/g, chargeFare); html = html.replace(/__time__/g, fromTime); html = html.replace(/__walk__/g, ''); } else { html = html.replace(/__cost__/g, chargeFare); html = html.replace(/__time__/g, fromTime + ' → ' + toTime); html = html.replace(/__walk__/g, ''); var checkTime = toTime.split(":"); if (checkTime != null && checkTime.length > 0) { if (parseInt(checkTime[0]) >= 2 && parseInt(checkTime[0]) <= 6) { htmlOutDate = 'out-of-date'; } } } html = html.replace(/__classTime__/g, htmlOutDate); html = html.replace(/__start__/g, decodeURI(goalStation.info.name)); html = html.replace(/__seId__/g, goalStation.data.layerText); html = html.replace(/__end__/g, station.info.name); html = html.replace(/__eId__/g, station.info.eId); html = html.replace(/__lat__/g, station.info.lat); html = html.replace(/__lon__/g, station.info.lon); var size = itsmo.sub.getHtmlSize(html); var offset = new ZDC.Pixel(station.data.number_icon * 8 - 3, 0); itsmo.lasup.vars.detailBalloon = new ZDC.UserWidget(new ZDC.LatLon( station.data.point.lat, station.data.point.lon), { html: html, size: size, offset: offset }); itsmo.vars.g_map_obj.addWidget(itsmo.lasup.vars.detailBalloon); itsmo.lasup.vars.detailBalloon.setZindex(itsmo.map.D_TIPZIDX_RANGE + 3); itsmo.lasup.vars.detailBalloon.open(); itsmo.vars.g_map_obj.moveLatLon(new ZDC.LatLon(station.data.point.lat, station.data.point.lon)); }; itsmo.lasup.closeDetailBalloon = function () { if (itsmo.lasup.vars.detailBalloon != null) { itsmo.lasup.vars.detailBalloon.close(); itsmo.vars.g_map_obj.removeWidget(itsmo.lasup.vars.detailBalloon); } }; itsmo.lasup.setStartStation = function (code) { if (itsmo.lasup.vars.endStations[code] == null) { return; } var station = itsmo.lasup.vars.endStations[code]; itsmo.lasup.closeDetailBalloon(); setTimeout(function () { var msg = itsmo.lasup.vars.message.I222.replace('[param]', station.info.name); itsmo.lasup.showMessage(msg); }, 200); if (itsmo.lasup.vars.goalStation != null && itsmo.lasup.vars.goalStation.widget != null) { itsmo.vars.g_map_obj.removeWidget(itsmo.lasup.vars.goalStation.widget); } itsmo.lasup.vars.goalStation = station; for (var i in itsmo.lasup.vars.endStations) { if (itsmo.lasup.vars.endStations[i].widget != null) { itsmo.vars.g_map_obj.removeWidget(itsmo.lasup.vars.endStations[i].widget); } } itsmo.lasup.vars.endStations = []; itsmo.lasup.drawStartStation(itsmo.lasup.vars.goalStation); itsmo.lasup.vars.startStation = itsmo.lasup.vars.goalStation; itsmo.lasup.initEndStations(); }; itsmo.lasup.startDelayStationInfo = function (startDelayStations, stations) { itsmo.lasup.vars.ajaxDelayStartStation = itsmo.lib.XMLHttpRequest2_send( '/map/start_to_home_station_info.php', function (result) { if (result.success) { if (result.data.startStations != null) { $.each(result.data.startStations.item, function (i, item) { if (stations[item.eId] != null) { itsmo.lasup.vars.endStations[item.eId] = stations[item.eId]; itsmo.lasup.vars.endStations[item.eId].info = item; if (itsmo.lasup.vars.endDelayStations[item.eId] != null && itsmo.lasup.vars.endDelayStations[item.eId].widget != null) { itsmo.vars.g_map_obj.removeWidget( itsmo.lasup.vars.endDelayStations[item.eId].widget ); } itsmo.lasup.drawEndStationWidget( itsmo.lasup.vars.endStations[item.eId] ); delete itsmo.lasup.vars.endDelayStations[item.eId]; } }); } if(itsmo.lasup.vars.firstLoadPage) { itsmo.sub.onHashChange(); itsmo.lasup.vars.firstLoadPage = false; } } else { // Handle when error } }, 'GET', startDelayStations, 'json'); }; itsmo.lasup.getInfoStations = function (dataRequest, stations) { itsmo.lasup.vars.ajaxEndStationInfo = itsmo.lib.XMLHttpRequest2_send( '/map/start_to_home_station_info.php', function (result) { if (result.success) { itsmo.lasup.vars.currentTime = result.currentTime; if (result.data.startStations != null) { $.each(result.data.startStations.item, function (i, item) { if (stations[item.eId] != null) { itsmo.lasup.vars.endStations[item.eId] = stations[item.eId]; itsmo.lasup.vars.endStations[item.eId].info = item; itsmo.lasup.drawEndStationWidget( itsmo.lasup.vars.endStations[item.eId] ); } }); } if (result.data.startDelayStations.e.length > 0) { $.each(result.data.startDelayStations.e, function (i, code) { itsmo.lasup.vars.endDelayStations[code] = stations[code]; itsmo.lasup.drawEndDelayStationWidget( itsmo.lasup.vars.endDelayStations[code] ); }); itsmo.lasup.vars.timmerDelayStartStation = setTimeout(function () { result.data.startDelayStations.isLasup = '1'; itsmo.lasup.startDelayStationInfo(result.data.startDelayStations, stations); }, 3000); } else if (itsmo.lasup.vars.firstLoadPage){ itsmo.sub.onHashChange(); itsmo.lasup.vars.firstLoadPage = false; } } else { // Handle when error } }, 'GET', dataRequest, 'json'); }; itsmo.lasup.toTime = function (idx, rem, s, string) { return string.slice(0, idx) + s + string.slice(idx + Math.abs(rem)); }; itsmo.lasup.replaceUrl = function () { var stationCodeOld = itsmo.lasup.vars.startStation.data.layerText; var stationCodeNew = itsmo.lasup.vars.goalStation; var hash = window.location.hash; var url = ''; if (stationCodeNew != null) { stationCodeNew = itsmo.lasup.vars.goalStation.data.layerText; }else{ stationCodeNew = itsmo.lasup.vars.startStation.data.layerText; } url += stationCodeNew; url += hash; history.replaceState(stationCodeOld, "obj", url); return false; }; itsmo.lasup.getStartStation = function (latlon) { if (!latlon){ itsmo.lasup.getCurrentPosition(); return; } var area = itsmo.lasup.getStationArea(latlon); if (!area){ startStation = itsmo.lasup.vars.station.tokyo; $('title').text(itsmo.lasup.vars.title.replace('[param]',startStation.station_nm)); startStation = JSON.stringify(startStation); itsmo.lasup.init(); var latlon = itsmo.lib.toLatLon(startStation.station_lat, startStation.station_lon); itsmo.vars.g_map_obj.moveLatLon(latlon); itsmo.lasup.initEndStations(); return; } else { itsmo.lasup.vars.currentViewArea = area; } latlon = itsmo.lib.toMilliSec(latlon.lat,latlon.lon); var lat = latlon.lat; var lon = latlon.lon; var url = '/lasup/ajaxSearchStartStation.php?lat=' + lat + '&lon=' + lon; itsmo.lib.XMLHttpRequest2_send(url, itsmo.lasup.getStartStationCallback, 'GET', '', 'json'); }; itsmo.lasup.getStartStationCallback = function(data) { if (!data){ var area = itsmo.lasup.vars.currentViewArea.alias; startStation = itsmo.lasup.vars.station[area]; } else { startStation = data; } $('title').text(itsmo.lasup.vars.title.replace('[param]',startStation.station_nm)); startStation = JSON.stringify(startStation); itsmo.lasup.init(); var latlon = itsmo.lib.toLatLon(startStation.station_lat, startStation.station_lon); itsmo.vars.g_map_obj.moveLatLon(latlon); itsmo.lasup.initEndStations(); }; itsmo.lasup.getCurrentPosition = function(){ itsmo.lib.map_wait2open('位置情報取得中...'); navigator.geolocation.getCurrentPosition( function (position) { var latlon = new ZDC.LatLon(position.coords.latitude, position.coords.longitude); latlon = ZDC.wgsTotky(latlon); itsmo.lib.map_wait2close(); itsmo.lasup.getStartStation(latlon); } , function (err) { var latlon = itsmo.lib.toLatLon(itsmo.lasup.vars.station.tokyo.station_lat, itsmo.lasup.vars.station.tokyo.station_lon); itsmo.lib.map_wait2close(); itsmo.lasup.getStartStation(latlon); } , {enableHighAccuracy: true, timeout: 10 * 1000, maximumAge: 20 * 1000} ); };