Перейти к содержимому



Карта Яндекс не могу довести до должного уровня.

#1 РОМ710
РОМ710
  • Пользователь
  • 4 сообщений
  • Репутация: 1
0

Отправлено 03 Январь 2020 - 20:07

<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>

Здравствуйте. С Новым Годом.  Делаю Яндекс карту у себя на сайте,  Делаю по урокам в интернете. Карта выводится в нужном месте, как указано в форме подачи объявлений. Но не выводится маркер и карта не сохраняется в объявлении пользователя. Честно говоря уже сам запутался, понимаю, что нагородил. Может кто поможет на ваших условиях ?


 

 

  • 0

#2 РОМ710
РОМ710
    Topic Starter
  • Пользователь
  • 4 сообщений
  • Репутация: 1

Отправлено 08 Январь 2020 - 08:29

Все, тема закрыта - сам разобрался и сделал.


  • 0

#3 BLIK
BLIK
  • Супермодератор
  • 4 623 сообщений
  • Репутация: 1062

Отправлено 08 Январь 2020 - 12:13

Все, тема закрыта - сам разобрался и сделал.

Вы бы написали, как решили вопрос, в теме ответов нет, возможно и другим пригодится ваше решение. 


  • 0

Качественный хостинг   Тут может быть ваша ссылка.



#4 РОМ710
РОМ710
    Topic Starter
  • Пользователь
  • 4 сообщений
  • Репутация: 1

Отправлено 09 Январь 2020 - 10:24

Да особо то хвалится не чем, перешёл на старую версию 2.0 Api Яндекс карт, там немного проще оказалось в моей ситуации.  Сейчас работает, а дальше будет пробовать переписывать код, что бы обновить до версии 2.1


  • 1



Похожие темы
  Название темы Автор Статистика Последнее сообщение

Пользователь месяца
FIvYUr FIvYUr 1-й за Декабрь
Очков активности: 2 062 0 тем, 125 сообщений, 11 баллов репутации
Сайт: moy-evroopt.ru
ТОП самых активных за этот месяц
  • Фотография albedo
    #1

    albedo (online24news.ru)
    Очков активности: 1701 7 тем, 105 сообщений, 9 баллов репутации

  • Фотография Totti
    #2

    Totti
    Очков активности: 1657.5 3 темы, 56 сообщений, 17 баллов репутации

  • Фотография ShowPrint
    #3

    ShowPrint (ShowPrint.ru)
    Очков активности: 256.5 0 тем, 19 сообщений, 9 баллов репутации

  • Фотография Santey
    #4

    Santey
    Очков активности: 150 20 тем, 40 сообщений, 1 балл репутации

  • Фотография Bilish
    #5

    Bilish
    Очков активности: 147 20 тем, 38 сообщений, 1 балл репутации

  • Фотография BLIK
    #6

    BLIK
    Очков активности: 144 Вне конкурса за определение пользователя месяца

  • Фотография NataliaAntalia
    #7

    NataliaAntalia (zdorovemedicina.ru)
    Очков активности: 129 Вне конкурса за определение пользователя месяца

  • Фотография r0mZet
    #8

    r0mZet (rz-style.ru)
    Очков активности: 63 2 темы, 8 сообщений, 3 балла репутации

  • Фотография MattCutts
    #9

    MattCutts (dmitrylee.ru)
    Очков активности: 60 Вне конкурса за определение пользователя месяца

  • Фотография Vmir
    #10

    Vmir
    Очков активности: 54 0 тем, 18 сообщений, 2 балла репутации

  • Показать весь ТОП 10
Поддержите форум! =)
Апдейты
  • Яндекс ИКС: 27.12.2019
  • Яндекс выдача: 27.01.2020
Топ 5 участников по репутации

Оформление форума – IPBSkins.ru