Отобразить подмножество точек из слоя Maps Engine
Я работаю над мобильным приложением и хотел бы реализовать функцию, позволяющую пользователям искать близлежащие магазины, которые участвуют в нашей программе. У нас есть общенациональная сеть, поэтому для простоты я хотел бы сделать что-то вроде показать им магазины в пределах X миль от их местоположения, ограничиваясь ближайшим N, если их слишком много.
Пока у меня есть тестовые таблицы, и я создал тестовые слои карты, и все это идет хорошо. Я могу делать запросы к своим таблицам и получать списки магазинов, соответствующих моим критериям, и это, кажется, тоже работает гладко.
У меня вопрос, есть ли хороший способ перейти из списка магазинов, выбранных с помощью звонка, как
GET .../tables/TABLE_ID/features?where=SEARCH_CRITERIA&key=KEY
к набору точек, наложенных на карту?
Мне кажется, что единственный способ сделать это в API - это сделать запрос, записать данные в файл, повторно загрузить этот файл, чтобы создать новую таблицу, использовать эту таблицу, чтобы создать новый слой, и, наконец, наложить новый слой. Но мне трудно поверить, что нет лучшего способа сделать то, что я хочу сделать.
Есть ли более простой способ, который я пропускаю в документации? Или какое-то другое решение там? Есть ли другой инструмент, кроме Maps Engine, который подойдет лучше?
1 ответ
Если вы создаете веб-приложение или гибридное приложение, вы можете использовать JavaScript API Карт, особенно с уровнем данных. Главное, что нужно понять, это то, что вызов API списка объектов в API Maps Engine возвращает данные в формате GeoJSON, а уровень данных принимает данные GeoJSON либо в виде чистого объекта JSON, либо в виде URL-адреса, который возвращает GeoJSON (то есть вызов API-интерфейса Maps Engine.).
К сожалению, в Android нет эквивалента слоя данных. Хорошей новостью является то, что (по крайней мере, для точечных данных) все еще довольно просто добавить свои собственные маркеры. Вам нужно будет:
- Выполните запрос GET, который вы указали в своем сообщении, чтобы получить ответ в формате JSON.
- Переберите данные ответа, особенно
features
массив возвращается на верхнем уровне. - Для каждой функции добавьте Маркер на свою карту.
Существует также клиент Java для Maps Engine, который вы могли бы использовать в своем приложении, чтобы упростить шаги 1 и 2.