$(function () { //update distance from goal to shop. updateDistance(); }); function updateDistance () { var dist = 0, elm = $('#dist2Point'); if (typeof ZDC !== "undefined" && elm.length > 0) { var data = elm.data(); if (data.hasOwnProperty('lat') && data.hasOwnProperty('lon') && data.hasOwnProperty('glat') && data.hasOwnProperty('lon') && data.lat && data.lon && data.glat && data.glon) { dist = ZdcGetDistance(data.lat, data.lon, data.glat, data.glon); } } if (parseInt(dist) > 0) { if(dist > 1000){ var html = '('+ (Math.round((dist * 100) / 1000)) / 100 +'km)'; }else{ var html = '('+Math.round(dist)+'m)'; } elm.html(html); } } //handle search route car error var routeModal = null; var ZdcEmapRouteCarHandleErrFunc = function (status, res, msg) { if (!routeModal) { routeModal = new modalLib('', msg, { onClose: function () { updateDrawRouteBtn(false); } }); } routeModal.open(); } //disable or enable button draw route. var updateDrawRouteBtn = function (disable) { if (disable) { $('#ZdcSearchRouteBtn').addClass('disable'); } else { $('#ZdcSearchRouteBtn').removeClass('disable'); } } //----------------------------------------------------- // 2点間の距離計算(nkyoten.cgiと同等の計算式) // 引数の緯度経度はミリ秒で指定 // 整数(メートル)で返却 //----------------------------------------------------- function ZdcGetDistance($lat1, $lon1, $lat2, $lon2) { return Math.sqrt(Math.pow(Math.abs($lat1 - $lat2) * (9 / 300000 * 1000), 2) + Math.pow(Math.abs($lon1 - $lon2) * (11 / 450000 * 1000), 2)); }