<script src="https://maps.google.com/maps/api/js?key={{ api_key_google }}&libraries=places"></script>
<script src="https://unpkg.com/@googlemaps/markerclusterer/dist/index.min.js"></script>
<script src="https://code.jquery.com/jquery-3.6.0.min.js"></script>
<script>
var locations1 = [
{% for a in adherents %}
{ 'position': { lat: {{ a.lat }}, lng: {{ a.lon }} }, 'nom' :'{{ a.societe }}', 'adresse': '{{ a.adresse|replace({"\n": "", "\r": "", "\t": ""}) }}<br/>{{ a.cp }} {{ a.ville }}', 'tel' : '{{ a.tel }}', 'url' : '{{ a.urlVente }}', 'btn': '{{ a.societe }} {{ a.ville }}', 'concept':'{{ a.concept }}'},
{% endfor %}
]
var placeSearch;
var map, input, autocomplete;
$(".searchFormSubmit").click(function(){
$("#exampleModalCenter").modal("hide");
const myTimeout = setTimeout(searchFormModal, 1000);
});
function searchFormModal(){
map.setCenter(placeSearch.geometry.location);
map.setZoom(9);
var element = document.getElementById("scrollSmothHere");
element.scrollIntoView({behavior: "smooth"});
}
function initAutocomplete1() {
input2 = document.getElementById("pac-input-2");
const options1 = {
fields: ["formatted_address", "geometry", "name"],
strictBounds: false,
componentRestrictions: { country: "fr" },
};
autocomplete2 = new google.maps.places.Autocomplete(input2, options1);
map = new google.maps.Map(document.getElementById("mapAdherent1"), {
zoom: 7,
center: { lat: 46.8066357, lng: 2.2216369},
});
var infoWindow = new google.maps.InfoWindow({
content: "",
disableAutoPan: true,
});
var markers1 = locations1.map((element, i) => {
var position = element['position'];
var label = element['nom'];
const svgMarker = {
path: "M10.453 14.016l6.563-6.609-1.406-1.406-5.156 5.203-2.063-2.109-1.406 1.406zM12 2.016q2.906 0 4.945 2.039t2.039 4.945q0 1.453-0.727 3.328t-1.758 3.516-2.039 3.070-1.711 2.273l-0.75 0.797q-0.281-0.328-0.75-0.867t-1.688-2.156-2.133-3.141-1.664-3.445-0.75-3.375q0-2.906 2.039-4.945t4.945-2.039z",
fillColor: "blue",
fillOpacity: 0.6,
strokeWeight: 0,
rotation: 0,
scale: 2,
anchor: new google.maps.Point(15, 30),
};
let urlSvg1 = "{{ asset("img/map-marker.svg") | escape('js') }}"
var marker1 = new google.maps.Marker({position, icon: urlSvg1});
marker1.addListener("click", () => {
if(element['concept'] == 'Open Point'){
infoWindow.setContent("<div style='font-fmily: LATO;' class='mapInfoWindow text-center'><p class='mb-0'><img src='{{ asset('img/logo_points_3.png')| escape('js') }}' style='width: 130px;'></p><p class='mb-1'>"+element['adresse']+"</p><p class='mb-1'>Tel: "+element['tel']+"</p><a href='"+element['url']+"' class='btn btn-sm blue_points_background btn-gmap mt-2 mb-2' target='_blank'>Accéder à mon centre</a></div>");
}else{
infoWindow.setContent("<div style='font-fmily: LATO;' class='mapInfoWindow text-center'><p class='mb-1'>"+element['nom']+"</p><p class='mb-1'>"+element['adresse']+"</p><p class='mb-1'>Tel: "+element['tel']+"</p><a href='"+element['url']+"' class='btn btn-sm blue_points_background btn-gmap mt-2 mb-2' target='_blank'>Accéder à mon centre</a></div>");
}
infoWindow.open(map, marker1);
});
return marker1;
});
autocomplete2.bindTo("bounds", map);
autocomplete2.addListener("place_changed", () => {
//const place = autocomplete2.getPlace();
placeSearch = autocomplete2.getPlace();
{#map.setCenter(place.geometry.location);
map.setZoom(9);#}
});
}
initAutocomplete1();
$('#formSearchMap').on('submit', function(e) {
e.preventDefault()
});
</script>
<script>
var locations = [
{% for a in adherents %}
{ 'position': { lat: {{ a.lat }}, lng: {{ a.lon }} }, 'nom' :'{{ a.societe }}', 'adresse': '{{ a.adresse|replace({"\n": "", "\r": "", "\t": ""}) }}<br/>{{ a.cp }} {{ a.ville }}', 'tel' : '{{ a.tel }}', 'url' : '{{ a.urlVente }}', 'btn': '{{ a.societe }} {{ a.ville }}', 'concept':'{{ a.concept }}'},
{% endfor %}
]
var placeSearch;
var map, input, autocomplete;
$(".searchFormSubmit").click(function(){
$("#exampleModalCenter").modal("hide");
const myTimeout = setTimeout(searchFormModal, 1000);
});
function searchFormModal(){
map.setCenter(placeSearch.geometry.location);
map.setZoom(9);
var element = document.getElementById("scrollSmothHere");
element.scrollIntoView({behavior: "smooth"});
}
function initAutocomplete1() {
input2 = document.getElementById("pac-input-2");
const options1 = {
fields: ["formatted_address", "geometry", "name"],
strictBounds: false,
componentRestrictions: { country: "fr" },
};
autocomplete2 = new google.maps.places.Autocomplete(input2, options1);
map = new google.maps.Map(document.getElementById("mapAdherent1"), {
zoom: 7,
center: { lat: 46.8066357, lng: 2.2216369},
});
var infoWindow = new google.maps.InfoWindow({
content: "",
disableAutoPan: true,
});
var markers1 = locations1.map((element, i) => {
var position = element['position'];
var label = element['nom'];
const svgMarker = {
path: "M10.453 14.016l6.563-6.609-1.406-1.406-5.156 5.203-2.063-2.109-1.406 1.406zM12 2.016q2.906 0 4.945 2.039t2.039 4.945q0 1.453-0.727 3.328t-1.758 3.516-2.039 3.070-1.711 2.273l-0.75 0.797q-0.281-0.328-0.75-0.867t-1.688-2.156-2.133-3.141-1.664-3.445-0.75-3.375q0-2.906 2.039-4.945t4.945-2.039z",
fillColor: "blue",
fillOpacity: 0.6,
strokeWeight: 0,
rotation: 0,
scale: 2,
anchor: new google.maps.Point(15, 30),
};
let urlSvg1 = "{{ asset("img/map-marker.svg") | escape('js') }}"
var marker1 = new google.maps.Marker({position, icon: urlSvg1});
marker1.addListener("click", () => {
if(element['concept'] == 'Open Point'){
infoWindow.setContent("<div style='font-fmily: LATO;' class='mapInfoWindow text-center'><p class='mb-0'><img src='{{ asset('img/logo_points_3.png')| escape('js') }}' style='width: 130px;'></p><p class='mb-1'>"+element['adresse']+"</p><p class='mb-1'>Tel: "+element['tel']+"</p><a href='"+element['url']+"' class='btn btn-sm blue_points_background btn-gmap mt-2 mb-2' target='_blank'>Accéder à mon centre</a></div>");
}else{
infoWindow.setContent("<div style='font-fmily: LATO;' class='mapInfoWindow text-center'><p class='mb-1'>"+element['nom']+"</p><p class='mb-1'>"+element['adresse']+"</p><p class='mb-1'>Tel: "+element['tel']+"</p><a href='"+element['url']+"' class='btn btn-sm blue_points_background btn-gmap mt-2 mb-2' target='_blank'>Accéder à mon centre</a></div>");
}
infoWindow.open(map, marker1);
});
return marker1;
});
autocomplete2.bindTo("bounds", map);
autocomplete2.addListener("place_changed", () => {
placeSearch = autocomplete2.getPlace();
});
}
initAutocomplete1();
$('#formSearchMap').on('submit', function(e) {
e.preventDefault()
});
</script>
<script>
var locations = [
{% for a in adherents %}
{ 'position': { lat: {{ a.lat }}, lng: {{ a.lon }} }, 'nom' :'{{ a.societe }}', 'adresse': '{{ a.adresse|replace({"\n": "", "\r": "", "\t": ""}) }}<br/>{{ a.cp }} {{ a.ville }}', 'tel' : '{{ a.tel }}', 'url' : '{{ a.urlVente }}', 'btn': '{{ a.societe }} {{ a.ville }}', 'concept':'{{ a.concept }}'},
{% endfor %}
]
var placeSearch;
var map, input, autocomplete;
$('#formSearchMap').on('submit', function(e) {
e.preventDefault();
const myTimeout = setTimeout(searchForm, 1000);
});
function searchForm(){
map.setCenter(placeSearch.geometry.location);
map.setZoom(9);
var element = document.getElementById("scrollSmothHere");
element.scrollIntoView({behavior: "smooth"});
}
function initAutocomplete() {
input = document.getElementById("pac-input");
const options = {
fields: ["formatted_address", "geometry", "name"],
strictBounds: false,
componentRestrictions: { country: "fr" },
};
autocomplete = new google.maps.places.Autocomplete(input, options);
map = new google.maps.Map(document.getElementById("mapAdherent"), {
zoom: 7,
center: { lat: 46.8066357, lng: 2.2216369},
});
var infoWindow = new google.maps.InfoWindow({
content: "",
disableAutoPan: true,
});
var markers = locations.map((element, i) => {
var position = element['position'];
var label = element['nom'];
const svgMarker = {
path: "M10.453 14.016l6.563-6.609-1.406-1.406-5.156 5.203-2.063-2.109-1.406 1.406zM12 2.016q2.906 0 4.945 2.039t2.039 4.945q0 1.453-0.727 3.328t-1.758 3.516-2.039 3.070-1.711 2.273l-0.75 0.797q-0.281-0.328-0.75-0.867t-1.688-2.156-2.133-3.141-1.664-3.445-0.75-3.375q0-2.906 2.039-4.945t4.945-2.039z",
fillColor: "blue",
fillOpacity: 0.6,
strokeWeight: 0,
rotation: 0,
scale: 2,
anchor: new google.maps.Point(15, 30),
};
let urlSvg = "{{ asset("img/map-marker.svg") | escape('js') }}"
var marker = new google.maps.Marker({position, icon: urlSvg});
marker.addListener("click", () => {
if(element['concept'] == 'Open Point'){
infoWindow.setContent("<div style='font-fmily: LATO;' class='mapInfoWindow text-center'><p class='mb-0'><img src='{{ asset('img/logo_points_3.png')| escape('js') }}' style='width: 130px;'></p><p class='mb-1'>"+element['adresse']+"</p><p class='mb-1'>Tel: "+element['tel']+"</p><a href='"+element['url']+"' class='btn btn-sm blue_points_background btn-gmap mt-2 mb-2' target='_blank'>Accéder à mon centre</a></div>");
}else{
infoWindow.setContent("<div style='font-fmily: LATO;' class='mapInfoWindow text-center'><p class='mb-1'>"+element['nom']+"</p><p class='mb-1'>"+element['adresse']+"</p><p class='mb-1'>Tel: "+element['tel']+"</p><a href='"+element['url']+"' class='btn btn-sm blue_points_background btn-gmap mt-2 mb-2' target='_blank'>Accéder à mon centre</a></div>");
}
infoWindow.open(map, marker);
});
return marker;
});
// Marker clusterer
const markerCluster = new markerClusterer.MarkerClusterer({
map: map,
markers: markers,
renderer: {
render: ({ markers, _position: position }) => {
return new google.maps.Marker({
position: {
lat: position.lat(),
lng: position.lng(),
},
label: {
text: String(markers.length),
color: "white",
fontSize: '12px',
fontWeight: '600'
},
icon: "{{ asset('img/m1.png')}}",
});
},
}
});
autocomplete.bindTo("bounds", map);
autocomplete.addListener("place_changed", () => {
placeSearch = autocomplete.getPlace();
});
}
initAutocomplete();
</script>