Клуб API Карт

Отладка приложения с картой на localhost

Пост в архиве.
sherlock2009mac
5 февраля 2010, 23:12

Привет всем.

Хочу создать приложение с Яндекс картами, сначала буду делать на localhost'е. Насколько я понял, ключ получать не нужно в этом случае?

Как мне сделать на страницу такую же карту, как на http://maps.yandex.ru/ (Москва)?

Следующим пунктом хотел бы поставить на такой карте точки с помощью меток и получить их координаты в переменную на Яваскрипте, чтобы передать в PHP.

Спасибо

14 комментариев
А реально вообще передавать данные о текущей точке в ифрейм методом GET, чтобы их получал скрипт на PHP? Пробую, но что-то не срабатывает (я вставил снизу от карты ифрейм, и передаю координаты точки при нажатии на карту).

http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
http://www.w3.org/1999/xhtml">

    Примеры. Простой вызов карты.
   
   
   



   
   
    http://localhost:6448/2a.php">


Похоже, дело было в Яваскрипте. Если написать так document.getElementById("ifr1"), то работает
Потому что переменные Div1 и ifr1 не определены. Можно сделать примерно так:
var myDiv = YMaps.jQuery("#Div1"),
    iframe = YMaps.jQuery("#ifr1");
   
YMaps.Events.observe(map, map.Events.Click, function(map, mEvent) {
    var myHtml = "Значение: " + mEvent.getGeoPoint() + " на масштабе " + map.getZoom();
    map.openBalloon(mEvent.getGeoPoint(), myHtml);
   
    myDiv.html(mEvent.getGeoPoint());
    iframe.attr("src", "http://localhost/?point=" + mEvent.getGeoPoint())
          .html(mEvent.getGeoPoint());
});

Может лучше вместо фрейма воспользоваться ajax?
Для меня Аякс пока немного сложен, пользуюсь освоенными способами. Но вот как сделать обратное - получить текст из ифрейма в яваскрипт и добавить метку на это место?
Т.е., скрипт в ифрейме у меня что-то выводит, и результат на карте должен от этого зависеть. Например, я хочу поставить метку на месте, выданном скриптом.
Поверьте, проще будет воспользоваться ajax.
1. В API включен фреймворк jQuery, который позволяет легко работать с ajax.
2. Есть подробная статья по работе с ajax: http://anton.shevchuk.name/javascript/jquery-for-beginners-ajax/
Возможно, воспользуюсь этим, но сейчас хотелось бы понять, почему не работает такое:

 YMaps.Events.observe(map, map.Events.Click, function(map, mEvent) {
                var myHtml = "Значение: " + mEvent.getGeoPoint() + " на масштабе " + map.getZoom();
                map.openBalloon(mEvent.getGeoPoint(), myHtml);
                Div1.innerHTML = mEvent.getGeoPoint();
                document.getElementById("ifr1").src = "http://localhost:6448/2a.php?point=" + mEvent.getGeoPoint();
                alert(document.getElementById("ifr1").innerHTML); // вот здесь выводит пустой бокс
            });

В ифрейме отобразился текст, но при клике не показывается его значение
Вот так можно достать указатель на окно, которое находится во фрейме:
document.getElementById("ifr1").contentWindow
Что-то не получается добраться до содержимого фрейма.
Обратитесь в клуб по JavaScript. Данный клуб посвящен вопросам, связанными с использованием API Яндекс.Карт.
А с исп. Аякса эта проблема (передача данных из php в яваскрипт) легко решается? Хочется на лету обрабатывать данные из скрипта и управлять картой на их основе. Или здесь какая-то глобальная проблема нерешаемая?
Почитайте про сам ajax, а также статью, ссылку на которую я привел в одном из комментариев.
И все-таки мне очень нужен пример кода, где была бы функция для отправки данных скрипту PHP, которая возвращает ответ сервера в виде HTML.
Чтобы можно было ее вставить в тот пример, который я ранее написал.
Типа function send(texttosend)
{
...
return serveranswer
}
К тому же, мне непонятно следующее (сделал небольшой пример с jQuery):


По клику на элемент Div1 в него загружаются результаты работы скрипта PHP. Но можно ли получить доступ к объектам карты, напр. сделать новую, вторую метку с заголовком в виде полученного HTML?