Форум программистов, компьютерный форум, киберфорум
JavaScript
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Vlad7090

Подскажите как Вывести массив для Яндекс.Карт

19.04.2013, 10:53. Показов 5060. Ответов 0
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Есть таблица содержащая адрес объекта и название.

Судя по описанию на яндекс.картах есть такая фишка как геокодирование, т.е можно выводя из БД адрес определять координаты автоматом.

Это вобщем то сделал

PHP
1
2
3
4
5
6
7
8
$result2 = dbquery("SELECT mechta_adress FROM ".DB_MECHTA." WHERE ".groupaccess('mechta_visibility')." AND (mechta_start='0'||mechta_start<=".time().") AND (mechta_end='0'||mechta_end>=".time().") AND mechta_draft='0'");
        
        if (dbrows($result2)) :
        
        $list = array();
        while ($data = dbarray($result2)) 
        
        $list[] = "'".$data['mechta_adress']."'";
JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
<script type="text/javascript">
    
    function init() {
 
    var myMap = new ymaps.Map(\'map\', {
            center: [54.302988, 48.415765],
            zoom: 11,
            behaviors: [\'default\', \'scrollZoom\']
        }),
        myMultiGeocoder = new MultiGeocoder({ boundedBy: myMap.getBounds() });
 
    // Геокодирование массива адресов и координат.
    myMultiGeocoder.geocode(['.join(',', $list).'])
    .then(
        function (res) {
            myMap.geoObjects.add(res.geoObjects);
        },
        function (err) {
            alert(err);
        }
    );
}
 
/**
 * Класс для геокодирования списка адресов или координат.
 * @see [url]https://github.com/dimik/ymaps/blob/master/multi-geocoder.js[/url]
 * @class
 * @name MultiGeocoder
 * @param {Object} [options={}] Дефолтные опции мультигеокодера.
 */
function MultiGeocoder(options) {
    this._options = options || {};
}
 
/**
 * Функция множественнеого геокодирования.
 * @function
 * @requires ymaps.util.extend
 * @see [url]http://api.yandex.ru/maps/doc/jsapi/2.x/ref/reference/util.extend.xml[/url]
 * @requires ymaps.util.Promise
 * @see [url]http://api.yandex.ru/maps/doc/jsapi/2.x/ref/reference/util.Promise.xml[/url]
 * @name MultiGeocoder.geocode
 * @param {Array} requests Массив строк-имен топонимов и/или геометрий точек (обратное геокодирование)
 * @returns {Object} Как и в обычном геокодере, вернем объект-обещание.
 */
MultiGeocoder.prototype.geocode = function (requests, options) {
    var self = this,
        opts = ymaps.util.extend({}, self._options, options),
        size = requests.length,
        promise = new ymaps.util.Promise(),
        result = [],
        geoObjects = new ymaps.GeoObjectArray();
 
    requests.forEach(function (request, index) {
        ymaps.geocode(request, opts).then(
            function (response) {
                var geoObject = response.geoObjects.get(0);
 
                geoObject && (result[index] = geoObject);
                --size || (result.forEach(geoObjects.add, geoObjects), promise.resolve({ geoObjects: geoObjects }));
            },
            function (err) {promise.reject(err);
            }
        );
    });
 
    return promise;
};
 
ymaps.ready(init);
</script>
все выводится, но есть одно НО, если несколько объектов находятся по одному адресу, то показывает все равно одну точку. Для решения этой проблемки Яндекс.Карты предлагают использовать кластеры. Но в таком случае меняется вывод на примерно следующий http://api.yandex.ru/maps/doc/... sterer.xml

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// создание кластеризатора
// создадим карту, на которой необходимо кластеризовать геообъекты
var map = new ymaps.Map('mapsID', {center: [56.034, 36.992], zoom: 8}),
// создадим массив геообъектов
myGeoObjects = [];
myGeoObjects[0] = new ymaps.GeoObject({
    geometry: {type: "Point", coordinates: [56.034, 36.992]},
    properties: {
        clusterCaption: 'Геообъект №1',
        balloonContentBody: 'Содержимое балуна геообъекта №1.'
    }
});
myGeoObjects[1] = new ymaps.GeoObject({
    geometry: {type: "Point", coordinates: [56.021, 36.983]},
    properties: {
        clusterCaption: 'Геообъект №2',
        balloonContentBody: 'Содержимое балуна геообъекта №2.'
    }
});
 
// создадим кластеризатор и запретим приближать карту при клике на кластеры
clusterer = new ymaps.Clusterer({clusterDisableClickZoom: true});
clusterer.add(myGeoObjects);
подскажите пожалуйста. как совместить эти два решения, чтобы объекты объединялись в кластеры и, если несколько объектов находятся по одному адресу, то выводил бы заголовки объектов списком при раскрытии балуна?
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
19.04.2013, 10:53
Ответы с готовыми решениями:

Как написать парсер Яндекс-карт?
Как вообще возможно написать парсер яндекс.карт на python? или может другие языки нужно использовать?

добрый день подскажите пожалуйста как записать код для матричная клавиатура с функцией записи комбинации цифр на sd карт
добрый день. подскажите пожалуйста как записать код для матричной клавиатуры с функцией записи комбинации цифр на sd карте в ней я...

Мастям игральных карт присвоены порядковые номера. Вывести название соответствующих карт
Помогите решить задачу!!! Мастями игральных карт присвоены порядковые номера:1-пики;2-трефы;3-бубны;4-червы.Достоинству карт,старших...

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.04.2013, 10:53
Помогаю со студенческими работами здесь

Одномерный массив, подскажите как вывести, как просит в задании
После ввода с клавиатуры произвольного одномерного массива целых чисел (в пределах знакового целого типа) вывести на экране нечетные из них...

Подскажите, пожалуйста, как вывести на экран двумерный массив
Нужно вывести двумерный массив , состоящий только из 6, т.е. 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 6 и потом...

Подскажите пожалуйста, как правильно вывести,сформировать массив из задания
Дан массив С из 16 элементов.Нужно:проинициализировать массив С, вывод промежуточных данных и массивов на экран. а) Сформировать массив...

Api яндекс карт
проще говоря у меня есть карта с меткой, мне надо её удалить и поставить новую(напишите пожалуйста пример удаления и установки новой метки...

Координаты яндекс карт
Вопрос по координатам яндекс карт В файле header.php задал исходные координаты карты &lt;script type=&quot;text/javascript&quot;&gt;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
1
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита табличной части. . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Функция заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru