1

Remote API Поиск геозон по имени

Topic: Remote API Поиск геозон по имени

Подскажите возможен ли поиск геозон по имени core/search_items?
Если использовать параметры
$params=array(
            "spec"=>array(
                "itemsType"=>"avl_resource",                /* type of object to look for - unit */
                "propName"=>"sys_name",                /* search by name - "sys_name" */
                "propValueMask"=>ИМЯ,                /* asterisk means to find units with any names  */
                "sortType"=>""                        /* empty value means to sort results by name */
            ),
            "force"=>1,                                /* cache is not used */
            "flags"=>0x1000,                            /* object flags to be returned */
            "from"=>0,                                /* starting index for returning result */
            "to"=>0
);
То поиск идет по имени аккаунта. Какой параметр поставить в propName, чтобы искать по имени геозоны?
В техподдержке посоветовали использовать метод update_data_flags
{
        "spec":[                        /* array of requests to the server */
                {
                        "type":"type"   
                        "data":"avl_resource",  /* item ID(s) or type depending on the previous parameter */
                        "flags": значние_флага, /* укажите флаг для получения геозон в формате UINT */
                        "mode":0       
                }
        ]
}
Но в итоге я получаю весь список геозон, а мне нужно только те, имена которых подходят под маску.

2

Remote API Поиск геозон по имени

Re: Remote API Поиск геозон по имени

A_XEL_ wrote:

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

A_XEL_, с помощью core/search_items получаете все геозоны и отфильтровываете по имени.

3

Remote API Поиск геозон по имени

Re: Remote API Поиск геозон по имени

nevl wrote:

A_XEL_, с помощью core/search_items получаете все геозоны и отфильтровываете по имени.

nevl это именно то, чего A_XEL_ хотел бы избежать. Фильтрация, сортировка и пейджинг должны проводиться на сервере. Я пока не совсем профессионал в Remote API, но до сих пор таких возможностей не видел. А надо бы их встроить в следующую версию. Так будет во много раз экономичнее, быстрее и эргономичнее. Что вы думаете по этому поводу?

4

Remote API Поиск геозон по имени

Re: Remote API Поиск геозон по имени

kalaschnikow wrote:

nevl это именно то, чего A_XEL_ хотел бы избежать.

Я только подтвердил его ход мыслей.

kalaschnikow wrote:

А надо бы их встроить в следующую версию. Так будет во много раз экономичнее, быстрее и эргономичнее. Что вы думаете по этому поводу?

Время идёт. Wialon развивается. SDK развивается. Возможно такой функционал когда-нибудь и будет добавлен.

5

Remote API Поиск геозон по имени

(edited by kalaschnikow 28/09/2012 12:12:10)

Re: Remote API Поиск геозон по имени

nevl wrote:

Возможно такой функционал когда-нибудь и будет добавлен.

Напомнило строку из песни из известного советского сериала: "... если кто-то кое-где у нас порой..."

Скажите куда хотелку запостить. Чтоб было не "когда-нибудь" и "кое-где". Сюда?

6

Remote API Поиск геозон по имени

Re: Remote API Поиск геозон по имени

kalaschnikow
А какая религия запрещает искать на клиенте? Суть SDK в предоставлении данных для обработки их нужным именно Вам способом. Вы может желаете найти геозоны с именем по wildcard, regexp, совпадению гласных и т.д. Все методы реализовать мы не в силах, да и постоянный перебор данных на сервере при наличии производительного клиента нецелесообразен. Метод searchItem на данный момент применим только к классу Item`ов.

Мы и так всячески оптимизировали работу с геозонами - предусмотрели метод получения как сокращенного(без точек), так и полного JSON.

Alexander Adamovich
flespi
7

Remote API Поиск геозон по имени

Re: Remote API Поиск геозон по имени

LeXXaT wrote:

А какая религия запрещает искать на клиенте?

Никакая. Именно так и приходится делать. Ключевое слов тут "приходится".
Религия тут ни причем. А единственно программерская квалификация. Любой квалифицированный разработчик фильтрацию и сортировку будет проводить на сервере. Еще в запросе к базе данных. База данных в 999 случаях из 1000 сделает это и лучше и быстрее всего. Именно в запросе к базе данных можно отфильтровать и по wildcard и по регулярным выражениям. Не говоря уже о сортировке. И paging делается там же. Даже MySQL все это поддерживает.

LeXXaT wrote:

постоянный перебор данных на сервере при наличии производительного клиента нецелесообразен

Зачем такой overhead протаскивать через все ступени системы? Зачем пересылать тысячу записей через интернет (часто мобильный!) если вам нужно только три? Это настолько очевидно, что у меня и слов нет.
Если вам повезло и вы передаете данные на PC, то это не значит, что на него надо передавать мегабайты данных. Кроме того SDK для того и сделано, чтоб люди пользовались не только PC, а например еще и мобильным телефоном. Или я ошибаюсь?

8

Remote API Поиск геозон по имени

Re: Remote API Поиск геозон по имени

kalaschnikow wrote:

Скажите куда хотелку запостить. Чтоб было не "когда-нибудь" и "кое-где". Сюда?

Вы всё сами прекрасно знаете. Конечно же туда.

kalaschnikow wrote:

Кроме того SDK для того и сделано, чтоб люди пользовались не только PC, а например еще и мобильным телефоном. Или я ошибаюсь?

Вы правильно понимаете. Только скорости мобильного интернета уже не такие маленькие, чтобы не смочь принять "лишнюю" информацию. Да, и мощности мобильных устройств не уступают обычным стационарным компьютерам. В любом случае пишите предложение, а там уже будут высказаны "за" и "против".

9

Remote API Поиск геозон по имени

Re: Remote API Поиск геозон по имени

nevl wrote:

Вы всё сами прекрасно знаете. Конечно же туда.

Ну это не так очевидно. Форум то называется "Хотелки на Hosting", а у нас не только Hosting может быть, но и Wialon Kit, например. Хотя, с другой стороны, более подходящего форума нет. Я просто думал, что может легче к какому-то разработчику напрямую обратиться.

nevl wrote:

Только скорости мобильного интернета уже не такие маленькие, чтобы не смочь принять "лишнюю" информацию.

По-моему наоборот. Скорости любого интернета не такие уж большие, чтоб передавать лишнюю информацию. Кроме того, в мобильном интернете объем данных в определенных тарифах может быть ограничен. Ну да ладно напишу хотелку. Спасибо за ответ, nevl.

10

Remote API Поиск геозон по имени

Re: Remote API Поиск геозон по имени

kalaschnikow wrote:

Религия тут ни причем. А единственно программерская квалификация. Любой квалифицированный разработчик фильтрацию и сортировку будет проводить на сервере. Еще в запросе к базе данных. База данных в 999 случаях из 1000 сделает это и лучше и быстрее всего. Именно в запросе к базе данных можно отфильтровать и по wildcard и по регулярным выражениям. Не говоря уже о сортировке. И paging делается там же. Даже MySQL все это поддерживает.

Wialon это не СУБД в чистом виде, здесь нет возможности использовать гибкие SQL запросы. Каждый тип запроса должен быть реализован индивидуально. И как выше написал nevl: "Время идёт. Wialon развивается. SDK развивается. Возможно такой функционал когда-нибудь и будет добавлен."

Теперь позволю себе пофилософствовать, благо пятница на дворе smile

Согласен со всем, если речь идет о внутренней БД организации и клиенте. Тут разработчик распределяет функционал между БД и клиентом так как считает нужным. И хорошо если эта реализация используется в одной организации, без доступа к ней сторонних и неподготовленных программистов. Надеюсь вы прекрасно понимаете что лишние и ненужные запросы к БД забивают канал и нагружают систему. Нагрузка кратна количеству клиентов. Это теория. Теперь пример smile

Программист пишет на заказ систему мониторинга используя Wialon SDK. Он делает список геозон, а их у его клиента 10.000 wink
Как он может его обновлять?
1. При старте сайта запросить все геозоны, закэшировать, слушать события об изменении, и перерисовывать только изменённую(так работает Wialon Web).
2. Полностью обновлять список геозон с сервера каждые 10 секунд.

Допустим, он сделал по второму пункту и передал заказ клиенту. У клиента 100 одновременно работающих операторов. Теперь посчитаем сколько геозон читается из БД ежеминутно: 6 * 100 * 10000 = 6000000 ненужных транзакций, а у гуртама тысячи онлайн пользователей. До выхода SDK мы были подстрахованы нашим сайтом мониторинга, который был оптимизирован.

kalaschnikow wrote:

Зачем такой overhead протаскивать через все ступени системы? Зачем пересылать тысячу записей через интернет (часто мобильный!) если вам нужно только три? Это настолько очевидно, что у меня и слов нет.
Если вам повезло и вы передаете данные на PC, то это не значит, что на него надо передавать мегабайты данных. Кроме того SDK для того и сделано, чтоб люди пользовались не только PC, а например еще и мобильным телефоном. Или я ошибаюсь?

Вы смотрите с позиции одного клиента, а я с позиции системы в целом, с десятками тысячам клиентов. Всё упирается в аппаратную часть серверов, возможности которой далеко не безграничны, и мы стараемся обеспечить оптимальную производительность.
Подумайте, почему Google с её финансовыми возможностями ограничивает запросы к Maps API 25,000 в день? Остальное за большие деньги.

P.S. Топикастер даже не упоминал про трафик и производительность клиента, он просто хотел понять сортировать геозоны самому, либо Wialon это сделает за него smile а мы развели дискуссию wink

Alexander Adamovich
flespi
11

Remote API Поиск геозон по имени

(edited by kalaschnikow 28/09/2012 16:53:50)

Re: Remote API Поиск геозон по имени

LeXXaT wrote:

Допустим, он сделал по второму пункту и передал заказ клиенту.

Я вам скажу как он сделает. Он сделает в любом случае по второму пункту smile Только его система будет "слегка" тормозить. Раз уж вы даете человеку ружье (SDK), то имейте в виду, что он может выстрелить себе в ногу. И даже вам smile
Что касается миллионов запросов... Вы ж деньги за это берете. Вот и поставьте столько серверов сколько нужно. Гугл то за деньги ставит. Вот вы за деньги и поставьте.

12

Remote API Поиск геозон по имени

Re: Remote API Поиск геозон по имени

kalaschnikow, чтобы Google Maps работал для reverse geocoding с той же частотой запросов в секунду что и Gurtam Maps сейчас, ему нужно платить пару миллионов долларов в год.

А мы тут и геокодинг, и картинки и отчеты и т.д. и т.п… И всего-то за 120 евро в месяц.

Follow us on http://www.facebook.com/Gurtam
And take a look at new IoT backend by Gurtam.