У меня есть вид карты с тысячами элементов, которые я хочу загрузить на нее. Очевидно, я не могу загрузить их все, когда создается представление.андроидные карты асинхронная загрузка элементов наложения
Я предполагаю, что я должен загрузить их в асинхронном режиме в соответствии с тем, что отображается в данный момент ..
Как я могу загрузить только те элементы, расположенные в той части карты, отображаемой на экране?
Спасибо! это очень полезно. Но как я могу обрабатывать изменения на текущей видимой карте? – Matteo
Ваш MapView будет отправлять события, когда кто-то его перемещает. Во время этого обработчика событий вы будете использовать эту AsyncTask для загрузки данных из вашей базовой службы. Я бы получил эту работу, после того как она работает, я бы рассмотрел кэширование этих нагрузок в структуре данных, возможно, Map>. Он немного мешает, но он может сделать это намного быстрее. Затем вы проверите эту структуру данных, когда пользователь перетащит карту, чтобы узнать, уже ли вы загрузили эту плиту ... –
chubbsondubs
... На самом деле вам может быть проще назначить ваши накладки фиксированной ячейке сетки и загрузить эти ячеек сетки, которые пересекаются с текущим лат/длинным диапазоном MapView, как я иллюстрировал. Это упрощает кеширование сегментов фиксированной сетки. Вы можете загружать функции, которые существуют за пределами видимой области, но они будут небольшими. Максимальное количество ячеек сетки, которые вы загружаете, будет 4. Кроме того, оптимизация на бэкэнд проще, потому что ваша база данных может индексироваться по фиксированному ключу. Вам просто нужно преобразовать lat/long в номер ячейки сетки и загрузить функции, назначенные этому номеру ячейки сетки. – chubbsondubs