Здравствуй дорогой LOR. Я вроде не извращенец, но тут мне подфартило.
Описываю ситуацию. Два года назад я решал эту проблему, но прошлые работодатели упорно не хотят давать взглянуть в код, говоря что это их технологии, а сейчас мне нужно написать то же самое, но времени почти нет. В тот раз я решал проблему на фултайм 2 недели.
Проблема в следующем. Есть набор маркеров на карте (1-100). Вычисляем максимальную и минимальную (Lat,Lon), определяем прямоугольник в который входят все точки. Получилась фигура например 100 на 200 километров. Доступная площадь экрана 800 на 600 пикселей.
Теперь нужно посчитать ZoomLevel, чтобы все точки гарантированно попадали в поле видимости.
И тут начинается темный лес.
Я не вспомню как я пользовался этим
http://wiki.openstreetmap.org/wiki/Slippy_map_tilenames
и этим
http://wiki.openstreetmap.org/wiki/Zoom_levels
для расчетов.
Вроде нужно определить DPI экрана. Как это сделать?
Далее нужно связать DPI и максимальное расстояние которое нужно отобразить. Тоже пока не понял.
После этого можно выйти на ZoomLevel. Хорошо если кому то все понятно, помогите разобраться и мне. Обещаю код написанный мной оставить здесь для потомков.