Яндекс карта - как добавть метку на карте отдельной функцией
Привет всем.
Голову уже сломал ничего не получается Подскажите как добавить метки в не функции карты Внутри функции карты есть "addMarkers " он работает , а мне надо чтоб вне была функция добовления Пример отдельной функцией не получается function test2 () { при каждом срабатывании функции test2 () ну или я их размножу с разными массивами , чтоб добавлялись метки Подскажите, код мой ниже <!DOCTYPE html> <html> <head> <meta http-equiv="Content-Type" content="text/html;charset=windows-1251" /> <script src="https://api-maps.yandex.ru/2.1/?lang=ru_RU&apikey=74c63257-6b31-44f8-9def-5768c734d1a5" type="text/javascript"></script> <script src="https://yandex.st/jquery/2.2.3/jquery.min.js" type="text/javascript"></script> <script type="text/javascript"> ymaps.ready(function () { var myMap = new ymaps.Map('map', { center: [43.238439,76.94549], zoom: 16, behaviors: ['default', 'scrollZoom']}, {searchControlProvider: 'yandex#search'} ); //Переназначение кнопок $('#addMarkers').bind('click', addMarkers); $('#removeMarkers').bind('click', removeMarkers); // Создаем кластеризатор c красной иконкой (по умолчанию используются синяя). // и добавляем кластеризатор на карту. var clusterer = new ymaps.Clusterer({preset: 'islands#redClusterIcons'}); myMap.geoObjects.add(clusterer); // Создаем коллекцию геообъектов. // и добавляем коллекцию геообъектов на карту. collection = new ymaps.GeoObjectCollection(); myMap.geoObjects.add(collection); //+-----------------------------+ //| Генерация меток на карте | //+-----------------------------+ function addMarkers () { bounds = myMap.getBounds(); //+---------------------------------------------+ //| Генерируем метки из javascript-массив меток | //+---------------------------------------------+ points = [ [43.2399,76.9323,11], [43.2355,76.9383,22], [43.2383,76.9321,33], [43.2422,76.9388,44], [43.2368,76.9351,55], [43.2405,76.9526,66], [43.2399,76.9394,77], [43.2358,76.9434,88] ] var newPlacemarks = []; for(var i = 0, len = points.length; i < len; i++) { myPlacemark = new ymaps.Placemark([points[i][0],points[i][1]], {iconContent: points[i][2],balloonContent: 'Содержимое балуна'}, {preset:'islands#blueStretchyIcon'}); newPlacemarks.push(myPlacemark); } // Размер ячейки кластеризатора = 80. clusterer.options.set({gridSize: 80}); // Флаг, показывающий, нужно ли кластеризовать объекты. useClusterer = document.getElementById("useClusterer").checked; if (useClusterer) { // Если используется кластеризатор, то добавляем кластер на карту, // Добавлеяем массив меток в кластеризатор. clusterer.add(newPlacemarks); } else { // если кластеризатор не используется // добавляем на карту коллекцию геообъектов. for (var i = 0, l = newPlacemarks.length; i < l; i++) { collection.add(newPlacemarks[i]); } } //Спозиционируем карту так, чтобы на ней были видны все объекты. myMap.setBounds(clusterer.getBounds(), {checkZoomRange: true}); } //+-----------------------------+ //| Удаление всех меток с карты | //+-----------------------------+ function removeMarkers () { clusterer.removeAll(); // Удаляем все метки из кластеризатора. collection.removeAll(); // Удаляем все метки из коллекции. } }); function test2 () { ymaps.addMarkers (); /*var newPlacemarks = []; myPlacemark = new ymaps.Placemark([43.2399,76.9394], {iconContent: '77',balloonContent: 'Содержимое балуна'}, {preset:'islands#blueStretchyIcon'}); newPlacemarks.push(myPlacemark); //ymaps.clusterer.add(newPlacemarks); ymaps.myMap.geoObjects.add(newPlacemarks); collection = new ymaps.GeoObjectCollection(); ymaps.myMap.geoObjects.add(collection);*/ } </script> </head> <body style="margin: 0px;padding: 0px;"> <input type="button" value="Тест 1" onclick="test1();return false;" > <input type="button" value="Тест 2" onclick="test2();return false;" > <BR> <input type="checkbox" id="useClusterer" checked> Использовать кластеризатор <input type="button" value="Добавить на карту" id="addMarkers"> <input type="button" value="Удалить все метки" id="removeMarkers"> <input type="textbox" id="id_points" value="[43.2399,76.9323,11], [43.2355,76.9383,22], [43.2383,76.9321,33], [43.2422,76.9388,44],[43.2368,76.9351,55], [43.2405,76.9526,66], [43.2399,76.9394,77], [43.2358,76.9434,88]"> <div id="map" style="position:fixed;width:100%; height:100%"></div> </body> </html> |
var mapPromise = new Promise(function (resolve, reject) { ymaps.ready(function () { var mapInstance = new ymaps.Map('map', { center: [43.238439, 76.94549], zoom: 16, behaviors: ['default', 'scrollZoom'] }, {searchControlProvider: 'yandex#search'}); resolve(mapInstance); }); }); function addMarkers() { mapPromise.then(function (mapInstance) { // mapInstance - ссылка на инстанс я.карт // используя mapInstance добавляйте на карту нужные элементы }); }; P.S. касаемо вашего форматирования: https://beautifier.io/ |
Часовой пояс GMT +3, время: 21:22. |