Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 16.08.2016, 13:25
Новичок на форуме
Отправить личное сообщение для SuperBenza Посмотреть профиль Найти все сообщения от SuperBenza
 
Регистрация: 27.03.2013
Сообщений: 7

API карт гугла и яндекса, как подгружать много меток?
Необходимо на карту добавить много меток, так сказать обозначить разные адреса!
Адресов очень много! Есть ли возможность загрузить на яндекс в какой нибудь панели управления яндекса координаты этих точек на карте? Чтобы они отображались при перемещении по карте?

Адресов много и если их все в JS добавлять то код получится неподьемный!

Как сделать так чтобы загружались метки на видимую часть карты, а при перемещении по карте они подгружались автоматически? То есть посетитель смотрит определенный район города и видит адреса на карте, и если клиент переместиться по карте в другой город, там тоже должны отображаться адреса. А подгружать заранее в браузер посетителя все метки, всю карту РФ, нецелесообразно... Каждому посетителя в браузер выкидывать по 100мб JS-кода? который будет содержать тысачи программных инструкций для размещения меток на карте?
Ответить с цитированием
  #2 (permalink)  
Старый 16.08.2016, 16:58
Профессор
Отправить личное сообщение для Dilettante_Pro Посмотреть профиль Найти все сообщения от Dilettante_Pro
 
Регистрация: 27.11.2015
Сообщений: 2,899

SuperBenza,
Для Google Maps Api по событию bounds_changed использовать метод
getBounds()
Return Value: LatLngBounds
Returns the lat/lng bounds of the current viewport. If more than one copy of the world is visible, the bounds range in longitude from -180 to 180 degrees inclusive. If the map is not yet initialized (i.e. the mapType is still null), or center and zoom have not been set then the result is null or undefined.
LatLngBounds(sw?:LatLng|LatLngLiteral, ne?:LatLng|LatLngLiteral) Constructs a rectangle from the points at its south-west and north-east corners.
И запрашивать из бд маркеры, лежащие в этой зоне и отображать их.
Также полезно при большом количестве маркеров использовать кластеризацию.

Последний раз редактировалось Dilettante_Pro, 16.08.2016 в 17:07.
Ответить с цитированием
  #3 (permalink)  
Старый 05.10.2016, 12:03
Интересующийся
Отправить личное сообщение для andrey3681 Посмотреть профиль Найти все сообщения от andrey3681
 
Регистрация: 30.06.2016
Сообщений: 20

Хочу добавить маркеры выбранных станций метро (массив arr_metro) и маркеры квартир (массив array_coordinates), если первыми добавлять маркеры метро то маркеры квартир не добавляются и наоборот В чем проблема?

function initMap(array_coordinates, array_marker_info, arr_metro) {
var map;
map = new google.maps.Map(document.getElementById('map_canvas2'), {
    center: {lat: 55.7522200, lng: 37.6155600},
    zoom: 12,
    scrollwheel: false
});
var metro = [];
var col_metro = arr_metro.length;
for(var i = 0; i <= col_metro; i++) {
    var ll = arr_metro[i].split(',');
    var lng = ll[1];
    if(lng.search(';') != -1) {
        lng = lng.replace(';', '');
    }
    var coordinates_metro = new google.maps.LatLng(ll[0], lng);
        metro[i] = new google.maps.Marker({
        position:coordinates_metro,
        map: map,
        title: "Метро",
        visible: true,
        icon: 'images/metro_flag.png'
    });
}
var markers = [];
var infowindow = [];
var col = array_coordinates.length;
for (var i = 0; i <= col; i++) {
    infowindow[i] = new google.maps.InfoWindow({ 
        content: array_marker_info[i]
    });
    var ll = array_coordinates[i].split(',');
    var latlng = new google.maps.LatLng(ll[0], ll[1]);
        markers[i] = new google.maps.Marker({
        position:latlng,
        map: map,
        title: array_coordinates[i],
        animation: google.maps.Animation.DROP,
        visible: true,
        icon: 'images/beachflag.png'
    });
    setInfoWindowHandlers(i);
}

function setInfoWindowHandlers(i) {
    markers[i].addListener('click', function() {
        console.log(i);
        infowindow[i].open(map, markers[i]);
    });
}}

Последний раз редактировалось andrey3681, 05.10.2016 в 13:50.
Ответить с цитированием
  #4 (permalink)  
Старый 05.10.2016, 12:16
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,103

andrey3681,
не бывает элементов массива с индексом равной длине массива!!!
Ответить с цитированием
  #5 (permalink)  
Старый 05.10.2016, 13:50
Интересующийся
Отправить личное сообщение для andrey3681 Посмотреть профиль Найти все сообщения от andrey3681
 
Регистрация: 30.06.2016
Сообщений: 20

Где Вы такое увидели?!
Ответить с цитированием
  #6 (permalink)  
Старый 05.10.2016, 14:35
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,103

andrey3681,
строка 10 и строка 28
Ответить с цитированием
  #7 (permalink)  
Старый 05.10.2016, 15:15
Интересующийся
Отправить личное сообщение для andrey3681 Посмотреть профиль Найти все сообщения от andrey3681
 
Регистрация: 30.06.2016
Сообщений: 20

col_metro - количество координат в массиве, цикл будет выполнятся пока i будет меньше или равно количеству координат в массиве.

arr_metro[0] - первая пара координат разделенная запятой
arr_metro[1] - вторая пара координат разделенная запятой и т.д.

Как мне получить поочерёдно все элементы массива??
Ответить с цитированием
  #8 (permalink)  
Старый 05.10.2016, 15:47
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,103

Сообщение от andrey3681
или равно количеству координат в массиве.
Сообщение от рони
не бывает элементов массива с индексом равной длине массива!!!
исправьте указанные строки, уберите =
Ответить с цитированием
  #9 (permalink)  
Старый 05.10.2016, 16:00
Интересующийся
Отправить личное сообщение для andrey3681 Посмотреть профиль Найти все сообщения от andrey3681
 
Регистрация: 30.06.2016
Сообщений: 20

Убрал! Ничего не изменилось
Ответить с цитированием
  #10 (permalink)  
Старый 05.10.2016, 16:08
Аватар для рони
Профессор
Отправить личное сообщение для рони Посмотреть профиль Найти все сообщения от рони
 
Регистрация: 27.05.2010
Сообщений: 33,103

andrey3681,
делайте макет или ссылку
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Google Maps API, как добавить текст к маркеру? drpozitiff Библиотеки/Тулкиты/Фреймворки 9 05.09.2016 11:35
js api, как у гугла и яндекса torsar Общие вопросы Javascript 4 17.05.2016 21:14
Как вы относитесь к наркоманам? Maxmaxmaximus7 Оффтопик 7 05.02.2014 13:29
Посоветуйте как улучшить код для работы с history api [ jquery + js + history api ] Geo Ваши сайты и скрипты 0 12.01.2014 00:41
Управление скроллом "а-ля тач" HonesT Элементы интерфейса 2 27.08.2013 14:25