SASGIS

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

Чего вы хотите?

программа для загрузки и просмотра спутниковых снимков Земли, Луны, Марса предоставленных сервисами Google Maps и Космоснимки. Возможность работы с GPS приёмником.

Модератор: Tolik

Re: Чего вы хотите?

Сообщение sergtch » 08 ноя 2008, 18:31

Добрый вечер.

Вот сейчас мне не хватает двух мелочей:
1. Возможности отключения некоторых масштабов, т.е. при увеличении, они шли например в таком порядке 1,2,6,10,18 и наоборот.
2. Кнопки "Стоп/пуск", которая "тот-час останавливает"/продолжает работу с "чем-то там внутри" и переключается на работу с интерфейсом т.е. со мной :)
"Чем-то там внутри" - я обозвал моменты, когда она "подвисает" и приходится ждать ее реакции на свои действия. Такое вот неопределенное желание ;)
Всего хорошего.
sergtch
Новичок
 
Сообщения: 2
Зарегистрирован: 20 июл 2008, 16:42
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: Чего вы хотите?

Сообщение Hellraiser » 09 ноя 2008, 02:11

Карту Гуртама в слои.
Изображение
Аватара пользователя
Hellraiser
Новичок
 
Сообщения: 23
Зарегистрирован: 29 сен 2008, 14:31
Откуда: Борисов
Благодарил (а): 3 раз.
Поблагодарили: 0 раз.

Re: Чего вы хотите?

Сообщение angoo » 10 ноя 2008, 12:21

Вот еще мысль...
Когда программа работает с кэшем, то, например, при просмотре уровня 16 отсутсвующего в кэше, она пытается увеличить любой из предыдущих (15,14, 13 и т.д.). Однако может быть уже какой либо из следующих уровней (17,18 и др.). Отображение карты при отсутсвии уровня в кэше было бы более качественным если бы SAS.Планета проверяла наличие более детальных уровней и снимок для просмотра исходя из их наличия.
(про генерацию уровней из имеющихся в курсе.) имеется ввиду только просмотр.
angoo
Новичок
 
Сообщения: 3
Зарегистрирован: 29 окт 2008, 15:06
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: Чего вы хотите?

Сообщение feya » 10 ноя 2008, 12:45

Hellraiser
Всмысле?
angoo
Больно тормознуто будет, т.к. например на активном масштабе надо грузить примерно 4*5=20 тайлов (в зависимости от разрешения) а если брать след уровень то придется грузить уже 80 тайлов. т.е. тормоз увеличится в 4 раза, а если учесть что и сейчас прога работает не особо быстро такое добавление нереально.
http://sasgis.org | SAS.Планета | SASPlanet
Аватара пользователя
feya
Гуру
 
Сообщения: 2034
Зарегистрирован: 13 июл 2008, 10:45
Благодарил (а): 5 раз.
Поблагодарили: 56 раз.

Re: Чего вы хотите?

Сообщение Hellraiser » 10 ноя 2008, 15:26

Карта Гуртама в png на ней по моему больше инфы и детальней она и скачивается быстрее чем у слоя BOTH. Если её наложить на основную карту используя белый цвет прозрачным, может было бы наглядней? Попробуйте у себя может эффект будет.
Изображение
Аватара пользователя
Hellraiser
Новичок
 
Сообщения: 23
Зарегистрирован: 29 сен 2008, 14:31
Откуда: Борисов
Благодарил (а): 3 раз.
Поблагодарили: 0 раз.

Re: Чего вы хотите?

Сообщение feya » 10 ноя 2008, 15:42

Hellraiser
Ну там же не только белый цвет фоновый а еще есть серый зеленый синий и др. Надо будет подумать над этим но не в ближайшее время.
http://sasgis.org | SAS.Планета | SASPlanet
Аватара пользователя
feya
Гуру
 
Сообщения: 2034
Зарегистрирован: 13 июл 2008, 10:45
Благодарил (а): 5 раз.
Поблагодарили: 56 раз.

Re: Чего вы хотите?

Сообщение glaz » 11 ноя 2008, 13:50

Хотелось бы иметь возможность изменять цвет своих треков в настройках. и изменять их описание не окрывая вручную в блокноте.
glaz
Новичок
 
Сообщения: 3
Зарегистрирован: 17 окт 2008, 19:28
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: Чего вы хотите?

Сообщение svp » 12 ноя 2008, 15:10

Хотелось бы иметь возможность видеть последнее сделанное выделение.
Реализуется просто:
    1. Последнее сделанное выделение всегда и немедленно сохраняется в файл, например, LastSelection.kml
    2. Добавляется новый слой, который всегда отображает только LastSelection.kml.
Сохранить выделение в KML можно просто подставив список координат в шаблон:
Код: Выделить всё
<?xml version="1.0" encoding="windows-1251"?>
<kml xmlns="http://earth.google.com/kml/2.2">
<Document>
  <Placemark>
    <name>Last Selection</name>
    <Polygon>
      <outerBoundaryIs>
        <LinearRing>
          <coordinates>
<--lon, lat, elevation-->
<--lon, lat, elevation-->
<--lon, lat, elevation-->
          </coordinates>
        </LinearRing>
      </outerBoundaryIs>
    </Polygon>
  </Placemark>
</Document>
</kml>

Хотелось бы также иметь возможность сохранять выделение в формат KML из окна операций с выделенной областью. Нужно просто добавить в диалог сохранения помимо *.hlg ещё и *.kml. По расширению определяем какой метод сохранения вызывать.
Точно такой же подстановкой цепочки координат в шаблон можно реализовать сохранение линейки измерения расстояний.
Аватара пользователя
svp
Советчик
 
Сообщения: 447
ICQ: 204094886
Зарегистрирован: 26 авг 2008, 11:14
Откуда: Белгород
Благодарил (а): 2 раз.
Поблагодарили: 7 раз.

Re: Чего вы хотите?

Сообщение gisof » 13 ноя 2008, 17:25

1) Режим "Снимок на весь экран" - отображение на экране только основной карты и слоёв

Всё остальное скрывается:
- линейка, строка статуса, карта заполнения, границы изображений, шкала, окна загрузок и д.р.
- карта обзора и панели появляются только при попадании курсора в заданные области экрана (т.к. это сделано для панели в режиме "Во весь экран"), исчезновение с задержкой 10с
Переключение режимов предлагаю организовать следующим образом:
"Обычный режим" - F11 - "Во весь экран" - F11 - "Снимок на весь экран" - F11 - "Обычный режим"

2) Режим "Переход" - автоматическое переключение между типами карт

В настройках режима указываем:
- типы карт и их последовательность
- время показа карты и перехода (скорость перехода, при=0с моментальное переключение, при >0c плавный переход одного снимка в другой)

Особенно интересен этот режим для сравнения спутниковых и аэроснимков.
Многие места имеют по несколько снимков (Пр. центр Санкт-Петербурга - 4 разных снимка GM, VE, YH, YA)

3) Необходима возможность назначения гор.клавиш на различные уровни масштаба.
(Пр. хочу назначить клавишам Num 0 - Num 9 масштабы 10-19)
http://wiki.GooGIS.info - wiki-энциклопедия неогеографии
Аватара пользователя
gisof
Постигающий Дао
 
Сообщения: 197
Зарегистрирован: 13 ноя 2008, 15:56
Откуда: РБ
Благодарил (а): 0 раз.
Поблагодарили: 4 раз.

Re: Чего вы хотите?

Сообщение svp » 14 ноя 2008, 21:44

При полигональном выделении области СЛИШКОМ приблизительно вычисляется количество тайлов в ней. Я полагаю вычисляется площадь охватывающего полигон прямоугольника.

Если координаты (в пикселях) вершин полигона выделения поделить на 256, то получим многоугольник с вершинами, заданными в тайловых координатах. Площадь этого полигона будет равна количеству тайлов внутри полигона.

Ниже функции вычисления площади многоугольника без самопересечений. Туда передаётся массив TPoint'ов. В этих TPoint'ах уже должны быть координаты тайлов, на которые приходятся вершины полигона. Функции вычисления площади самопересеченных многоугольников ещё не готовы, зато есть простая функция определения наличия самопересечений. Если она возвращает True, то можно считать пока как считали. а если false, то извольте =) показать точное количество тайлов.

Код: Выделить всё
function Square(Poly: array of TPoint): Real;
var
  i, n : Integer;
begin
  n := Length(Poly);

  Result := 0;

  if n < 3 then
    Exit;

  i := 0;
  while i < n - 1 do
  begin
    Result := Result + (Poly[i].x + Poly[i + 1].x) * (Poly[i].y - Poly[i + 1].y);
    inc(i);
  end;
  Result := Result + (Poly[i].x + Poly[0].x) * (Poly[i].y - Poly[0].y);
 
  Result := 0.5 * Abs(Result);
end;


function SCrossing(L1A, L1B, L2A, L2B: TPoint; var P: TPoint): boolean;
var
  u1, u2, zn: real;
begin
  u1 := (L2B.x-L2A.x)*(L1A.y-L2A.y) - (L2B.y-L2A.y)*(L1A.x-L2A.x);
  u2 := (L1B.x-L1A.x)*(L1A.y-L2A.y) - (L1B.y-L1A.y)*(L1A.x-L2A.x);
  zn := (L2B.y-L2A.y)*(L1B.x-L1A.x) - (L2B.x-L2A.x)*(L1B.y-L1A.y);
  result := not IsZero(zn);

  if result then
  begin
    u1 := u1 / zn;
    u2 := u2 / zn;
    p.x := round(L1A.x + u1 * (L1B.x - L1A.x));
    p.y := round(L1A.y + u1 * (L1B.y - L1A.y));
    result := (u1 >= 0) and (u1 <= 1) and (u2 >= 0) and (u2 <= 1);
  end;
end;


function SimpleCheckSelfCrossing(Poly: array of TPoint): boolean;

  function EqPoints(p1, p2: TPoint): boolean;
  begin
     result := (p1.X = p2.X) and (p1.Y = p2.Y);
  end;

var
  i, j, n: integer;
  p: TPoint;
begin
  result := false;
  n := Length(Poly);

  if n < 4 then
    Exit;

  for i := 0 to n - 1 - 1 do
    for j := 0 to n - 3 - 1 do
    begin
      result := EqPoints(Poly[i], Poly[(i + 2 + j) mod n]);

      result := result or SCrossing(
        Poly[i],
        Poly[(i + 1) mod n],
        Poly[(i + 2 + j) mod n],
        Poly[(i + 2 + j + 1) mod n],
        p);

      if result then
        Exit;
    end;
end;


P.S.
Требуется подключить модуль math.
Аватара пользователя
svp
Советчик
 
Сообщения: 447
ICQ: 204094886
Зарегистрирован: 26 авг 2008, 11:14
Откуда: Белгород
Благодарил (а): 2 раз.
Поблагодарили: 7 раз.

Пред.След.

Вернуться в SAS.Планета

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

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