 WhiteRussian (05 Май 2012 - 11:58) писал:
WhiteRussian (05 Май 2012 - 11:58) писал:
Подскажите, пожалуйста, как реализован показ карты через печатную форму? Если можно - пример кода. Заранее благодарю.
Да, в общем то относительно не сложно. Через API яндекс карт.
Код в заголовок шаблона.
Вмето 
#### нужно поставить ключ от API яндекс карт
Вместо георрафических координат "
@@@@, @@@@" нужно поставить свою точку ближайшую (широту и долготу), если регион не Москва.
Найти свои координаты можно тут
{literal}
<script src="http://api-maps.yandex.ru/1.1/index.xml?key=####" type="text/javascript"></script>
  <script type="text/javascript">
	  var map, geoResult;
	  window.onload = function () {
		  map = new YMaps.Map(document.getElementById("YMapsID"));
		  map.setCenter(new YMaps.GeoPoint(@@@@, @@@@), 10);
		  map.addControl(new YMaps.TypeControl());
		
		  map.addControl(new YMaps.ToolBar());
		  map.addControl(new YMaps.Zoom());
		  map.addControl(new YMaps.MiniMap());
		  map.addControl(new YMaps.ScaleLine());
		  <!--map.addControl(new YMaps.SearchControl());-->
		  showAddress(document.getElementById("address").value);
	  }
	  function showAddress (value) {
		  map.removeOverlay(geoResult);
		  var geocoder = new YMaps.Geocoder(value, {results: 1, boundedBy: map.getBounds()});
		  YMaps.Events.observe(geocoder, geocoder.Events.Load, function () {
			  if (this.length()) {
				  geoResult = this.get(0);
				  map.addOverlay(geoResult);
				  map.setBounds(geoResult.getBounds());
			  }else {
				  alert("Ничего не найдено")
			  }
		  });
	  }
  </script>
{/literal}
Это в тело печатной формы, в нужное место.
Вместо 
{$Gorod} и 
{$Adres} подставить свои переменные города и адреса. Если города нет, можно не указывать, оставить только адрес.
<form action="#" onsubmit="showAddress(this.address.value);return false;">
<div>
  <input id="address" style="width:620;height:23" type="text" value="{$Gorod} {$Adres}" /> <input type="submit" value="Искать" /></div>
<br />
<div id="YMapsID" style="width:700px;height:550px"></div>
</form>
Это код той формы, которую я тогда приводил. Сейчас мы по другому уже заморочились, там много всяких условий в коде (под нас четко заточено), не буду его приводить.
Кстати, у яндекс карт, вышел обновленный API под номером 2.0. Они пишут, что ключ уже получать не надо под домен. Как сделать без ключа, пока не знаю - еще даже не читал по новой версии инфу.