PluginProbe
CBX Map for Google Map & OpenStreetMap / 1.1.11
CBX Map for Google Map & OpenStreetMap v1.1.11
trunk 1.1.10 1.1.11 1.1.12 1.1.5 1.1.6 1.1.7 1.1.8 1.1.9 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5
cbxgooglemap / assets / js / cbxgooglemap-public.js

cbxgooglemap-public.js in CBX Map for Google Map & OpenStreetMap 1.1.11, at assets/js/cbxgooglemap-public.js

148 lines 3.9 KB
No matching file
Up and down to move Enter to open Esc to close
Raw Download Zip
1 (function( $ ) {
2 'use strict';
3
4
5
6 function cbxgooglemap_render(element, $){
7
8 var $element = element;
9
10 $element.empty();
11
12 var $lat = parseFloat($element.data('lat'));
13 var $lng = parseFloat($element.data('lng'));
14 var $zoom = $element.data('zoom');
15 var $scrollwheel = Number($element.data('scrollwheel'));
16
17 var $showinfo = Number($element.data('showinfo'));
18 var $infow_open = Number($element.data('infow_open'));
19
20 var $heading = $element.data('heading');
21 var $address = $element.data('address');
22 var $website = $element.data('website');
23 var $mapicon = $element.data('mapicon');
24 var $maptype = $element.data('maptype');
25
26
27 var $mapsource = Number($element.data('mapsource'));
28
29
30
31 $showinfo = ($showinfo === 1)? true: false;
32 $infow_open = ($infow_open === 1)? true: false;
33 $scrollwheel = ($scrollwheel === 1)? true: false;
34
35
36 if($mapsource){
37
38 $element.jqcbxgoglemap({
39 mapOptions: {
40 latitude: [$lat],
41 longitude: [$lng],
42 center: true,
43 scrollwheel: $scrollwheel,
44 zoom:$zoom,
45 //mapType: 'roadmap', //roadmap, satelite, hybrid, terrain
46 mapType: $maptype, //roadmap, satelite, hybrid, terrain
47 showinfowindow: $showinfo,
48 infow_open: $infow_open,
49 website: $website,
50 icon: $mapicon,
51 infoWindow: [
52 {
53 title: $heading,
54 content: $address
55
56 }
57 ]
58 }
59 });
60 }
61 else{
62
63 //title layer providers https://github.com/leaflet-extras/leaflet-providers/blob/master/leaflet-providers.js
64
65 var $map = L.map($element.get( 0 )).setView([$lat, $lng], $zoom);
66 //$map.invalidateSize();
67
68 L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
69 attribution: '&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'
70 }).addTo($map);
71
72
73 if($mapicon !== ''){
74 var $l_icon = L.icon({
75 iconUrl: $mapicon,
76 popupAnchor: [15, 0]
77 });
78
79
80 var $marker = L.marker([$lat,$lng],{icon:$l_icon}).addTo($map);
81 }
82 else{
83
84 var $marker = L.marker([$lat,$lng]).addTo($map);
85 }
86
87
88 if($showinfo === true){
89 if($website !== '' && $heading !== ''){
90 $heading = '<a href="'+$website+'" target="_blank">'+$heading+'</a>';
91 }
92
93 if($heading != ''){
94 $heading = '<h3 class="jqcbxgoglemap_info_heading">'+$heading+'</h3>';
95 }
96
97 if($address != ''){
98 $address = '<div class="jqcbxgoglemap_info_body">'+$address+'</div>';
99 }
100
101 if($heading !== '' || $address !== ''){
102 if($infow_open){
103 $marker.bindPopup('<div class="jqcbxgoglemap_info">'+$heading+''+$address+'</div>').openPopup();
104 }
105 else{
106 $marker.bindPopup('<div class="jqcbxgoglemap_info">'+$heading+''+$address+'</div>').on('click', function (event) {
107 //event.target.openPopup;
108 });
109 }
110 }
111
112 }
113
114 if($scrollwheel === false){
115 $map.scrollWheelZoom.disable();
116 }
117 }
118 }
119
120 $(document).ready(function ($) {
121 $('.cbxgooglemap_embed').each(function (index, element) {
122 var $element = $(element);
123 var $render = Number($element.data('render'));
124 if(!$render){
125 $element.data('render', 1);
126 cbxgooglemap_render($element, $);
127 }
128 });
129
130 });//end dom ready
131
132 //for elementor widget render
133 $( window ).on( 'elementor/frontend/init', function() {
134 elementorFrontend.hooks.addAction( 'frontend/element_ready/cbxgooglemap_google_map.default', function($scope, $){
135 var $element = $scope.find('.cbxgooglemap_embed');
136 if(Number($element.length) > 0){
137 var $render = Number($element.data('render'));
138 if(!$render){
139 $element.data('render', 1);
140 cbxgooglemap_render($element, $);
141 }
142 }
143
144 });
145 });//end for elementor widget render
146
147 })( jQuery );
148