Подтвердить что ты не робот

Создание объекта местоположения Android

Я использую класс Geocoder для извлечения нескольких объектов местоположения, используя следующий код:

Geocoder geocoder = new Geocoder(this, Locale.getDefault());
   List<Address> addresses = geocoder.getFromLocation(LATITUDE, LONGITUDE, 3);
   Address[] addresses_array = new Address[addresses.size()];

    addresses.toArray(addresses_array);
    for( int i = 0; i < addresses_array.length; i++ ){
       //create location object here
       locOBJ.setLatitude(LATITUDE);
       locOBJ.setLongitude(LONGITUDE);
    }

Кроме того, внутри forloop я пытаюсь dymanically создавать объекты местоположения для добавления в массив;

Как создать пустые объекты местоположения?

4b9b3361

Ответ 1

Предполагая, что вы ссылаетесь на android.location.Location, используйте конструктор, который берет строку поставщика и устанавливает ее в нужное вам положение.

Ответ 2

Это не совсем то, на что он предназначен, если вы хотите нарисовать материал на карте Google, вы можете посмотреть GeoPoint класс. Вы должны использовать класс GeoPoint при работе с объектами Map OverlayItem. Что вы планируете делать с объектами Location? Также вы должны выполнить вызов getFromLocation в потоке или AsyncTask, поскольку он выполняет вызов удаленного сервера.

используя класс GeoPoint.

Geocoder geocoder = new Geocoder(this, Locale.getDefault());
List<Address> addresses = geocoder.getFromLocation(LATITUDE, LONGITUDE, 3);
int size = addresses.size();
GeoPoint gp[] = new GeoPoint[size];
for(int i = 0; i<size; i++) {
   Address addr = addresses.get(i);
   gp[i] = new GeoPoint(addr.getLatitude()*1000000, 
                        address.getLongitude()*1000000);
}

Значения * 1000000, потому что GeoPoint хочет значения E6. Также поймите, что если совпадений нет, массив может быть длиной 0.