2014-10-29 3 views
2

Я работаю над приложением, использующим карты Google. Могу ли я получить географическое местоположение определенной точки на экране? Например, у меня есть вид (кнопка, изображение и т. Д.) С позицией X и Y на экране. Я хочу знать географическое местоположение (широта и долгота) этой позиции (позиция просмотра). Конечно, эта позиция (X и Y) находится на карте.Получить географическое положение с местоположения на экране

+1

Что вы имеете в виду? Как опустить маркер и получить подробности об этом? – SeahawksRdaBest

+0

Я хочу получить широту и долготу точки на экране (x, y). Конечно, этот пункт находится на карте – kelvincer

ответ

4

Я нашел решение. Таким образом:

Projection projection = googleMap.getProjection(); 

// Returns the geographic location that corresponds to a screen location 
LatLng geographicalPosition = projection.fromScreenLocation(new Point(your_X, your_Y)); 

// Returns a screen location that corresponds to a geographical coordinate 
Point screenPosition = projection.toScreenLocation(new LatLng(your_latitude, your_longitude)); 

Дополнительная информация here.

+0

Но какова эта позиция экрана? Я тестировал его, и это дало мне странное значение для Y: около 5000. Это намного больше, чем значение высоты разрешения экрана –

-1

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

Например,

private GoogleMap mMap; 
mMap = ((MapFragment) getFragmentManager().findFragmentById(R.id.map)).getMap(); 
mMap.addMarker(new MarkerOptions() 
     .position(new LatLng(Your_Lat, Your_Lng)) 
     .title("My Marker") 
     .draggable(true)); 

После размещения его в любом месте вы хотите, вы можете получить маркеры новую широту и долготу, просто используя функцию положения. Что-то вроде this.

+0

Я обновил свой вопрос. – kelvincer

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