Как правильно отредактировать Google map поиск под Yandex map
подскажите как правильно выставить логическую цепочка, чтобы работало на Yandex map, этот код выводит координаты при нажатие на карту или при поиске адреса в поисковой строке. Сколько не пытался не выходит правильно реализовать.
Вот так выглядит в JS
GmapEngine.prototype.searchBox = function (classSearchBox ,func) {
var me = this;
var searchBox = new google.maps.places.SearchBox(classSearchBox[0]);
google.maps.event.addListener(searchBox, 'places_changed', function() {
var places = searchBox.getPlaces();
if (places.length == 0) {
return;
}
var bounds = new google.maps.LatLngBounds();
for (var i = 0, place ; place = places[i]; i++) {
if (!place.geometry) {
console.log("Returned place contains no geometry");
return;
}
if (place.geometry.viewport) {
bounds.union(place.geometry.viewport);
} else {
bounds.extend(place.geometry.location);
}
if(i===0){
func([
place.geometry.location.lat(),
place.geometry.location.lng(),
me.map.getZoom()]
);
}
}
me.map.fitBounds(bounds);
});
}
Вот так выглядит в php
if(bookingCore.map_provider === "gmap"){
engineMap.searchBox($('#customPlaceAddress'),function (dataLatLng) {
engineMap.clearMarkers();
engineMap.addMarker(dataLatLng, {
icon_options: {}
});
$("input[name=map_lat]").attr("value", dataLatLng[0]);
$("input[name=map_lng]").attr("value", dataLatLng[1]);
});
}
engineMap.searchBox($('.bravo_searchbox'),function (dataLatLng) {
engineMap.clearMarkers();
engineMap.addMarker(dataLatLng, {
icon_options: {}
});
$("input[name=map_lat]").attr("value", dataLatLng[0]);
$("input[name=map_lng]").attr("value", dataLatLng[1]);
});
Ответы (1 шт):
Автор решения: YaCor'
→ Ссылка
Координаты клика всегда есть в событии клика:
myMap.events.add('click', function (e) {
var coords = e.get('coords');
}
Адрес же в координаты геокодированием получать надо:
ymaps.geocode('Москва', {
results: 1
}).then(function (res) {
// Выбираем первый результат геокодирования.
var firstGeoObject = res.geoObjects.get(0),
// Координаты геообъекта.
coords = firstGeoObject.geometry.getCoordinates()
});