Получив место с координатами


Я дал координаты широты и долготы, и я хочу сделать объект местоположения с ними.Там нет конструктора, который принимает к двойникам, чтобы сделать местоположение, поэтому я попробовал так:

 Location l = null;
 l.setLatitude(lat);
 l.setLongitude(lon);

Но он падает. Есть какая-то другая идея?

4 7

4 ответа:

Просто создайте новое местоположение с новым местоположением ("reverseGeocoded"); вот так

GeoPoint newCurrent = new GeoPoint(59529200, 18071400);
        Location current = new Location("reverseGeocoded");
        current.setLatitude(newCurrent.getLatitudeE6() / 1e6);
        current.setLongitude(newCurrent.getLongitudeE6() / 1e6);
        current.setAccuracy(3333);
        current.setBearing(333);

Это происходит из-за невозможности вызова методов для несуществующего объекта.

Я предполагаю, что вы говорите об андроиде.местоположение.Местоположение?

Это обычно возвращается различными службами позиционирования Android. Что ты хочешь с ней сделать?

Вы хотите изменить геокодирование? Например, найти адрес для этой географической координаты?

Или вы хотите использовать его как "поддельную" позицию и передать ее другим приложениям?

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

Таким образом, Вы можете создать такое расположение:

Location l = new Location("network");
Но я не думаю, что это приведет к чему-то, что вы хотите иметь.

Вот ссылка на документацию:

Https://developer.android.com/reference/android/location/Location.html#Location%28java.lang.String%29

Location l = new Location("any string"); 
l.setLatitude(lat);
l.setLongitude(lon);

Попробуйте это:

public double lat;  
public double lon;  

public void onLocationChanged(Location loc)  
{  
lat=loc.getLatitude();  
lon=loc.getLongitude();  
Toast.makeText(getBaseContext(),"Latitude:" + lat +Longitude"+lon,Toast.LENGTH_LONG).show();    
}