Гость
Как открыть информационное окно и закрыть другое информационное окно при нажатии маркера службы мест? [дубликат]
Сообщение
Гость » 14 мар 2024, 08:16
Я использую службу адресов для загрузки мест, расположенных рядом с местоположением по умолчанию. Проблема в том, что когда я нажимаю на маркер, открывается информационное окно, но не закрываются другие открытые информационные окна. Как открыть информационное окно и закрыть другие информационные окна?
Начальный маркер
Поиск поблизости : я хочу, чтобы при нажатии на маркер отображались другие открытые информационные окна. закрыто
Ниже приведены созданные мной коды
Код: Выделить всё
function initMap() {
const defaultLocation = { lat: {{ $property->latitude }}, lng: {{ $property->longitude }} };
const map = new google.maps.Map(document.getElementById('property-full-address-map'), {
center: defaultLocation,
zoom: 14,
mapTypeId: google.maps.MapTypeId.ROADMAP,
mapTypeControl: false,
streetViewControl: false,
gestureHandling: "greedy",
styles: [ { "elementType": "geometry", "stylers": [ { "color": "#f5f5f5" } ] }, { "elementType": "labels.icon", "stylers": [ { "visibility": "off" } ] }, { "elementType": "labels.text.fill", "stylers": [ { "color": "#616161" } ] }, { "elementType": "labels.text.stroke", "stylers": [ { "color": "#f5f5f5" } ] }, { "featureType": "administrative.land_parcel", "elementType": "labels.text.fill", "stylers": [ { "color": "#bdbdbd" } ] }, { "featureType": "poi", "elementType": "geometry", "stylers": [ { "color": "#eeeeee" } ] }, { "featureType": "poi", "elementType": "labels.text.fill", "stylers": [ { "color": "#757575" } ] }, { "featureType": "poi.park", "elementType": "geometry", "stylers": [ { "color": "#e5e5e5" } ] }, { "featureType": "poi.park", "elementType": "labels.text.fill", "stylers": [ { "color": "#9e9e9e" } ] }, { "featureType": "road", "elementType": "geometry", "stylers": [ { "color": "#ffffff" } ] }, { "featureType": "road.arterial", "elementType": "labels.text.fill", "stylers": [ { "color": "#757575" } ] }, { "featureType": "road.highway", "elementType": "geometry", "stylers": [ { "color": "#dadada" } ] }, { "featureType": "road.highway", "elementType": "labels.text.fill", "stylers": [ { "color": "#616161" } ] }, { "featureType": "road.local", "elementType": "labels.text.fill", "stylers": [ { "color": "#9e9e9e" } ] }, { "featureType": "transit.line", "elementType": "geometry", "stylers": [ { "color": "#e5e5e5" } ] }, { "featureType": "transit.station", "elementType": "geometry", "stylers": [ { "color": "#eeeeee" } ] }, { "featureType": "water", "elementType": "geometry", "stylers": [ { "color": "#91D5E4" } ] }, { "featureType": "water", "elementType": "labels.text.fill", "stylers": [ { "color": "#9e9e9e" } ] } ]
});
var marker = new google.maps.Marker({
position: defaultLocation,
map,
title: "Property Location",
});
marker.setMap(map);
}
$(document).ready(function() {
$('.nearby-search-btn').click(function() {
const type = $(this).data('type');
const defaultLocation = { lat: {{ $property->latitude }}, lng: {{ $property->longitude }} };
const map = new google.maps.Map(document.getElementById('property-full-address-map'), {
center: defaultLocation,
zoom: 16,
mapTypeId: google.maps.MapTypeId.ROADMAP,
mapTypeControl: false,
streetViewControl: false,
gestureHandling: "greedy",
styles: [ { "elementType": "geometry", "stylers": [ { "color": "#f5f5f5" } ] }, { "elementType": "labels.icon", "stylers": [ { "visibility": "off" } ] }, { "elementType": "labels.text.fill", "stylers": [ { "color": "#616161" } ] }, { "elementType": "labels.text.stroke", "stylers": [ { "color": "#f5f5f5" } ] }, { "featureType": "administrative.land_parcel", "elementType": "labels.text.fill", "stylers": [ { "color": "#bdbdbd" } ] }, { "featureType": "poi", "elementType": "geometry", "stylers": [ { "color": "#eeeeee" } ] }, { "featureType": "poi", "elementType": "labels.text.fill", "stylers": [ { "color": "#757575" } ] }, { "featureType": "poi.park", "elementType": "geometry", "stylers": [ { "color": "#e5e5e5" } ] }, { "featureType": "poi.park", "elementType": "labels.text.fill", "stylers": [ { "color": "#9e9e9e" } ] }, { "featureType": "road", "elementType": "geometry", "stylers": [ { "color": "#ffffff" } ] }, { "featureType": "road.arterial", "elementType": "labels.text.fill", "stylers": [ { "color": "#757575" } ] }, { "featureType": "road.highway", "elementType": "geometry", "stylers": [ { "color": "#dadada" } ] }, { "featureType": "road.highway", "elementType": "labels.text.fill", "stylers": [ { "color": "#616161" } ] }, { "featureType": "road.local", "elementType": "labels.text.fill", "stylers": [ { "color": "#9e9e9e" } ] }, { "featureType": "transit.line", "elementType": "geometry", "stylers": [ { "color": "#e5e5e5" } ] }, { "featureType": "transit.station", "elementType": "geometry", "stylers": [ { "color": "#eeeeee" } ] }, { "featureType": "water", "elementType": "geometry", "stylers": [ { "color": "#91D5E4" } ] }, { "featureType": "water", "elementType": "labels.text.fill", "stylers": [ { "color": "#9e9e9e" } ] } ]
});
var marker = new google.maps.Marker({
position: defaultLocation,
map,
icon: {
url: "{{ asset('front/img/marker.png') }}",
scaledSize: new google.maps.Size(40, 40)
},
title: "Property Location",
});
var request = {
location: defaultLocation,
radius: '500',
type: [type]
};
var service = new google.maps.places.PlacesService(map);
service.nearbySearch(request, callback);
function callback(results, status) {
if (status == google.maps.places.PlacesServiceStatus.OK) {
for (var i = 0; i < results.length; i++) {
var place = results[i];
createMarker(results[i]);
}
}
}
function createMarker(place) {
var neighborhoodMarker = new google.maps.Marker({
map: map,
position: place.geometry.location,
icon: {
url: place.icon,
scaledSize: new google.maps.Size(25, 25)
},
label: ''
});
var ratingCount = place.rating;
var rating = '';
//add icon for rating count
if (ratingCount >= 4.5) {
rating = '[/i][i][/i][i][/i][i][/i][i][/i]';
} else if (ratingCount >= 4) {
rating = '[i][/i][i][/i][i][/i][i][/i]';
} else if (ratingCount >= 3.5) {
rating = '[i][/i][i][/i][i][/i][i][/i]';
} else if (ratingCount >= 3) {
rating = '[i][/i][i][/i][i][/i]';
} else if (ratingCount >= 2.5) {
rating = '[i][/i][i][/i][i][/i]';
} else if (ratingCount >= 2) {
rating = '[i][/i][i][/i]';
} else if (ratingCount >= 1.5) {
rating = '[i][/i][i][/i]';
} else if (ratingCount >= 1) {
rating = '[i][/i]';
} else {
rating = '[i][/i]';
}
var contentString = `
` + place.name + `
` + place.vicinity + `
` + rating + `
` + place.user_ratings_total + ` Reviews
`;
var neighborhoodInfoWindow = new google.maps.InfoWindow({
content: contentString
});
neighborhoodMarker.addListener('click', function() {
neighborhoodInfoWindow.open(map, neighborhoodMarker);
});
google.maps.event.addListener(map, 'click', function() {
neighborhoodInfoWindow.close();
});
}
});
});
Этот вопрос уже решен с помощью приведенного ниже кода.
Код: Выделить всё
var markers = [];
function initMap() {
const defaultLocation = { lat: {{ $property->latitude }}, lng: {{ $property->longitude }} };
const map = new google.maps.Map(document.getElementById('property-full-address-map'), {
center: defaultLocation,
zoom: 14,
mapTypeId: google.maps.MapTypeId.ROADMAP,
mapTypeControl: false,
streetViewControl: false,
gestureHandling: "greedy",
styles: [ { "elementType": "geometry", "stylers": [ { "color": "#f5f5f5" } ] }, { "elementType": "labels.icon", "stylers": [ { "visibility": "off" } ] }, { "elementType": "labels.text.fill", "stylers": [ { "color": "#616161" } ] }, { "elementType": "labels.text.stroke", "stylers": [ { "color": "#f5f5f5" } ] }, { "featureType": "administrative.land_parcel", "elementType": "labels.text.fill", "stylers": [ { "color": "#bdbdbd" } ] }, { "featureType": "poi", "elementType": "geometry", "stylers": [ { "color": "#eeeeee" } ] }, { "featureType": "poi", "elementType": "labels.text.fill", "stylers": [ { "color": "#757575" } ] }, { "featureType": "poi.park", "elementType": "geometry", "stylers": [ { "color": "#e5e5e5" } ] }, { "featureType": "poi.park", "elementType": "labels.text.fill", "stylers": [ { "color": "#9e9e9e" } ] }, { "featureType": "road", "elementType": "geometry", "stylers": [ { "color": "#ffffff" } ] }, { "featureType": "road.arterial", "elementType": "labels.text.fill", "stylers": [ { "color": "#757575" } ] }, { "featureType": "road.highway", "elementType": "geometry", "stylers": [ { "color": "#dadada" } ] }, { "featureType": "road.highway", "elementType": "labels.text.fill", "stylers": [ { "color": "#616161" } ] }, { "featureType": "road.local", "elementType": "labels.text.fill", "stylers": [ { "color": "#9e9e9e" } ] }, { "featureType": "transit.line", "elementType": "geometry", "stylers": [ { "color": "#e5e5e5" } ] }, { "featureType": "transit.station", "elementType": "geometry", "stylers": [ { "color": "#eeeeee" } ] }, { "featureType": "water", "elementType": "geometry", "stylers": [ { "color": "#91D5E4" } ] }, { "featureType": "water", "elementType": "labels.text.fill", "stylers": [ { "color": "#9e9e9e" } ] } ]
});
var marker = new google.maps.Marker({
position: defaultLocation,
map,
title: "Property Location",
});
marker.setMap(map);
}
$(document).ready(function() {
$('.nearby-search-btn').click(function() {
const type = $(this).data('type');
const defaultLocation = { lat: {{ $property->latitude }}, lng: {{ $property->longitude }} };
const map = new google.maps.Map(document.getElementById('property-full-address-map'), {
center: defaultLocation,
zoom: 16,
mapTypeId: google.maps.MapTypeId.ROADMAP,
mapTypeControl: false,
streetViewControl: false,
gestureHandling: "greedy",
styles: [ { "elementType": "geometry", "stylers": [ { "color": "#f5f5f5" } ] }, { "elementType": "labels.icon", "stylers": [ { "visibility": "off" } ] }, { "elementType": "labels.text.fill", "stylers": [ { "color": "#616161" } ] }, { "elementType": "labels.text.stroke", "stylers": [ { "color": "#f5f5f5" } ] }, { "featureType": "administrative.land_parcel", "elementType": "labels.text.fill", "stylers": [ { "color": "#bdbdbd" } ] }, { "featureType": "poi", "elementType": "geometry", "stylers": [ { "color": "#eeeeee" } ] }, { "featureType": "poi", "elementType": "labels.text.fill", "stylers": [ { "color": "#757575" } ] }, { "featureType": "poi.park", "elementType": "geometry", "stylers": [ { "color": "#e5e5e5" } ] }, { "featureType": "poi.park", "elementType": "labels.text.fill", "stylers": [ { "color": "#9e9e9e" } ] }, { "featureType": "road", "elementType": "geometry", "stylers": [ { "color": "#ffffff" } ] }, { "featureType": "road.arterial", "elementType": "labels.text.fill", "stylers": [ { "color": "#757575" } ] }, { "featureType": "road.highway", "elementType": "geometry", "stylers": [ { "color": "#dadada" } ] }, { "featureType": "road.highway", "elementType": "labels.text.fill", "stylers": [ { "color": "#616161" } ] }, { "featureType": "road.local", "elementType": "labels.text.fill", "stylers": [ { "color": "#9e9e9e" } ] }, { "featureType": "transit.line", "elementType": "geometry", "stylers": [ { "color": "#e5e5e5" } ] }, { "featureType": "transit.station", "elementType": "geometry", "stylers": [ { "color": "#eeeeee" } ] }, { "featureType": "water", "elementType": "geometry", "stylers": [ { "color": "#91D5E4" } ] }, { "featureType": "water", "elementType": "labels.text.fill", "stylers": [ { "color": "#9e9e9e" } ] } ]
});
var neighborhoodMarker = new google.maps.Marker({
position: defaultLocation,
map,
icon: {
url: "{{ asset('front/img/marker.png') }}",
scaledSize: new google.maps.Size(40, 40)
},
title: "Property Location",
});
var request = {
location: defaultLocation,
radius: '500',
type: [type]
};
var service = new google.maps.places.PlacesService(map);
service.nearbySearch(request, callback);
function callback(results, status) {
if (status == google.maps.places.PlacesServiceStatus.OK) {
for (var i = 0; i < results.length; i++) {
var place = results[i];
createMarker(results[i], i);
}
}
}
function createMarker(place, id) {
var ratingCount = place.rating;
var rating = '';
//add icon for rating count
if (ratingCount >= 4.5) {
rating = '[i][/i][i][/i][i][/i][i][/i][i][/i]';
} else if (ratingCount >= 4) {
rating = '[i][/i][i][/i][i][/i][i][/i]';
} else if (ratingCount >= 3.5) {
rating = '[i][/i][i][/i][i][/i][i][/i]';
} else if (ratingCount >= 3) {
rating = '[i][/i][i][/i][i][/i]';
} else if (ratingCount >= 2.5) {
rating = '[i][/i][i][/i][i][/i]';
} else if (ratingCount >= 2) {
rating = '[i][/i][i][/i]';
} else if (ratingCount >= 1.5) {
rating = '[i][/i][i][/i]';
} else if (ratingCount >= 1) {
rating = '[i][/i]';
} else {
rating = '[i][/i]';
}
var contentString = `
` + place.name + `
` + place.vicinity + `
` + rating + `
` + place.user_ratings_total + ` Reviews
`;
var infowindow = new google.maps.InfoWindow({
content: contentString
});
var neighborMarker = new google.maps.Marker({
map: map,
position: place.geometry.location,
icon: {
url: place.icon,
scaledSize: new google.maps.Size(25, 25)
},
label: '',
title: place.name,
infowindow: infowindow
});
markers.push(neighborMarker);
google.maps.event.addListener(neighborMarker, 'click', function() {
hideAllInfoWindows(map);
this.infowindow.open(map, this);
});
}
function hideAllInfoWindows(map) {
markers.forEach(function(marker) {
marker.infowindow.close(map, marker);
});
}
});
});
Источник:
https://stackoverflow.com/questions/780 ... -place-ser
1710393387
Гость
Я использую службу адресов для загрузки мест, расположенных рядом с местоположением по умолчанию. Проблема в том, что когда я нажимаю на маркер, открывается информационное окно, но не закрываются другие открытые информационные окна. Как открыть информационное окно и закрыть другие информационные окна? [b]Начальный маркер[/b] [i] [b]Поиск поблизости[/b]: я хочу, чтобы при нажатии на маркер отображались другие открытые информационные окна. закрыто [img]https://i.stack.imgur.com/MACNW.png[/img] Ниже приведены созданные мной коды [code] function initMap() { const defaultLocation = { lat: {{ $property->latitude }}, lng: {{ $property->longitude }} }; const map = new google.maps.Map(document.getElementById('property-full-address-map'), { center: defaultLocation, zoom: 14, mapTypeId: google.maps.MapTypeId.ROADMAP, mapTypeControl: false, streetViewControl: false, gestureHandling: "greedy", styles: [ { "elementType": "geometry", "stylers": [ { "color": "#f5f5f5" } ] }, { "elementType": "labels.icon", "stylers": [ { "visibility": "off" } ] }, { "elementType": "labels.text.fill", "stylers": [ { "color": "#616161" } ] }, { "elementType": "labels.text.stroke", "stylers": [ { "color": "#f5f5f5" } ] }, { "featureType": "administrative.land_parcel", "elementType": "labels.text.fill", "stylers": [ { "color": "#bdbdbd" } ] }, { "featureType": "poi", "elementType": "geometry", "stylers": [ { "color": "#eeeeee" } ] }, { "featureType": "poi", "elementType": "labels.text.fill", "stylers": [ { "color": "#757575" } ] }, { "featureType": "poi.park", "elementType": "geometry", "stylers": [ { "color": "#e5e5e5" } ] }, { "featureType": "poi.park", "elementType": "labels.text.fill", "stylers": [ { "color": "#9e9e9e" } ] }, { "featureType": "road", "elementType": "geometry", "stylers": [ { "color": "#ffffff" } ] }, { "featureType": "road.arterial", "elementType": "labels.text.fill", "stylers": [ { "color": "#757575" } ] }, { "featureType": "road.highway", "elementType": "geometry", "stylers": [ { "color": "#dadada" } ] }, { "featureType": "road.highway", "elementType": "labels.text.fill", "stylers": [ { "color": "#616161" } ] }, { "featureType": "road.local", "elementType": "labels.text.fill", "stylers": [ { "color": "#9e9e9e" } ] }, { "featureType": "transit.line", "elementType": "geometry", "stylers": [ { "color": "#e5e5e5" } ] }, { "featureType": "transit.station", "elementType": "geometry", "stylers": [ { "color": "#eeeeee" } ] }, { "featureType": "water", "elementType": "geometry", "stylers": [ { "color": "#91D5E4" } ] }, { "featureType": "water", "elementType": "labels.text.fill", "stylers": [ { "color": "#9e9e9e" } ] } ] }); var marker = new google.maps.Marker({ position: defaultLocation, map, title: "Property Location", }); marker.setMap(map); } $(document).ready(function() { $('.nearby-search-btn').click(function() { const type = $(this).data('type'); const defaultLocation = { lat: {{ $property->latitude }}, lng: {{ $property->longitude }} }; const map = new google.maps.Map(document.getElementById('property-full-address-map'), { center: defaultLocation, zoom: 16, mapTypeId: google.maps.MapTypeId.ROADMAP, mapTypeControl: false, streetViewControl: false, gestureHandling: "greedy", styles: [ { "elementType": "geometry", "stylers": [ { "color": "#f5f5f5" } ] }, { "elementType": "labels.icon", "stylers": [ { "visibility": "off" } ] }, { "elementType": "labels.text.fill", "stylers": [ { "color": "#616161" } ] }, { "elementType": "labels.text.stroke", "stylers": [ { "color": "#f5f5f5" } ] }, { "featureType": "administrative.land_parcel", "elementType": "labels.text.fill", "stylers": [ { "color": "#bdbdbd" } ] }, { "featureType": "poi", "elementType": "geometry", "stylers": [ { "color": "#eeeeee" } ] }, { "featureType": "poi", "elementType": "labels.text.fill", "stylers": [ { "color": "#757575" } ] }, { "featureType": "poi.park", "elementType": "geometry", "stylers": [ { "color": "#e5e5e5" } ] }, { "featureType": "poi.park", "elementType": "labels.text.fill", "stylers": [ { "color": "#9e9e9e" } ] }, { "featureType": "road", "elementType": "geometry", "stylers": [ { "color": "#ffffff" } ] }, { "featureType": "road.arterial", "elementType": "labels.text.fill", "stylers": [ { "color": "#757575" } ] }, { "featureType": "road.highway", "elementType": "geometry", "stylers": [ { "color": "#dadada" } ] }, { "featureType": "road.highway", "elementType": "labels.text.fill", "stylers": [ { "color": "#616161" } ] }, { "featureType": "road.local", "elementType": "labels.text.fill", "stylers": [ { "color": "#9e9e9e" } ] }, { "featureType": "transit.line", "elementType": "geometry", "stylers": [ { "color": "#e5e5e5" } ] }, { "featureType": "transit.station", "elementType": "geometry", "stylers": [ { "color": "#eeeeee" } ] }, { "featureType": "water", "elementType": "geometry", "stylers": [ { "color": "#91D5E4" } ] }, { "featureType": "water", "elementType": "labels.text.fill", "stylers": [ { "color": "#9e9e9e" } ] } ] }); var marker = new google.maps.Marker({ position: defaultLocation, map, icon: { url: "{{ asset('front/img/marker.png') }}", scaledSize: new google.maps.Size(40, 40) }, title: "Property Location", }); var request = { location: defaultLocation, radius: '500', type: [type] }; var service = new google.maps.places.PlacesService(map); service.nearbySearch(request, callback); function callback(results, status) { if (status == google.maps.places.PlacesServiceStatus.OK) { for (var i = 0; i < results.length; i++) { var place = results[i]; createMarker(results[i]); } } } function createMarker(place) { var neighborhoodMarker = new google.maps.Marker({ map: map, position: place.geometry.location, icon: { url: place.icon, scaledSize: new google.maps.Size(25, 25) }, label: '' }); var ratingCount = place.rating; var rating = ''; //add icon for rating count if (ratingCount >= 4.5) { rating = '[/i][i][/i][i][/i][i][/i][i][/i]'; } else if (ratingCount >= 4) { rating = '[i][/i][i][/i][i][/i][i][/i]'; } else if (ratingCount >= 3.5) { rating = '[i][/i][i][/i][i][/i][i][/i]'; } else if (ratingCount >= 3) { rating = '[i][/i][i][/i][i][/i]'; } else if (ratingCount >= 2.5) { rating = '[i][/i][i][/i][i][/i]'; } else if (ratingCount >= 2) { rating = '[i][/i][i][/i]'; } else if (ratingCount >= 1.5) { rating = '[i][/i][i][/i]'; } else if (ratingCount >= 1) { rating = '[i][/i]'; } else { rating = '[i][/i]'; } var contentString = ` ` + place.name + ` ` + place.vicinity + ` ` + rating + ` ` + place.user_ratings_total + ` Reviews `; var neighborhoodInfoWindow = new google.maps.InfoWindow({ content: contentString }); neighborhoodMarker.addListener('click', function() { neighborhoodInfoWindow.open(map, neighborhoodMarker); }); google.maps.event.addListener(map, 'click', function() { neighborhoodInfoWindow.close(); }); } }); }); [/code] Этот вопрос уже решен с помощью приведенного ниже кода. [code] var markers = []; function initMap() { const defaultLocation = { lat: {{ $property->latitude }}, lng: {{ $property->longitude }} }; const map = new google.maps.Map(document.getElementById('property-full-address-map'), { center: defaultLocation, zoom: 14, mapTypeId: google.maps.MapTypeId.ROADMAP, mapTypeControl: false, streetViewControl: false, gestureHandling: "greedy", styles: [ { "elementType": "geometry", "stylers": [ { "color": "#f5f5f5" } ] }, { "elementType": "labels.icon", "stylers": [ { "visibility": "off" } ] }, { "elementType": "labels.text.fill", "stylers": [ { "color": "#616161" } ] }, { "elementType": "labels.text.stroke", "stylers": [ { "color": "#f5f5f5" } ] }, { "featureType": "administrative.land_parcel", "elementType": "labels.text.fill", "stylers": [ { "color": "#bdbdbd" } ] }, { "featureType": "poi", "elementType": "geometry", "stylers": [ { "color": "#eeeeee" } ] }, { "featureType": "poi", "elementType": "labels.text.fill", "stylers": [ { "color": "#757575" } ] }, { "featureType": "poi.park", "elementType": "geometry", "stylers": [ { "color": "#e5e5e5" } ] }, { "featureType": "poi.park", "elementType": "labels.text.fill", "stylers": [ { "color": "#9e9e9e" } ] }, { "featureType": "road", "elementType": "geometry", "stylers": [ { "color": "#ffffff" } ] }, { "featureType": "road.arterial", "elementType": "labels.text.fill", "stylers": [ { "color": "#757575" } ] }, { "featureType": "road.highway", "elementType": "geometry", "stylers": [ { "color": "#dadada" } ] }, { "featureType": "road.highway", "elementType": "labels.text.fill", "stylers": [ { "color": "#616161" } ] }, { "featureType": "road.local", "elementType": "labels.text.fill", "stylers": [ { "color": "#9e9e9e" } ] }, { "featureType": "transit.line", "elementType": "geometry", "stylers": [ { "color": "#e5e5e5" } ] }, { "featureType": "transit.station", "elementType": "geometry", "stylers": [ { "color": "#eeeeee" } ] }, { "featureType": "water", "elementType": "geometry", "stylers": [ { "color": "#91D5E4" } ] }, { "featureType": "water", "elementType": "labels.text.fill", "stylers": [ { "color": "#9e9e9e" } ] } ] }); var marker = new google.maps.Marker({ position: defaultLocation, map, title: "Property Location", }); marker.setMap(map); } $(document).ready(function() { $('.nearby-search-btn').click(function() { const type = $(this).data('type'); const defaultLocation = { lat: {{ $property->latitude }}, lng: {{ $property->longitude }} }; const map = new google.maps.Map(document.getElementById('property-full-address-map'), { center: defaultLocation, zoom: 16, mapTypeId: google.maps.MapTypeId.ROADMAP, mapTypeControl: false, streetViewControl: false, gestureHandling: "greedy", styles: [ { "elementType": "geometry", "stylers": [ { "color": "#f5f5f5" } ] }, { "elementType": "labels.icon", "stylers": [ { "visibility": "off" } ] }, { "elementType": "labels.text.fill", "stylers": [ { "color": "#616161" } ] }, { "elementType": "labels.text.stroke", "stylers": [ { "color": "#f5f5f5" } ] }, { "featureType": "administrative.land_parcel", "elementType": "labels.text.fill", "stylers": [ { "color": "#bdbdbd" } ] }, { "featureType": "poi", "elementType": "geometry", "stylers": [ { "color": "#eeeeee" } ] }, { "featureType": "poi", "elementType": "labels.text.fill", "stylers": [ { "color": "#757575" } ] }, { "featureType": "poi.park", "elementType": "geometry", "stylers": [ { "color": "#e5e5e5" } ] }, { "featureType": "poi.park", "elementType": "labels.text.fill", "stylers": [ { "color": "#9e9e9e" } ] }, { "featureType": "road", "elementType": "geometry", "stylers": [ { "color": "#ffffff" } ] }, { "featureType": "road.arterial", "elementType": "labels.text.fill", "stylers": [ { "color": "#757575" } ] }, { "featureType": "road.highway", "elementType": "geometry", "stylers": [ { "color": "#dadada" } ] }, { "featureType": "road.highway", "elementType": "labels.text.fill", "stylers": [ { "color": "#616161" } ] }, { "featureType": "road.local", "elementType": "labels.text.fill", "stylers": [ { "color": "#9e9e9e" } ] }, { "featureType": "transit.line", "elementType": "geometry", "stylers": [ { "color": "#e5e5e5" } ] }, { "featureType": "transit.station", "elementType": "geometry", "stylers": [ { "color": "#eeeeee" } ] }, { "featureType": "water", "elementType": "geometry", "stylers": [ { "color": "#91D5E4" } ] }, { "featureType": "water", "elementType": "labels.text.fill", "stylers": [ { "color": "#9e9e9e" } ] } ] }); var neighborhoodMarker = new google.maps.Marker({ position: defaultLocation, map, icon: { url: "{{ asset('front/img/marker.png') }}", scaledSize: new google.maps.Size(40, 40) }, title: "Property Location", }); var request = { location: defaultLocation, radius: '500', type: [type] }; var service = new google.maps.places.PlacesService(map); service.nearbySearch(request, callback); function callback(results, status) { if (status == google.maps.places.PlacesServiceStatus.OK) { for (var i = 0; i < results.length; i++) { var place = results[i]; createMarker(results[i], i); } } } function createMarker(place, id) { var ratingCount = place.rating; var rating = ''; //add icon for rating count if (ratingCount >= 4.5) { rating = '[i][/i][i][/i][i][/i][i][/i][i][/i]'; } else if (ratingCount >= 4) { rating = '[i][/i][i][/i][i][/i][i][/i]'; } else if (ratingCount >= 3.5) { rating = '[i][/i][i][/i][i][/i][i][/i]'; } else if (ratingCount >= 3) { rating = '[i][/i][i][/i][i][/i]'; } else if (ratingCount >= 2.5) { rating = '[i][/i][i][/i][i][/i]'; } else if (ratingCount >= 2) { rating = '[i][/i][i][/i]'; } else if (ratingCount >= 1.5) { rating = '[i][/i][i][/i]'; } else if (ratingCount >= 1) { rating = '[i][/i]'; } else { rating = '[i][/i]'; } var contentString = ` ` + place.name + ` ` + place.vicinity + ` ` + rating + ` ` + place.user_ratings_total + ` Reviews `; var infowindow = new google.maps.InfoWindow({ content: contentString }); var neighborMarker = new google.maps.Marker({ map: map, position: place.geometry.location, icon: { url: place.icon, scaledSize: new google.maps.Size(25, 25) }, label: '', title: place.name, infowindow: infowindow }); markers.push(neighborMarker); google.maps.event.addListener(neighborMarker, 'click', function() { hideAllInfoWindows(map); this.infowindow.open(map, this); }); } function hideAllInfoWindows(map) { markers.forEach(function(marker) { marker.infowindow.close(map, marker); }); } }); }); [/code] Источник: [url]https://stackoverflow.com/questions/78014526/how-to-open-info-window-and-close-another-info-window-when-marker-from-place-ser[/url]