Яндекс карта, получение координат по клику на карту
HTML
<script src="https://api-maps.yandex.ru/2.1/?lang=ru_RU"></script>
<div id="YMapsID"></div>
<div id="coord_form">
<p>
<label>Координаты меткийц: </label><br/>
<input class="input-coords" readonly/><br/>
<label>Страна: </label><br/>
<input class="input-country" readonly/><br/>
<label>Город: </label><br/>
<input class="input-city" readonly/><br/>
<label>Адрес: </label><br/>
<input class="input-address" readonly/><br/>
</p>
</div>
CSS
html, body, #YMapsID {
margin: 0;
padding: 0;
height: 100%;
}
#coord_form{
position: absolute;
z-index: 1000;
background: none repeat scroll 0% 0% rgb(255, 255, 255);
list-style: none outside none;
padding: 10px;
margin: 0px;
right: 10px;
top: 50px;
}
JavaScript
ymaps.ready(init);
function init() {
var myPlacemark,
myMap = new ymaps.Map('YMapsID', {
center: [55.753994, 37.622093],
zoom: 9,
controls: []
}), mySearchControl = new ymaps.control.SearchControl({
options: {
noPlacemark: true
}
});
myMap.controls.add(mySearchControl);
//myMap.geoObjects.add(mySearchResults);
//Слушаем выбор поиска
mySearchControl.events.add('resultselect', function (e) {
var index = e.get('index');
var coords = mySearchControl.getResult(index)._value.geometry.getCoordinates();
setMarker(coords);
});
setMarker = function (coords){
// Если метка уже создана – просто передвигаем ее.
if (myPlacemark) {
myPlacemark.geometry.setCoordinates(coords);
}
// Если нет – создаем.
else {
myPlacemark = createPlacemark(coords);
myMap.geoObjects.add(myPlacemark);
// Слушаем событие окончания перетаскивания на метке.
myPlacemark.events.add('dragend', function () {
getAddress(myPlacemark.geometry.getCoordinates());
});
}
getAddress(coords);
}
// Слушаем клик на карте.
myMap.events.add('click', function (e) {
var coords = e.get('coords');
setMarker(coords);
});
// Создание метки.
function createPlacemark(coords) {
return new ymaps.Placemark(coords, {
iconCaption: 'поиск...'
}, {
preset: 'islands#violetDotIconWithCaption',
draggable: true
});
}
// Определяем адрес по координатам (обратное геокодирование).
function getAddress(coords) {
myPlacemark.properties.set('iconCaption', 'поиск...');
ymaps.geocode(coords).then(function (res) {
var firstGeoObject = res.geoObjects.get(0),
array =...