Модераторы: LSD, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> передать массив объектов в js или ajax, отобразить новые места на карте 
V
    Опции темы
dementiev
Дата 15.12.2009, 11:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 114
Регистрация: 8.2.2008
Где: Минск

Репутация: 1
Всего: 1



Всем привет! Как в javascript передать массив из сервлета?
У меня есть страница с картой, на которой стоят чекбоксы : "банки", "аптеки" и тд.
Я хочу по нажатии этой кнопки брать из базы координаты всех банков и отображать их. Просто отображение маркера работает нормально, проблема в том, что не знаю, как в js передать массив. 
Мне подойдёт любая помощь по js либо ajax.
Заранее спасибо!

Вот кусок работающего кода на js, который просто отображает два маркера.
Я в сервлете получаю коллекцию/массив координат+картинок, как мне их отобразить на карте динамически?
Код

<body onload="initialize()" bgcolor="whitesmoke">
.....
.....
    <div id="map_canvas" style="width: 700px; height: 400px"></div>
</body>


Код

    <script type="text/javascript">
        var mapstraction;
        function initialize() {
            // initialise the map with your choice of API
            mapstraction = new mxn.Mapstraction('map_canvas', 'openlayers');

            // create a lat/lon object
            var myPoint = new mxn.LatLonPoint(53.9, 27.5666667);

            // display the map centered on a latitude and longitude (Google zoom levels)
            mapstraction.setCenterAndZoom(myPoint, 11);

            /* args = {
             *     pan:      true,
             *     zoom:     'large' || 'small',
             *     overview: true,
             *     scale:    true,
             *     map_type: true,
             * }
             */
            mapstraction.addControls({
                pan: true,       //стрелки в стороны на карте
                zoom: 'large', // + и - на карте
                //overview: true,  //справа внизу мини-карта
                map_type: false  //справа вверху на карте выбор осм и тд - не надо
            });
            // create a marker positioned at a lat/lon
            my_marker = new mxn.Marker(myPoint);
            my_marker.setIcon('http://mapstraction.com/icon.gif');

            mapstraction.addMarker(new mxn.Marker(new mxn.LatLonPoint(53.9, 27.6)));

            // add a label to the marker
            my_marker.setLabel("<blink>Hello!</blink>");
            var text = "<b>Be Happy!</b>";

            // add info bubble to the marker
            my_marker.setInfoBubble(text);

            advancedMarker();
            // display marker
            mapstraction.addMarker(my_marker);
            var foo = function removeMarker() {
                mapstraction.removeMarker(my_marker);
            };
        }

        function advancedMarker() {
            mapstraction.addMarker(new mxn.Marker(new mxn.LatLonPoint(53.2, 24.5666667)), {
                infoBubble : "Advanced Marker",
                label : "tooltip",
                date : "new Date()",
                marker : 4,
                iconShadow: "http://mapufacture.com/images/providers/blank.png",
                iconShadowSize : [0,0],
                icon : "http://assets1.mapufacture.com/images/markers/usgs_marker.png",
                iconSize : [20,20],
                draggable : false,
                hover : true
            });
        }
    </script>


PM MAIL   Вверх
MisterCleric
Дата 15.12.2009, 12:31 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1043
Регистрация: 16.2.2006
Где: Харьков, Украина

Репутация: 33
Всего: 38



Привет. Если ты используешь аяксовые запросы, то должно быть усе просто:
сформируй руками на сервере строку, представляющую js-массив, и положи ее в респонз, а на клиенте просто разбери этот результат например через eval(). А еще можно запаковать твой респонз в такой формат как JSON, при вызове аякс-запроса указать, что ты ожидаешь contentType=json.



--------------------
ПРИШЕЛ, УВИДЕЛ - ПЕРЕПИСАЛ...
PM MAIL ICQ   Вверх
mbasil
Дата 16.12.2009, 08:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 399
Регистрация: 4.5.2007
Где: Москва

Репутация: 9
Всего: 13



Под JSON на их сайте имеется Java библиотека, что облегчает задачу
PM MAIL   Вверх
dementiev
Дата 16.12.2009, 13:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 114
Регистрация: 8.2.2008
Где: Минск

Репутация: 1
Всего: 1



да, всем спасибо, сделал.
В сервлете:
Код


                ArrayList<Auto> autoList = (ArrayList<Auto>) dao.getAllAuto();
                JSONArray jsonA = JSONArray.fromObject(autoList);
                System.out.println(jsonA);
                request.setAttribute("auto", jsonA);
                request.getRequestDispatcher("index.jsp").forward(request, response);


в js:
Код

var text = "<b>" + autoJson[i].descr + "</b> <a href='" + autoJson[i].href + "'> More info</a>";
Код



PM MAIL   Вверх
garbuz
Дата 16.12.2009, 16:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 677
Регистрация: 22.1.2008

Репутация: 8
Всего: 11



dementiev, какую библиотеку использовали для парсинга объектов JSON?
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Java"
LSD   AntonSaburov
powerOn   tux
  • Прежде, чем задать вопрос, прочтите это!
  • Книги по Java собираются здесь.
  • Документация и ресурсы по Java находятся здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит", если у Вас нет русских шрифтов.
  • Помечайте свой вопрос как решённый, если на него получен ответ. Ссылка "Пометить как решённый" находится над первым постом.
  • Действия модераторов можно обсудить здесь.
  • FAQ раздела лежит здесь.

Если Вам помогли, и атмосфера форума Вам понравилась, то заходите к нам чаще! С уважением, LSD, AntonSaburov, powerOn, tux.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java EE (J2EE) и Spring | Следующая тема »


 




[ Время генерации скрипта: 0.0449 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.