SASGIS

Веб-картография и навигация

SAS -> GPSMapEdit

Форум для обсуждения деталей разработки программы SAS.Планета

Модераторы: vdemidov, Tolik

SAS -> GPSMapEdit

Сообщение vasketsov » 06 фев 2012, 23:24

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

Исходная задача - по прямоугольнику известного размера width x height и координатам lat1, lat2, lon1, lon2 определить тайлы, которые нужно отображать (без растяжения, сжимать можно, пропуски тупо пропускаем) и нарисовать их прямо на dc: HDC;
Последний раз редактировалось vasketsov 07 фев 2012, 22:21, всего редактировалось 1 раз.
vasketsov
Специалист
 
Сообщения: 901
Зарегистрирован: 25 июл 2009, 21:15
Благодарил (а): 0 раз.
Поблагодарили: 198 раз.

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

Сообщение vdemidov » 07 фев 2012, 11:25

Ничего готового нет.
Чтобы понять программу, вы должны стать одновременно и машиной, и программой.
Аватара пользователя
vdemidov
Гуру
 
Сообщения: 1687
Зарегистрирован: 12 дек 2008, 13:10
Откуда: Киев
Благодарил (а): 191 раз.
Поблагодарили: 157 раз.

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

Сообщение vasketsov » 07 фев 2012, 15:41

Изменил логику, зум выбирается заранее, даже прикольней получилось.
И тайлы выбираются через GeoConvert: ICoordConverter вполне себе отличненько.
Осталось понять, как картинку с TCustomBitmap32 нарисовать на HDC dc.
vasketsov
Специалист
 
Сообщения: 901
Зарегистрирован: 25 июл 2009, 21:15
Благодарил (а): 0 раз.
Поблагодарили: 198 раз.

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

Сообщение vdemidov » 07 фев 2012, 15:53

Скопируйте ее, а точнее, сразу получайте в 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);
Чтобы понять программу, вы должны стать одновременно и машиной, и программой.
Аватара пользователя
vdemidov
Гуру
 
Сообщения: 1687
Зарегистрирован: 12 дек 2008, 13:10
Откуда: Киев
Благодарил (а): 191 раз.
Поблагодарили: 157 раз.

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

Сообщение vasketsov » 07 фев 2012, 16:14

Точно, сбило с толку создание именно кастомной битмапки внутри процы, где тайлы рисуются.
Сделал через TBitmap32.
Теперь у меня GPSMaрEdit безо всяких регистраций и взломов показывает тайлы из кэша саса.
Руками в GME меняется зум и карта.
На картинке - спуник с nokia map creator-а внути GME.
Не знаю только чего делать с белой полоской, ковыряться или забить, если тайл не входит сверху целиком, почему-то не обрезается и не рисуется.
upd. Белую полоску победил уменьшением на 1 значения Bottom после LonLatRect2TileRect. То ли так и задумано, то ли баг.
Вложения
GME_with_SAS.jpg
vasketsov
Специалист
 
Сообщения: 901
Зарегистрирован: 25 июл 2009, 21:15
Благодарил (а): 0 раз.
Поблагодарили: 198 раз.

Re: SAS -> GPSMapEdit

Сообщение Gma » 10 ноя 2012, 11:11

Из обсуждения я понял только, что посмотреть из ME на слои SAS стало возможно. Не понял, как это сделать. Увы, я не разработчик, я простой пользователь. Объясните, пожалуйста, попроще :) как сделать этот инструмент?
Gma
Советчик
 
Сообщения: 427
Зарегистрирован: 10 апр 2011, 23:10
Благодарил (а): 35 раз.
Поблагодарили: 89 раз.

Re: SAS -> GPSMapEdit

Сообщение Niki » 10 ноя 2012, 13:59

на форуме DLL где то лежат. их нуна зарегить в системе и все
Niki
Постигающий Дао
 
Сообщения: 227
Зарегистрирован: 21 авг 2008, 14:18
Благодарил (а): 5 раз.
Поблагодарили: 16 раз.

Re: SAS -> GPSMapEdit

Сообщение vasketsov » 11 ноя 2012, 20:00

Gma писал(а):Объясните, пожалуйста, попроще :) как сделать этот инструмент?

Во-первых, не слои, а карты и снимки (то есть кроме слоёв).
Во-вторых, делать ничего не надо, всё уже сделано. Тут.
vasketsov
Специалист
 
Сообщения: 901
Зарегистрирован: 25 июл 2009, 21:15
Благодарил (а): 0 раз.
Поблагодарили: 198 раз.


Вернуться в Раздел для разработчиков программы SAS.Планета

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 4