2017-01-16 2 views
1

У меня есть сервер, на котором хранится информация о тысячах маркеров google maps по всему миру. Теперь я пытаюсь отобразить их в своем приложении для Android. , очевидно, мне не нужно отображать сразу все маркеры, но только там, где пользователь смотрит на определенный зум. im, используя json-файл с сервера для отправки маркеров, но я еще не понял, какой самый эффективный способ загрузить их по мере необходимости. Спасибо!Каков самый эффективный способ загрузки маркеров карт Google с сервера

ответ

0

Вы можете получить LatLng позиции центра карты Google. Затем вы можете отправить позицию на свой сервер и рассчитать точки, которые ближе к определенному расстоянию, и только вернуть их.

использовать что-то вроде этого:

mGoogleMap.setOnCameraChangeListener(new GoogleMap.OnCameraChangeListener() { 
      @Override 
      public void onCameraChange(CameraPosition cameraPosition) { 
       LatLng latLng = cameraPosition.target; 

       mRepository.requestPointsNearPosition(latLng) 
      } 
     }); 

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

Может быть, вы можете использовать ручку, чтобы убедиться, что пользователь прекращает перемещать карту для 0,5са обработчик только вызвать действие с картой перестает двигаться ... другим он отменяет себя, если карта перемещается снова

+0

это то, что я понимаю, но как правильно назвать эту функцию? Я, хотя это не будет эффективно делать запрос на сервер каждый раз, когда пользователь перемещает центр карты – Assaf1995

+0

Я думаю, что то, что плохо делать. Спасибо! – Assaf1995

0

Определите масштаб текущего пользователя и круговую область вокруг центра, которая в несколько раз больше, чем пользователь может видеть. Загрузите маркеры для этого региона. Каждый раз, когда пользователь перемещает карту, вы проверяете, относится ли новая перспектива к этому региону, нарисуйте новый круг и загрузите значки для области, не включенной в предыдущий круг.

+0

Спасибо, но если, например, пользователь прокручивает карту на другую сторону земного шара, значит ли это, что больным приходится загружать весь этот контент? – Assaf1995

Смежные вопросы