Страница 1 из 1

SAS -> GPSMapEdit

СообщениеДобавлено: 06 фев 2012, 23:24
vasketsov
Господа коллеги, спасите.
Есть функция, которая (для конкретной карты, будем считать что zmp известно) по географическим координатам прямоугольника и его размеру в пикселях на экране вернёт зум, на котором сие может наблюдаться (с округлением наверх для промежуточных значений)?
Или придётся от обратного перебирать зумы, покуда нужное "разрешение" не получится?

Исходная задача - по прямоугольнику известного размера width x height и координатам lat1, lat2, lon1, lon2 определить тайлы, которые нужно отображать (без растяжения, сжимать можно, пропуски тупо пропускаем) и нарисовать их прямо на dc: HDC;

Re: Зум по координатам

СообщениеДобавлено: 07 фев 2012, 11:25
vdemidov
Ничего готового нет.

Re: Зум по координатам

СообщениеДобавлено: 07 фев 2012, 15:41
vasketsov
Изменил логику, зум выбирается заранее, даже прикольней получилось.
И тайлы выбираются через GeoConvert: ICoordConverter вполне себе отличненько.
Осталось понять, как картинку с TCustomBitmap32 нарисовать на HDC dc.

Re: Зум по координатам

СообщениеДобавлено: 07 фев 2012, 15:53
vdemidov
Скопируйте ее, а точнее, сразу получайте в TBitmap32. Там есть метод DrawTo:
Код: Выделить всё
    procedure DrawTo(hDst: Cardinal; DstX, DstY: Integer); overload;
    procedure DrawTo(hDst: Cardinal; const DstRect, SrcRect: TRect); overload;
    procedure TileTo(hDst: Cardinal; const DstRect, SrcRect: TRect);

Re: Зум по координатам

СообщениеДобавлено: 07 фев 2012, 16:14
vasketsov
Точно, сбило с толку создание именно кастомной битмапки внутри процы, где тайлы рисуются.
Сделал через TBitmap32.
Теперь у меня GPSMaрEdit безо всяких регистраций и взломов показывает тайлы из кэша саса.
Руками в GME меняется зум и карта.
На картинке - спуник с nokia map creator-а внути GME.
Не знаю только чего делать с белой полоской, ковыряться или забить, если тайл не входит сверху целиком, почему-то не обрезается и не рисуется.
upd. Белую полоску победил уменьшением на 1 значения Bottom после LonLatRect2TileRect. То ли так и задумано, то ли баг.

Re: SAS -> GPSMapEdit

СообщениеДобавлено: 10 ноя 2012, 11:11
Gma
Из обсуждения я понял только, что посмотреть из ME на слои SAS стало возможно. Не понял, как это сделать. Увы, я не разработчик, я простой пользователь. Объясните, пожалуйста, попроще :) как сделать этот инструмент?

Re: SAS -> GPSMapEdit

СообщениеДобавлено: 10 ноя 2012, 13:59
Niki
на форуме DLL где то лежат. их нуна зарегить в системе и все

Re: SAS -> GPSMapEdit

СообщениеДобавлено: 11 ноя 2012, 20:00
vasketsov
Gma писал(а):Объясните, пожалуйста, попроще :) как сделать этот инструмент?

Во-первых, не слои, а карты и снимки (то есть кроме слоёв).
Во-вторых, делать ничего не надо, всё уже сделано. Тут.