モデルハウスへ行こう! トコスホーム

トコスホーム

  • 来場予約来場予約
  • 資料請求資料請求
  • ログイン/新規会員登録
  • メルマガ登録メルマガ登録
  • メニューメニュー
$.fn.googleMap = function (options) { var _this = this; var settings = $.extend({}, { zoom: 5, centerLat: 0, centerLon: 0 }, options); this.initialize = function () { var mapOptions = { zoom: settings.zoom }; var map = new google.maps.Map(_this.get(0), mapOptions); // do anything with your map object here, // eg: centering map, adding markers' events /******************************************** * This is the trick! * set map object to element's data attribute ********************************************/ _this.data('map', map); return _this; }; // ... more methods return this; }; function set_area(address){ if(~address.indexOf('鳥取県') && ~address.indexOf('鳥取市')){ return '鳥取'; }else if(~address.indexOf('鳥取県') && ~address.indexOf('米子')){ return '米子'; }else if(~address.indexOf('鳥取県')){ return '鳥取米子'; }else if(~address.indexOf('島根県') && ~address.indexOf('松江')){ return '松江'; }else if(~address.indexOf('島根県') && ~address.indexOf('出雲')){ return '出雲'; }else if(~address.indexOf('島根')){ return '松江出雲'; }else{ return '米子'; } } function is_smartphone() { return /(iPhone|iPad|iPod|Android)/.test(navigator.userAgent); } function attachInfoWin(marker, event_type,elem){ google.maps.event.addListener(marker, event_type,function(event){ new google.maps.InfoWindow({content: elem['content']}).open(marker.getMap(), marker); }); } function fitBounds(map, area){ let filtered_model_houses = $.grep(model_houses,function(elem,index){ if(area == '鳥取米子') { return (elem.area == '鳥取' || elem.area == '米子'); }else if(area == '松江出雲') { return (elem.area == '松江' || elem.area == '出雲'); }else { return (elem.area == area); } }); let filtered_areas = []; $.each(filtered_model_houses,function(index,elem){ filtered_areas.push(new google.maps.LatLng(elem['lat'], elem['lng'])); }); if(filtered_areas.length){ let minX = filtered_areas[0].lng(); let minY = filtered_areas[0].lat(); let maxX = filtered_areas[0].lng();; let maxY = filtered_areas[0].lat();; $.each(filtered_areas, function(index, elem){ var lt = filtered_areas[index].lat(); var lg = filtered_areas[index].lng(); if (lg maxX){ maxX = lg; } if (lt maxY){ maxY = lt; } }); let sw = new google.maps.LatLng(maxY, minX); let ne = new google.maps.LatLng(minY, maxX); let bounds = new google.maps.LatLngBounds(sw, ne); map.fitBounds(bounds); } } function get_marker_type(marker_type){ var marker_address; if(marker_type == '常設モデルハウス'){ marker_address = '/wp-content/themes/tocoshome/images/marker_modelhouse.png'; }else if(marker_type == '期間限定モデルハウス'){ marker_address = '/wp-content/themes/tocoshome/images/marker_build.png'; }else if(marker_type == '店舗'){ marker_address = '/wp-content/themes/tocoshome/images/marker_shop.png'; } return new google.maps.MarkerImage(marker_address); } let latitude = 35.444545; let longitude = 133.328674; let markers = []; function success(position) { latitude = position.coords.latitude; longitude = position.coords.longitude; let area; let geocoder = new google.maps.Geocoder(); geocoder.geocode({ latLng: new google.maps.LatLng(latitude, longitude) }, function(results, status){ if( status == google.maps.GeocoderStatus.OK){ if(results[0].geometry){ area = set_area(results[0].formatted_address); let opts = { zoom: 15, center: new google.maps.LatLng(latitude, longitude) }; let map = new google.maps.Map($("#gmap")[0], opts); let event_type = 'mouseover'; if(is_smartphone()){ event_type= 'click'; } $.each(model_houses, function(index, elem){ console.log(elem['type']); let latlng = new google.maps.LatLng(elem['lat'],elem['lng']); var marker_icon = get_marker_type(elem['type']); let marker = new google.maps.Marker({ position: latlng, map: map, icon: marker_icon }); attachInfoWin(marker,event_type,elem); markers.push(marker); fitBounds(map,area); }); } else { return 'geometry fail'; } } else { return 'Geocoder Fail'; } }); } function fail(error){ return false; } function initMap(){ if(typeof navigator.geolocation === 'undefined') { console.log('GPSが利用できません'); return false; } else { navigator.geolocation.getCurrentPosition(success, fail); return true; } return null; }
ページのトップへ