H
H
Harvey Specter2018-11-26 17:26:43
JavaScript
Harvey Specter, 2018-11-26 17:26:43

How to cache received data from the Yandex api geocoder?

Please tell me, I’m not strong either in the Yandex Maps API or in JS, on the WordPress website, getting objects on the map using the WordPress cycle is implemented to automatically add new objects through the WordPress admin panel. The request for one object looks like this:

ymaps.ready(init);

function init() {
    var myMap = new ymaps.Map('map', {
        center: [55.753994, 37.622093],    // поменяйте местоположение центрирования карты, можно воспользоваться сервисом https://constructor.maps.yandex.ru/location-tool/
        zoom: 11,
        controls: [/*'smallMapDefaultSet'*/]
    });			 
       
       // Поиск координат центра значения нашей переменной js_ad.
    ymaps.geocode('ул. Сущевская 29', {
        /**
         * Опции запроса
         * @see https://api.yandex.ru/maps/doc/jsapi/2.1/ref/reference/geocode.xml
         */
        // Сортировка результатов от центра окна карты.
        // boundedBy: myMap.getBounds(),
        // strictBounds: true,
        // Вместе с опцией boundedBy будет искать строго внутри области, указанной в boundedBy.
        // Если нужен только один результат, экономим трафик пользователей.
        results: 1
    }).then(function (res) {
            // Выбираем первый результат геокодирования.
            var firstGeoObject = res.geoObjects.get(0),
                // Координаты геообъекта.
                coords = firstGeoObject.geometry.getCoordinates(),
                // Область видимости геообъекта.
                bounds = firstGeoObject.properties.get('boundedBy');

            // Добавляем первый найденный геообъект на карту.
            myMap.geoObjects.add(firstGeoObject);
            // Масштабируем карту на область видимости геообъекта.
           

            /**
             * Если нужно добавить по найденным геокодером координатам метку со своими стилями и контентом балуна, создаем новую метку по координатам найденной и добавляем ее на карту вместо найденной.
             */
            
             var myPlacemark = new ymaps.Placemark(coords, {
              hintContent: 'Место',
             balloonContent: "Место 1",
             }, {
             	iconLayout: 'default#image',
            // Своё изображение иконки метки.
            iconImageHref: '/land_img/logo-1.png',
            // Размеры метки.
            iconImageSize: [60, 60],
            // Смещение левого верхнего угла иконки относительно
            // её "ножки" (точки привязки).
            iconImageOffset: [-40, -50]
             });

             myMap.geoObjects.add(myPlacemark);


        });


With the help of a loop, such an entry is duplicated in the number of addresses entered in the admin panel. I looked at the documentation, I did not find anything more sensible "just cache the received data from the geocoder". What needs to be changed to cache the results, for example, for a day?

Answer the question

In order to leave comments, you need to log in

Didn't find what you were looking for?

Ask your question

Ask a Question

731 491 924 answers to any question