be_comp_maps_google.js 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139
  1. /*
  2. * Document : be_comp_maps_google.js
  3. * Author : pixelcave
  4. * Description: Custom JS code used in Google Maps Page
  5. */
  6. var BeCompMapsGoogle = function() {
  7. // Gmaps.js, for more examples you can check out https://hpneo.github.io/gmaps/
  8. // Init Search Map
  9. var initMapSearch = function(){
  10. if ( jQuery('#js-map-search').length ) {
  11. // Init Map
  12. var mapSearch = new GMaps({
  13. div: '#js-map-search',
  14. lat: 20,
  15. lng: 0,
  16. zoom: 2,
  17. scrollwheel: false
  18. });
  19. // When the search form is submitted
  20. jQuery('.js-form-search').on('submit', function(){
  21. var inputGroup = jQuery('.js-search-address').parent('.input-group');
  22. GMaps.geocode({
  23. address: jQuery('.js-search-address').val().trim(),
  24. callback: function (results, status) {
  25. if ((status === 'OK') && results) {
  26. var latlng = results[0].geometry.location;
  27. mapSearch.removeMarkers();
  28. mapSearch.addMarker({ lat: latlng.lat(), lng: latlng.lng() });
  29. mapSearch.fitBounds(results[0].geometry.viewport);
  30. inputGroup.siblings('.form-text').remove();
  31. } else {
  32. inputGroup.after('<div class="form-text text-danger text-xs-center animated fadeInDown">Address not found!</div>')
  33. }
  34. }
  35. });
  36. return false;
  37. });
  38. }
  39. };
  40. // Init Satellite Map
  41. var initMapSat = function(){
  42. if ( jQuery('#js-map-sat').length ) {
  43. new GMaps({
  44. div: '#js-map-sat',
  45. lat: 20,
  46. lng: 0,
  47. zoom: 2,
  48. scrollwheel: false
  49. }).setMapTypeId(google.maps.MapTypeId.SATELLITE);
  50. }
  51. };
  52. // Init Terrain Map
  53. var initMapTer = function(){
  54. if ( jQuery('#js-map-ter').length ) {
  55. new GMaps({
  56. div: '#js-map-ter',
  57. lat: 20,
  58. lng: 0,
  59. zoom: 2,
  60. scrollwheel: false
  61. }).setMapTypeId(google.maps.MapTypeId.TERRAIN);
  62. }
  63. };
  64. // Init Overlay Map
  65. var initMapOverlay = function(){
  66. if ( jQuery('#js-map-overlay').length ) {
  67. new GMaps({
  68. div: '#js-map-overlay',
  69. lat: 35,
  70. lng: 139,
  71. zoom: 6,
  72. scrollwheel: false
  73. }).drawOverlay({
  74. lat: 35,
  75. lng: 139,
  76. content: '<div class="alert alert-info text-xs-center"><h4 class="alert-heading mt-5 mb-15">Message</h4><p class="font-size-h5 mb-0">You can overlay messages on your maps!</p></div>'
  77. });
  78. }
  79. };
  80. // Init Markers Map
  81. var initMapMarkers = function(){
  82. if ( jQuery('#js-map-markers').length ) {
  83. new GMaps({
  84. div: '#js-map-markers',
  85. lat: 35.652832,
  86. lng: 139.839478,
  87. zoom: 11,
  88. scrollwheel: false
  89. }).addMarkers([
  90. {lat: 35.65, lng: 139.83, title: 'Map Marker #1', animation: google.maps.Animation.DROP, infoWindow: {content: 'Map Marker #1'}},
  91. {lat: 35.71, lng: 139.89, title: 'Map Marker #2', animation: google.maps.Animation.DROP, infoWindow: {content: 'Map Marker #2'}},
  92. {lat: 35.68, lng: 139.80, title: 'Map Marker #3', animation: google.maps.Animation.DROP, infoWindow: {content: 'Map Marker #3'}},
  93. {lat: 35.63, lng: 139.88, title: 'Map Marker #4', animation: google.maps.Animation.DROP, infoWindow: {content: 'Map Marker #4'}},
  94. {lat: 35.70, lng: 139.85, title: 'Map Marker #5', animation: google.maps.Animation.DROP, infoWindow: {content: 'Map Marker #5'}}
  95. ]);
  96. }
  97. };
  98. // Init Street Map
  99. var initMapStreet = function(){
  100. if ( jQuery('#js-map-street').length ) {
  101. new GMaps.createPanorama({
  102. el: '#js-map-street',
  103. lat: 35.6429793,
  104. lng: 139.8069035,
  105. pov: { heading: 355, pitch: 9 },
  106. scrollwheel: false
  107. });
  108. }
  109. };
  110. return {
  111. init: function () {
  112. // Init Map with Search functionality
  113. initMapSearch();
  114. // Init Example Maps
  115. initMapSat();
  116. initMapTer();
  117. initMapOverlay();
  118. initMapMarkers();
  119. initMapStreet();
  120. }
  121. };
  122. }();
  123. // Initialize when page loads
  124. jQuery(function(){ BeCompMapsGoogle.init(); });