• Как лучше создавать словари с ключами не в виде строки?

    VladimirZhid
    @VladimirZhid Автор вопроса
    И ошибся... )))) Что-то все так-же. Похоже что надо идти доки читать...
  • Как лучше создавать словари с ключами не в виде строки?

    VladimirZhid
    @VladimirZhid Автор вопроса
    Сделал как-то совсем не красиво:
    def create_serializable_data(movie: Movie):
        """
        Create serializable object from Movie
        :type movie: Movie
        :param movie: An instance of Movie
        :return:
        """
        result = movie.__dict__
        good_fileds = ["actors", "composers", "counties", "directors", "genres", "id", "producers", "profit_russia",
                       "profit_usa", "profit_world", "rating", "scenarios", "title", "title_original", "trailers", "year"]
        pop_keys = []
        for key in result.keys():
            if key not in good_fileds:
                pop_keys.append(key)
        for key in pop_keys:
            result.pop(key)
    
        return result
  • Как лучше создавать словари с ключами не в виде строки?

    VladimirZhid
    @VladimirZhid Автор вопроса
    aRegius: Окей) Спасибо. Пошел от обратного удаляю не входящие в список ключи.
  • Как лучше создавать словари с ключами не в виде строки?

    VladimirZhid
    @VladimirZhid Автор вопроса
    Иван Соломенников: Что приходит в функцию? экземпляр класса сторонней библиотеки. Если интересно, то вот линк на нее https://github.com/ramusus/kinopoiskpy
  • Как лучше создавать словари с ключами не в виде строки?

    VladimirZhid
    @VladimirZhid Автор вопроса
    Видимо не точно описал суть... получаю я что надо, вот только в result у меня не {key: value}, a {'key': value} вот и хотел узнать, может есть способ задать ключ не в виде строки. Может есть какие-нибудь методы в языке типа filter (как в js и.т.п). Заранее задавать массиву ключи как-то не хотелось бы.
  • Какой есть движок для "help" сервиса?

    VladimirZhid
    @VladimirZhid Автор вопроса
    Спасибо, скорее всего все-таки WP)
  • Как удобнее будет создать массив из строки типа "array_name[0]test_v[2]"?

    VladimirZhid
    @VladimirZhid Автор вопроса
    Так и сделал) Большое спасибо за ответ!
  • Как передать длинный JSON в скрипт на Python?

    VladimirZhid
    @VladimirZhid Автор вопроса
    И да, закодировал json трочку в base64 и с той стороны успешно поймал
  • Get запрос на node.js сервер с отправкой заголовков Range?

    VladimirZhid
    @VladimirZhid Автор вопроса
    Nc_Soft: Еще раз спасибо за совет! Сделал через nginx все кул...
  • Get запрос на node.js сервер с отправкой заголовков Range?

    VladimirZhid
    @VladimirZhid Автор вопроса
    Спасибо за совет! Сделал на nginx...
  • Get запрос на node.js сервер с отправкой заголовков Range?

    VladimirZhid
    @VladimirZhid Автор вопроса
    Nc_Soft: Спасибо за совет. И чувствую, что Вы правы.
  • Почему не идет обработка .each?

    VladimirZhid
    @VladimirZhid Автор вопроса
    Посмотрел через DevTools, на момент выполнения initialize, при создании коллекции, она еще пустая и моделей в ней нет. Как можно это исправить?
  • Проблеме с открытием балуна в objectmanager, поможете?

    VladimirZhid
    @VladimirZhid Автор вопроса
    forgotten: Спасибо!) Кстати, многое стало понятно после того как все-таки повторно изучил Руководство. И посмотрел пару видео из Яндекс.События, на хабре в комментах тоже много полезного нашлось.

    Прописал контент балуну принудительно(плейсхолдер), но меня на самом деле интересует именно открытие балуна, если оверлея на карте в момент перемещения к ней нет. Сейчас балун открывается через раз, хотя детектор на существование оверлея написан.

    Еще раз отправляю код:
    //Функция получения и показа балуна
    function get_show_balloon(marker_id, current_marker) {
        //TODO На данный момент данный аякс запрос полностью дублирует запрос для вывода списка в правой колонке, но в будущем сможет пригодиться + надо бы проверить рентабельность большого числа запросов или все делать в одном или как-то разделять. Если маркеры пришли по отрисованному полигону, то можно и сразу прописывать в них балуны? Экономия на колличестве запросов к серверу.
        //Получение контента балуна
        var marker_id_injson = {
            id: marker_id
        }
        //положение маркера
        var new_center = current_marker.geometry.coordinates;
        //преобразование строчки в число
        new_center[0] = parseFloat(new_center[0]);
        new_center[1] = parseFloat(new_center[1]);
        yMap_ob.setCenter(new_center, 15);
        //проверяем оверлай выбранного маркера
        var marker_overlay = markerManager.objects.overlays.getById(marker_id);
        //если есть оверлай, то добавляем балун
        if (marker_overlay) {
            add_balloon(false);
            console.log("has overlay");
        } else {
            //если оверлэя нет, то добавляем подписку на событие добавления оверлея
            var detector_overlays = markerManager.objects.overlays.events.group()
                .add("add", function (e) {
                    //если добавленный оверлей соответствует кликнутому маркеру то запускаем показ балуна
                    if (e.get("objectId") == marker_id) {
                        add_balloon(true);
                    }
                });
            console.log("not has overlay")
        }
        //функция добавления балуна
        function add_balloon(del_event) {
            //если передается команда удаления подписки на событие, подписка удаляется
            if (del_event === true) {
                //удалить подписку
                detector_overlays.removeAll();
            }
            //Проверяем, есть ли у маркера балун, если нет, то грузим, ели есть то открываем
            if (hasBalloonData(current_marker)) {
                markerManager.objects.balloon.open(marker_id);
            } else {
                $.ajax({
                    type: "POST",
                    url: "get_baloon.php",
                    dataType: "json",
                    data: marker_id_injson,
                    async: false,
                    success: function (data) {
                        //шаблон информации в балуне
                        //TODO change link
                        var balloon_content = "<a target='_blank' href='http://198.199.124.81/s_rent/catalog_full' class='balloon_content'><img src='img/list_img/1.jpg' alt=''><div class='balloon_desc'><span class='balloon_address'>Ул. " + data["street"] + " д. " + data["home_num"] + "</span><span class='balloon_info'>Площадь: " + data["squre_ciunt"] + "м² Комнат:" + data["room_count"] + "  Этаж: " + data["floor"] + "/" + data["flor_of"] + "</span></div></a>";
                        //Прописываем в объект маркера контент балуна
                        //current_marker.properties.balloonContent = balloon_content;
                        //Открываем балун у маркера
                        markerManager.objects.balloon.open(marker_id);
                    }
                });
            }
        }
    }


    И ссылочка на страницу: 198.199.124.81/map

    И еще, может я как-то могу настроить autoPan так, чтобы балун попадал в центр видимой области? И тогда мне только разобраться с зумом?
  • Проблеме с открытием балуна в objectmanager, поможете?

    VladimirZhid
    @VladimirZhid Автор вопроса
    forgotten: Через set не хочет меня слушать, вообще не вставляет, говорит что не является функцией
    Мод поменял
  • Проблеме с открытием балуна в objectmanager, поможете?

    VladimirZhid
    @VladimirZhid Автор вопроса
    forgotten: Основная сложность в документации это понять структуру, что и откуда приходит. Информации достаточно, примеров тоже но ориентироваться сложно. Есть множество менеджеров, вложеностей и.т.п вот именно обобщенной информациии, как по мне, не хватает.
    Может какой-то внутренний "толковый словарь" было бы неплохо, с простонародными терминами и объяснениями "для тупых"
  • Проблеме с открытием балуна в objectmanager, поможете?

    VladimirZhid
    @VladimirZhid Автор вопроса
    forgotten: И хочу спросить у Вас по поводу возможной проблемы, сделал сказанное Вами подобным способом:
    function get_show_balloon(marker_id, current_marker) {
        //TODO На данный момент данный аякс запрос полностью дублирует запрос для вывода списка в правой колонке, но в будущем сможет пригодиться + надо бы проверить рентабельность большого числа запросов или все делать в одном или как-то разделять. Если маркеры пришли по отрисованному полигону, то можно и сразу прописывать в них балуны? Экономия на колличестве запросов к серверу.
        //Получение контента балуна
        var marker_id_injson = {
            id: marker_id
        }
        //положение маркера
        var new_center = current_marker.geometry.coordinates;
        //преобразование строчки в число
        new_center[0] = parseFloat(new_center[0]);
        new_center[1] = parseFloat(new_center[1]);
        yMap_ob.setCenter(new_center, 15);
        //проверяем оверлай выбранного маркера
        var marker_overlay = markerManager.objects.overlays.getById(marker_id);
        //если есть оверлай, то добавляем балун
        if (marker_overlay) {
            add_balloon(false);
            console.log("has overlay");
        } else {
            //если оверлэя нет, то добавляем подписку на событие добавления оверлея
            var detector_overlays = markerManager.objects.overlays.events.group()
                .add("add", function (e) {
                    //если добавленный оверлей соответствует кликнутому маркеру то запускаем показ балуна
                    if (e.get("objectId") == marker_id) {
                        add_balloon(true);
                    }
                });
            console.log("not has overlay")
        }
        //функция добавления балуна
        function add_balloon(del_event) {
            //если передается команда удаления подписки на событие, подписка удаляется
            if (del_event === true) {
                //удалить подписку
                detector_overlays.removeAll();
            }
            //Проверяем, есть ли у маркера балун, если нет, то грузим, ели есть то открываем
            if (hasBalloonData(current_marker)) {
                markerManager.objects.balloon.open(marker_id);
            } else {
                $.ajax({
                    type: "POST",
                    url: "get_baloon.php",
                    dataType: "json",
                    data: marker_id_injson,
                    async: false,
                    success: function (data) {
                        //шаблон информации в балуне
                        //TODO change link
                        var balloon_content = "<a target='_blank' href='http://198.199.124.81/s_rent/catalog_full' class='balloon_content'><img src='img/list_img/1.jpg' alt=''><div class='balloon_desc'><span class='balloon_address'>Ул. " + data["street"] + " д. " + data["home_num"] + "</span><span class='balloon_info'>Площадь: " + data["squre_ciunt"] + "м² Комнат:" + data["room_count"] + "  Этаж: " + data["floor"] + "/" + data["flor_of"] + "</span></div></a>";
                        //Прописываем в объект маркера контент балуна
                        current_marker.properties.balloonContent = balloon_content;
                        //Открываем балун у маркера
                        markerManager.objects.balloon.open(marker_id);
                    }
                });
            }
        }
    }


    Пробовал различными способами, на всех вариантах результат похожий.
  • Проблеме с открытием балуна в objectmanager, поможете?

    VladimirZhid
    @VladimirZhid Автор вопроса
    Окей! Большое спасибо! Честно говоря, немного сложно разбираться у Вас в документации, многое дублируется и немного не понимаю всю структуру, иногда по несколько часов ищу что-то нужное(допустим markerManager.objects.setObjectOptions)
    *** не в обиду, как я уже написал в JS совершенно не силен.
    Зато отличная поддержка! Еще раз спасибо
  • Проблеме с открытием балуна в objectmanager, поможете?

    VladimirZhid
    @VladimirZhid Автор вопроса
    Кстати, проблема с перекидыванием в океан была решена отключением balloonAutoPan у менеджера.
  • Проблеме с открытием балуна в objectmanager, поможете?

    VladimirZhid
    @VladimirZhid Автор вопроса
    Вот ссылочка на JS: 198.199.124.81/map/map_app.js

    В функции show_balloon_marker(283стр), в ее конце я перемещаю область видимости карты к балуну и зумирую карту. Если точки находятся рядом, то работает все адекватно, т.к объекты присутствуют на карте, но если я перемещаюсь к отдаленной точке, то открытие балуна не происходит(пробовал ставить таймаут, но это не помогает)
    насколько я понимаю, это из-за того, что маркеры отрисовываются постепенно objectManager`ом

    В обсуждении, в клубе я добавил видео с проблемой.
    Повторная ссылка на видео: https://www.youtube.com/watch?v=aDlVKz6FTXc

    Заранее огромное спасибо, так же сейчас добавлю код функции в описание вопроса