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. Они пишут, что ключ уже получать не надо под домен. Как сделать без ключа, пока не знаю - еще даже не читал по новой версии инфу.