[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Показать / скрыть карту
segazav
Всем здравствуйте!

Вместе со страницей сайта грузится Яндекс карта и очень замедляет загрузку всей страницы.
Подскажите, пожалуйста, как сделать, чтобы она загружалась только при клике на кнопку:

<input type="button" id="karta" class="knopka_poisk" value="Показать карту">


и закрывалась при клике на эту же кнопку, но уже с value="Скрыть карту"

Сама карта выводится в теге:


<div align="center" id="YMapsID" style="width:560px; height:300px" class="img_podaty"></div>


Вот JS загрузки карты на страницу:


<script type="text/javascript">
window.onload = function () {
map = new YMaps.Map(document.getElementById("YMapsID"));
map.addControl(new YMaps.TypeControl());
map.addControl(new YMaps.Zoom());
map.addControl(new YMaps.SearchControl({noPlacemark: true}));
button = new YMaps.ToolBarButton({caption: "<b>Удалить метку</b>", hint: "Очистить карту"});
map.addControl(new YMaps.ToolBar([button]));

metka_map = "<?php if (!empty($_POST['metka'])) {$metka = $_POST['metka']; echo $metka;} else {$metka = ""; echo "нет";}?>";
mashtab_map = "<?php if (!empty($_POST['mashtab'])) {$mashtab = $_POST['mashtab']; echo $mashtab;} else {$mashtab = ""; echo "нет";}?>";

if (metka_map=="нет" && mashtab_map=="нет")
{
if (YMaps.location)
{
center = new YMaps.GeoPoint(YMaps.location.longitude, YMaps.location.latitude);
map.setCenter(center, 10);
map.openBalloon(center, "Найдите местность или объект на карте и <br>левой клавишей мыши установите метку.");
}
else
{
center = new YMaps.GeoPoint(101.578648,58.768352);
map.setCenter(center, 2);
map.openBalloon(new YMaps.GeoPoint(101.578648,58.768352), "Найдите местность или объект на карте и <br>левой клавишей мыши установите метку.");
}

var geoPlacemark;
map.removeOverlay(geoPlacemark);
YMaps.Events.observe(map, map.Events.Click, function (map, mEvent) {
geocoder = new YMaps.Geocoder(mEvent.getGeoPoint());
YMaps.Events.observe(geocoder, geocoder.Events.Load, function (geocoder) {
adres = geocoder.get(0).text;
geoPlacemark && map.removeOverlay(geoPlacemark);
geoPlacemark = new YMaps.Placemark(mEvent.getGeoPoint(), {style: "default#redPoint"});
geoPlacemark.setIconContent("Метка");
geoPlacemark.name = "Метка установлена:";
geoPlacemark.description = adres + "<br><em>Для перемещения метки - кликните в новом месте на карте.</em>";
map.addOverlay(geoPlacemark);
geoPlacemark.openBalloon();
metka_save = mEvent.getGeoPoint().toString();
mashtab_save = map.getZoom().toString();
document.form1.mashtab.value=mashtab_save;
document.form1.metka.value=metka_save;
});
});

YMaps.Events.observe(button, button.Events.Click, function (button) {
map.removeAllOverlays();
metka_save="";
mashtab_save="";
document.form1.mashtab.value="";
document.form1.metka.value="";
});
}
else
{
center = new YMaps.GeoPoint(<?php if (!empty($metka)) {echo $metka;} else {echo "101.578648,58.768352";} ?>);
map.setCenter(center, <?php if (!empty($mashtab)) {echo $mashtab;} else {echo "2";} ?>);

geocoder = new YMaps.Geocoder(center, {results: 1});
YMaps.Events.observe(geocoder, geocoder.Events.Load, function (geocoder) {
adres = geocoder.get(0).text;
geoPlacemark = new YMaps.Placemark(center, {style: "default#redPoint"});
geoPlacemark.setIconContent("Метка");
geoPlacemark.name = "Метка установлена:";
geoPlacemark.description = adres + "<br><em>Для перемещения метки - кликните в новом месте на карте.</em>";
map.addOverlay(geoPlacemark);
geoPlacemark.openBalloon();
metka_save = geocoder.get(0).getGeoPoint().toString();
mashtab_save = map.getZoom().toString();
document.form1.mashtab.value=mashtab_save;
document.form1.metka.value=metka_save;
});

var geoPlacemark;
map.removeOverlay(geoPlacemark);
YMaps.Events.observe(map, map.Events.Click, function (map, mEvent) {
geocoder = new YMaps.Geocoder(mEvent.getGeoPoint());
YMaps.Events.observe(geocoder, geocoder.Events.Load, function (geocoder) {
adres = geocoder.get(0).text;
geoPlacemark && map.removeOverlay(geoPlacemark);
geoPlacemark = new YMaps.Placemark(mEvent.getGeoPoint(), {style: "default#redPoint"});
geoPlacemark.setIconContent("Метка");
geoPlacemark.name = "Метка установлена:";
geoPlacemark.description = adres + "<br><em>Для перемещения метки - кликните в новом месте на карте.</em>";
map.addOverlay(geoPlacemark);
geoPlacemark.openBalloon();
metka_save = mEvent.getGeoPoint().toString();
mashtab_save = map.getZoom().toString();
document.form1.mashtab.value=mashtab_save;
document.form1.metka.value=metka_save;
});
});

YMaps.Events.observe(button, button.Events.Click, function (button) {
map.removeAllOverlays();
metka_save="";
mashtab_save="";
document.form1.mashtab.value="";
document.form1.metka.value="";
});
}
}

</script>
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.