var j = 0 ; var lats = 0 ; var lngs = 0 ; var map; var marker_ary = new Array(); var currentInfoWindow function initMap() { if( navigator.geolocation ) { navigator.geolocation.getCurrentPosition( function( position ) { var data = position.coords ; var lat = data.latitude ; var lng = data.longitude ; var alt = data.altitude ; var accLatlng = data.accuracy ; var accAlt = data.altitudeAccuracy ; var heading = data.heading ; var speed = data.speed ; $.cookie("lats", lat); $.cookie("lngs", lng); var latlng = new google.maps.LatLng(lat,lng); var myOptions = { zoom: 10, center: latlng, minZoom : 12, mapTypeId: google.maps.MapTypeId.ROADMAP, draggable: false, styles: [{ "featureType": "poi", "elementType": "all", "stylers": [ { "visibility": "off" } ] }] }; $('#loader').fadeIn(1700); $('#loader-bg').fadeIn(1700); $('#map_canvas').css('visibility','hidden'); map = new google.maps.Map(document.getElementById("map_canvas"), myOptions); var markers = new google.maps.Marker({ map:map, position:latlng, clickable:true, draggable:false, flat:false, visible:true, icon:"./img/googlemap_center.png", zIndex:100000000 }); google.maps.event.addListener(map, 'idle', function(){ //console.log("63idle"); $('#loader').fadeIn(1700); $('#loader-bg').fadeIn(1700); var zoomlv = this.getZoom(); //console.log("Zoom67:"+zoomlv); $("#com_area").empty(); $.cookie("i", 0); var j = 0; if(j == 0){ j = j+1; setPointMarker(lat,lng); setShop(lat,lng); setPointMarker(lat,lng); resetShops(lat,lng); } }); }, function( error ) { var errorInfo = [ "原因不明のエラーが発生しました…。" , "位置情報の取得が許可されませんでした…。" , "電波状況などで位置情報が取得できませんでした…。" , "位置情報の取得に時間がかかり過ぎてタイムアウトしました…。" ] ; var errorNo = error.code ; var errorMessage = "[エラー番号: " + errorNo + "]\n" + errorInfo[ errorNo ] ; $('#loader').fadeOut(700); $('#loader').css('display', 'none'); alert( errorMessage ) ; } , { "enableHighAccuracy": false, "timeout": 8000, "maximumAge": 2000, } ) ; } else { var errorMessage = "お使いの端末は、GeoLacation APIに対応していないのでこの機能はご利用いただけません。" ; alert( errorMessage ) ; } function MarkerClear() { if(marker_ary.length > 0){ for (i = 0; i < marker_ary.length; i++) { marker_ary[i].setMap(null); } for (i = 0; i <= marker_ary.length; i++) { marker_ary.shift(null); } marker_ary= []; } } function MarkerSet(lat,lng,text,sno,url,hp){ console.log("144MarkerSet"+hp); var marker_num = marker_ary.length; var marker_position = new google.maps.LatLng(lat,lng); var markerOpts = { map: map, position: marker_position, }; marker_ary[marker_num] = new google.maps.Marker(markerOpts); var offset = new google.maps.Size(0, -40); if(text.length>0){ if(hp=="簡易HPなし"){ var infoWndOpts = { content: text, pixelOffset: offset, position: marker_position }; }else{ var infoWndOpts = { content: ''+text+hp+'', pixelOffset: offset, position: marker_position }; } var infoWnd = new google.maps.InfoWindow(infoWndOpts); google.maps.event.addListener(marker_ary[marker_num], "click", function(){ if (currentInfoWindow) { currentInfoWindow.close(); } infoWnd.open(map, marker_ary[marker_num]); currentInfoWindow = infoWnd; }); } } function setPointMarker(lat,lng){ var bounds = map.getBounds(); map_ne_lat = bounds.getNorthEast().lat(); map_sw_lat = bounds.getSouthWest().lat(); map_ne_lng = bounds.getNorthEast().lng(); map_sw_lng = bounds.getSouthWest().lng(); var center_lat = (map_ne_lat + map_sw_lat)/2; var center_lon = (map_ne_lng + map_sw_lng)/2; var num = 0; var map_type = "gps"; $.ajax({ url: '//www2.karaoke.or.jp/karanavi/xml_file2.php?ne_lat='+map_ne_lat+'&sw_lat='+map_sw_lat+'&ne_lng='+map_ne_lng+'&sw_lng='+map_sw_lng+'&type='+map_type, type: 'GET', dataType: 'xml', timeout: 2000, error: function(xml){ //console.log("part no refresh"); }, success: function(xml){ MarkerClear(); var num = $(xml).find( "Locate" ).length //console.log("xml:"+xml); //console.log("num242:"+num); $(xml).find("Locate").each(function(){ pattern = new RegExp("\\\\", "g"); var Locatesno = $("jkaid",this).text(); var LocateLat = $("lat",this).text(); var LocateLng = $("lng",this).text(); var LocateName = $("name",this).text(); console.log("Name:"+LocateName); var LocateUrl = $("url",this).text(); var LocateHp = $("hp",this).text(); console.log("Hp:"+LocateHp); LocateName = LocateName.replace(pattern, ""); MarkerSet(LocateLat,LocateLng,LocateName,Locatesno,LocateUrl,LocateHp); // var marker_nums = marker_ary.length - 1; }); $('#loader').fadeOut(700); $('#loader').css('display', 'none'); $('#map_canvas').css('visibility', 'visible'); } //success: function(xml) }); //$.ajax } //setPointMarker() var i = 0; function setShop(lat,lng) { //console.log("277setShop"); lat=$.cookie("lats"); lng=$.cookie("lngs"); var bounds = map.getBounds(); map_ne_lat = bounds.getNorthEast().lat(); map_sw_lat = bounds.getSouthWest().lat(); map_ne_lng = bounds.getNorthEast().lng(); map_sw_lng = bounds.getSouthWest().lng(); var center_lat = (map_ne_lat + map_sw_lat)/2; var center_lon = (map_ne_lng + map_sw_lng)/2; /* console.log(map_ne_lat+","+map_ne_lng); console.log(map_sw_lat+","+map_sw_lng); console.log("291radius:"+0); */ var obj = $(this); if (!obj.data('loading')) { obj.data('loading', true); setTimeout(function() { var i = 0; $.ajax({ type: 'get', url: '//www2.karaoke.or.jp/karanavi/xml_list2.php', data: { type: "gps", lat: lat, lng: lng, ne_lat: map_ne_lat, sw_lat: map_sw_lat, ne_lng: map_ne_lng, sw_lng: map_sw_lng, radius: "radius", pg: i }, //data success: function(data){ if(data){ $("#com_area").append(data); i=i+1; }else{ alert("検索の範囲には掲載店はございません。ズームを操作して検索範囲を広げてみてください。"); } } }); //$.ajax obj.data('loading', false); }, 3000); } } function resetShops() { i=parseInt($.cookie("i")); var bounds = map.getBounds(); map_ne_lat = bounds.getNorthEast().lat(); map_sw_lat = bounds.getSouthWest().lat(); map_ne_lng = bounds.getNorthEast().lng(); map_sw_lng = bounds.getSouthWest().lng(); var center_lat = (map_ne_lat + map_sw_lat)/2; var center_lon = (map_ne_lng + map_sw_lng)/2; var obj = $(this); if (!obj.data('loading')) { obj.data('loading', true); setTimeout(function() { $.ajax({ type: 'get', url: '//www2.karaoke.or.jp/karanavi/xml_list2.php', data: { type: "map", ne_lat: map_ne_lat, sw_lat: map_sw_lat, ne_lng: map_ne_lng, sw_lng: map_sw_lng, lat: center_lat, lng: center_lon, radius: "", pg: i }, //data success: function(data){ if(data){ $("#com_area").append(data); i = i+1; $.cookie("i", i); str = "shop_name813"; } } }); //$.ajax obj.data('loading', false); }, 3000); } } } function checkZoom(){ var z = map.getZoom(); document.option_form.zoom.value=z; document.option_form.submit(); } window.addEventListener("load",function(){ initMap(); });