Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Координаты видимой области внутри MapView #88

Closed
d-tarasov opened this issue Dec 4, 2012 · 5 comments
Closed

Comments

@d-tarasov
Copy link

Подскажите существует ли в текущей версии API способ узнать GeoPoint координаты видимой внутри MapView области.

У MapController'а есть метод getMapCenter(), позволяющий получить координаты центра карты, но как узнать координаты левого верхнего или правого нижнего угла?

@d-tarasov
Copy link
Author

Помимо GeoPoint существует класс ScreenPoint - являющийся представлением экранных координат. Т.о получив экранные координаты нужной точки их можно преобразовать в GeoPoint используя метод MapController#getGeoPoint(ScreenPoint)

Например

        ScreenPoint bottomRight = new ScreenPoint(mMapView.getRight(), mMapView.getBottom());
        GeoPoint bottomRightGP = mController.getGeoPoint(bottomRight);

@d-tarasov d-tarasov reopened this Dec 7, 2012
@d-tarasov
Copy link
Author

К сожалению, координаты GeoPoint, получаемые описанным выше способом, не совпадают с настоящим viewport. Т.е. если мы хотим получить координаты верхней правой точки карты, метод посчитает их, но они будут расположены чуть ниже, чем на самом деле (см. скриншот http://d.pr/i/DUVq). Поэтому полученный viewport как бы смещен вниз. Подскажите как победить данную проблему?

Кроме того класс MapController имеет методы Rect getViewport и setViewport(int, int, int, int) любое упоминание о которых отсутствует как в документации, так и в интернете в целом. Кто-нибудь может подсказать как их использовать?

@mksaint13
Copy link
Member

Если тебе нужны гео координаты то все просто

ScreenPoint leftTop = new ScreenPoint(0, 0);
GeoPoint leftTopGP = mController.getGeoPoint(leftTop);

ScreenPoint bottomRight = new ScreenPoint(mMapView.getWidth(), mMapView.getHeight());
GeoPoint bottomRightGP = mController.getGeoPoint(bottomRight);

@mksaint13
Copy link
Member

Так же getWidth(), getHeight() есть у

MapController

@d-tarasov
Copy link
Author

Спасибо, заработало

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants