Портирование приложения iOS на Android и использование Google Maps Android API v2.
Приложению необходимо нанести на карту наложение тепловой карты.
Пока, похоже, лучший вариант - использовать TileOverlay
и реализовать пользовательский TileProvider
. В методе getTile
мой метод задан x, y и zoom, и ему нужно вернуть растровое изображение в форме Tile
. Все идет нормально.
У меня есть массив элементов тепловой карты, которые я буду использовать для рисования радиальных градиентов на растровое изображение, каждое с лат/длинным. У меня возникают проблемы со следующими двумя задачами:
- Как определить, содержит ли плитка, представленную x, y и зумом, значение lat/long элемента heatmap?
- Как перевести lat/long элемента heatmap в координаты x/y растрового изображения.
Благодарим за помощь!
UPDATE
Благодаря ответу MaciejGórski ниже и выполнению marcin я смог получить ответы на 1-й половине моего вопроса, но мне все еще нужна помощь со второй частью. Чтобы уточнить, мне нужна функция, чтобы вернуть x/y координаты плитки для заданного lat/long. Я пробовал обратить вспять вычисления MaciejGórski и marcin ответ без везения.
public static Point fromLatLng(LatLng latlng, int zoom){
int noTiles = (1 << zoom);
double longitudeSpan = 360.0 / noTiles;
double mercator = fromLatitude(latlng.latitude);
int y = ((int)(mercator / 360 * noTiles)) + 180;
int x = (int)(latlng.longitude / longitudeSpan) + 180;
return new Point(x, y);
}
Любая помощь приветствуется!