<html>
<head>
<title>Инструмент для определения координат - API Яндекс.Карт 2.1</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<script src="https://api-maps.yandex.ru/2.1/?apikey=&lang=ru_RU" type="text/javascript">
</script>
<link rel="stylesheet" type="text/css" href="../style/style.css" />
<style>
html, body, #YMapID {
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;
border: solid 1px #999999;
padding: 10px;
margin: 0px;
right: 5px;
top: 180px;
}
.input-medium {
width:120px;
margin-top: 5px;
margin-bottom: 5px;
}
.sp {
color:#990000;
}
</style>
<script type="text/javascript">
var myMap, myPlacemark, adr, coords;
var index;
<?
if($_GET['adr'])
echo "\n adr='".urldecode($_GET['adr'])."';";
else
echo "\n adr='Moscow';";
?>
// Как только будет загружен API и готов DOM, выполняем инициализацию
ymaps.ready(init);
function init () {
// Поиск координат центра
ymaps.geocode(adr, { results: 1 }).then(function (res) {
// Выбираем первый результат геокодирования
var firstGeoObject = res.geoObjects.get(0);
// Создаём карту.
// Устанавливаем центр и коэффициент масштабирования.
window.myMap = new ymaps.Map("YMapID", {
center: firstGeoObject.geometry.getCoordinates(),
zoom: 14
});
var SearchControl = new ymap.control.SearchControl({myPlacemark:true});
//Добавляем элементы управления
myMap.controls
.add(SearchControl)
// Кнопка изменения масштаба
.add('zoomControl')
// Список типов карты
.add('typeSelector');
coords=firstGeoObject.geometry.getCoordinates();
document.getElementById("spot-lat").value = coords[0].toFixed(4);
document.getElementById("spot-longi").value = coords[1].toFixed(4);
myPlacemark = new ymaps.Placemark(coords,{}, {preset: "twirl#redIcon", draggable: true});
myMap.geoObjects.add(myPlacemark);
//Отслеживаем событие перемещения метки
myPlacemark.events.add("dragend", function (e) {
coords = this.geometry.getCoordinates();
savecoordinats();
}, myPlacemark);
//Отслеживаем событие выбора результата поиска
SearchControl.events.add("resultselect", function (e) {
index=SearchControl.getSelectedIndex();
coords = SearchControl.getResultsArray()[index].geometry.getCoordinates();
savecoordinats();
//control.SearchControl.close();
});
}, function (err) {
// Если геокодирование не удалось,
// сообщаем об ошибке
alert(err.message);
})
}
function savecoordinats (){
var new_coords = [coords[0].toFixed(4), coords[1].toFixed(4)];
myPlacemark.getOverlay().getData().geometry.setCoordinates(new_coords);
var center = myMap.getCenter();
var new_center = [center[0].toFixed(4), center[1].toFixed(4)];
var new_center_x = [coords[0].toFixed(4)];
var new_center_y = [coords[1].toFixed(4)];
document.getElementById("spot-lat").value = new_center_x;
document.getElementById("spot-longi").value = new_center_y;
}
function save_address() {
var x = document.getElementById('spot-lat').value;
var y = document.getElementById('spot-longi').value;
window.opener.document.getElementById('map_x').value = x;
window.opener.document.getElementById('map_y').value = y;
self.close ();
myPlacemark = new ymap.Placemark([43.238253,76.945465], { // Координаты метки объекта
balloonContent: "<div class='YMapID'>b2</div>" // Подсказка метки
}, {
preset: "twirl#redDotIcon" // Тип метки
});
myMap.geoObjects.add(myPlacemark); // Добавление метки
myPlacemark.balloon.open(); // Открытие подсказки метки
};
</script>
</head>
<body>
<div id="YMapID" style="width:1220px; height:620px; border:1px solid #000000"></div>
<div id="coord_form">
<form name="form2" action="#" onsubmit="save_address(); return false">
Широта <br />
<input readonly="1" class="input-medium" name="lat" id="spot-lat" value="<?=$x?>" /><br />
Долгота <br />
<input readonly="1" class="input-medium" name="longi" id="spot-longi" value="<?=$y?>" /><br />
<span class=sp>
После <br />установки<br />маркера <br />сохраните<br /> изменения
</span>
<br />
<input class="submit" type="submit" name="submit2" value="Сохранить" />
</form>
</div>
</body>
</html>
Здравствуйте. С Новым Годом. Делаю Яндекс карту у себя на сайте, Делаю по урокам в интернете. Карта выводится в нужном месте, как указано в форме подачи объявлений. Но не выводится маркер и карта не сохраняется в объявлении пользователя. Честно говоря уже сам запутался, понимаю, что нагородил. Может кто поможет на ваших условиях ?