SASGIS

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

ВОПРОСЫ АБСОЛЮТНЫХ НОВИЧКОВ

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

Модератор: Tolik

ВОПРОСЫ АБСОЛЮТНЫХ НОВИЧКОВ

Сообщение Parasite » 04 май 2011, 11:05

Назрело, назрело... :twisted:
В эту тему будут переезжать (ну или задаваться напрямую, если вдруг удача) все ну совершенно нубские вопросы, заданные в тех или иных ветках. Ибо сколько ж можно игнорировать уже заданное\отвеченное другими, не напрягать межушный нервный узел, и не юзать поиск... Будет этакий паноптикум и парад юзеров, цинично игнорящих RTFM.

Если у кого из старожилов ВНЕЗАПНО нахлынет приступ альтруизма - то могут и поотвечать, а нет - так и нет. Тем хуже для задавших - тема будет безжалостно модерироваться.
The only difference between me and a mad man is that I am not mad. /Salvador Dali/
Изображение

За это сообщение автора Parasite поблагодарили: 3
cycler (07 авг 2013, 19:56) • Orden2 (15 ноя 2022, 18:48) • SergeyKa (17 апр 2024, 13:48)
Рейтинг: 15.79%
 
Аватара пользователя
Parasite
Администратор
 
Сообщения: 5646
Зарегистрирован: 23 окт 2008, 17:38
Благодарил (а): 124 раз.
Поблагодарили: 460 раз.

Re: ВОПРОСЫ АБСОЛЮТНЫХ НОВИЧКОВ

Сообщение grenium » 28 июн 2017, 22:22

Добрый день! Необходимо выделить район на карте с полигонами, для сохранения его в отдельный список. Знаю, что это можно сделать в слиянии полигонов, но там нужно самостоятельно тыкать на каждый объект отдельно, а т.к. объектов очень много сделать это не реально. Можно ли как-то сразу выделить необходимую зону и затем сохранить все созданные в ней полигоны?
grenium
Новичок
 
Сообщения: 4
Зарегистрирован: 30 янв 2016, 11:32
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: ВОПРОСЫ АБСОЛЮТНЫХ НОВИЧКОВ

Сообщение tikhpetr » 01 июл 2017, 23:03

А что Вам мешает при создании полигонов разместить их в одной категории и потом экспортировать просто эту категорию. Форматы экспорта разные. Потом можете конвертнуть все это в shape - его едят все ГИС.
tikhpetr
Постигающий Дао
 
Сообщения: 142
Зарегистрирован: 21 янв 2014, 16:32
Благодарил (а): 2 раз.
Поблагодарили: 8 раз.

Re: ВОПРОСЫ АБСОЛЮТНЫХ НОВИЧКОВ

Сообщение kadastr39 » 04 июл 2017, 13:31

Имею такого рода вопрос. Можно ли при подгрузке тайлов 2GIS сделать так чтобы здания были без эффекта 3D, плоскими, как это делается в самой 2GIS?
kadastr39
Новичок
 
Сообщения: 1
Зарегистрирован: 04 июл 2017, 13:25
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: ВОПРОСЫ АБСОЛЮТНЫХ НОВИЧКОВ

Сообщение DJ VK » 13 июл 2017, 17:18

kadastr39 писал(а):Имею такого рода вопрос. Можно ли при подгрузке тайлов 2GIS сделать так чтобы здания были без эффекта 3D, плоскими, как это делается в самой 2GIS?

Где вы на сайте нашли переключатель 2d-3d? Там только трехмерная карта.
Или вы хотите подключить к планете тайлы, которые зашиты намертво в программу 2gis и ниоткуда не грузятся? :geek:
При такой компактности баз скорее всего карта в программе векторная (а ля навител), так что нельзя....
Аватара пользователя
DJ VK
Гуру
 
Сообщения: 1468
Зарегистрирован: 16 апр 2009, 13:57
Откуда: 8 км. от МКАД
Благодарил (а): 82 раз.
Поблагодарили: 300 раз.

Диагональ растра

Сообщение Gdishto » 13 июл 2017, 17:57

Всем привет, не судите строго...
Меня интересует следующий вопрос: как при склейке участка карты в jpg измерить диагональ этой области? Желательно поточнее (для масштабирования АвтоКАДе).
Gdishto
Новичок
 
Сообщения: 1
Зарегистрирован: 13 июл 2017, 17:43
Благодарил (а): 2 раз.
Поблагодарили: 0 раз.

Re: ВОПРОСЫ АБСОЛЮТНЫХ НОВИЧКОВ

Сообщение Papazol » 13 июл 2017, 21:36

Надо ставить точки, расстояние между которыми будет измеряться, на крупном масштабе. Чем крупнее масштаб, тем точнее. Второй вариант: зная с максимальной точностью координаты углов карты, вычислить расстояние по формуле. Саму формулу тоже придётся узнать :)

За это сообщение автора Papazol поблагодарил:
Gdishto (25 июл 2017, 20:47)
Рейтинг: 5.26%
 
Аватара пользователя
Papazol
Гуру
 
Сообщения: 2069
Зарегистрирован: 04 дек 2009, 01:39
Откуда: Рязань
Благодарил (а): 74 раз.
Поблагодарили: 606 раз.

Re: ВОПРОСЫ АБСОЛЮТНЫХ НОВИЧКОВ

Сообщение DJ VK » 14 июл 2017, 13:36

Papazol писал(а):Надо ставить точки, расстояние между которыми будет измеряться, на крупном масштабе. Чем крупнее масштаб, тем точнее. Второй вариант: зная с максимальной точностью координаты углов карты, вычислить расстояние по формуле. Саму формулу тоже придётся узнать :)


1. склеивать с созданием файла привязки в простеньком виде.
2. на основе исходников программы написать скрипт на дельфи, который берет координаты из файла привязки и вычисляет расстояние

Вот неплохой метод, не сверхточный, но все же...

скрытый текст: показать
Код: Выделить всё
const
  DEG2RAD: Double = 0.017453292519943295769236907684886;


помимо координат еще проекцию нужно знать, гугль- или яндекс- подобная.

Код: Выделить всё
function TNV_MapObjectsList.ComputeDistance(const X1, Y1, X2, Y2: Double; BaseProj: TNV_MapProjectionPtr): Double;
var
  VIterLimit: Integer;
  L, U1, U2, SinU1, CosU1, SinU2, CosU2, Lambda, LambdaP, SinLambda, CosLambda,
  Sigma, SinSigma, CosSigma, Cos2SigmaM, SinAlpha, CosSqAlpha, uSq, A, B, C,
  DeltaSigma, Lat1, Lon1, Lat2, Lon2: Extended;
  AInitialBearing: Double;
  AFinalBearing: Double;
  aa, bb, r0: Extended;
  FRadiusA: Double;
  FRadiusB: Double;
  FFlattening: Double;
begin
  Result := 0;

  FRadiusA := 6378137;
  if(BaseProj.Kind = prjMerkOnEll) then FRadiusB := 6356752
  else FRadiusB := FRadiusA;
  FFlattening := (FRadiusA - FRadiusB) / FRadiusA;

  aa := FRadiusA * FRadiusA;
  bb := FRadiusB * FRadiusB;
  r0 := 1 - FFlattening;

  AInitialBearing := 0;
  AFinalBearing := 0;

  Lat1 := Y1 * DEG2RAD;
  Lon1 := X1 * DEG2RAD;

  Lat2 := Y2 * DEG2RAD;
  Lon2 := X2 * DEG2RAD;

  L := Lon2 - Lon1;

  // === Thaddeus Vincenty's inverse algorithm: ================================

  U1 := ArcTan(r0 * Tan(Lat1));
  U2 := ArcTan(r0 * Tan(Lat2));
  SinCos(U1, SinU1, CosU1);
  SinCos(U2, SinU2, CosU2);

  Lambda := L;
  LambdaP := 2 * Pi;

  SinLambda := 0;
  CosLambda := 0;
  SinSigma := 0;
  CosSigma := 0;
  Sigma := 0;
  CosSqAlpha := 0;
  Cos2SigmaM := 0;
  VIterLimit := 100;

  while (Abs(Lambda - LambdaP) > 1E-12) and (VIterLimit > 0) do begin
    Dec(VIterLimit);

    SinCos(Lambda, SinLambda, CosLambda);
    SinSigma :=
      Sqrt((Sqr(CosU2 * SinLambda)) + Sqr(CosU1 * SinU2 - SinU1 * CosU2 * CosLambda));
    if SameValue(SinSigma, 0) then begin // co-incident points
      Exit;
    end;
    CosSigma := SinU1 * SinU2 + CosU1 * CosU2 * CosLambda;
    Sigma := ArcTan2(SinSigma, CosSigma);
    SinAlpha := CosU1 * CosU2 * SinLambda / SinSigma;
    CosSqAlpha := 1 - Sqr(SinAlpha);
    if not SameValue(CosSqAlpha, 0) then begin
      Cos2SigmaM := CosSigma - 2 * SinU1 * SinU2 / CosSqAlpha;
    end else begin
      Cos2SigmaM := 0; // equatorial line: cosSqAlpha=0
    end;
    C := FFlattening / 16 * CosSqAlpha * (4 + FFlattening * (4 - 3 * CosSqAlpha));
    LambdaP := Lambda;
    Lambda := L + (1 - C) * FFlattening * SinAlpha *
      (Sigma + C * SinSigma * (Cos2SigmaM + C * CosSigma * (-1 + 2 * Sqr(Cos2SigmaM))));
  end;

  if VIterLimit <= 0 then begin // formula failed to converge
    raise Exception.Create('Vincenty''s inverse algorithm failed to converge!');
  end;

  uSq := CosSqAlpha * (aa - bb) / bb;
  A := 1 + uSq / 16384 * (4096 + uSq * (-768 + uSq * (320 - 175 * uSq)));
  B := uSq / 1024 * (256 + uSq * (-128 + uSq * (74 - 47 * uSq)));
  DeltaSigma :=
    B * SinSigma * (Cos2SigmaM + B / 4 * (CosSigma * (-1 + 2 * Sqr(Cos2SigmaM)) -
    B / 6 * Cos2SigmaM * (-3 + 4 * Sqr(SinSigma)) * (-3 + 4 * Sqr(Cos2SigmaM))));

  AInitialBearing := ArcTan2(CosU2 * SinLambda, CosU1 * SinU2 - SinU1 * CosU2 * CosLambda);
  if (AInitialBearing < 0) then begin
    AInitialBearing := 2 * Pi + AInitialBearing;
  end;

  AFinalBearing := ArcTan2(CosU1 * SinLambda, (-SinU1 * CosU2 + CosU1 * SinU2 * CosLambda)) - Pi;
  if (AFinalBearing < 0) then begin
    AFinalBearing := 2 * Pi + AFinalBearing;
  end;

  //============================================================================

  AInitialBearing := AInitialBearing / DEG2RAD;
  AFinalBearing := AFinalBearing / DEG2RAD;

  Result := FRadiusB * A * (Sigma - DeltaSigma);
end;

procedure TNV_MapObjectsList.SetFollowIndex(Index: Integer);
begin
  FFollowObjIndex := Index;
  if(FFollowObjIndex < -1) then FFollowObjIndex := -1;
  if(FFollowObjIndex >= GetObjectsCount) then FFollowObjIndex := -1;
end;

procedure TNV_MapObjectsList.SetBaseIndex(Index: Integer);
begin
  if(FBaseObjIndex <> Index) then
  begin
    if Assigned(FObjects) then
    with FObjects.LockList do
    try
      if(FBaseObjIndex >= 0) and (FBaseObjIndex < Count) then
        Items[FBaseObjIndex].SetObjectBaseMode(False);
      FBaseObjIndex := Index;
      if(FBaseObjIndex < 0) or (FBaseObjIndex >= Count) then
        FBaseObjIndex := -1;
      if(FBaseObjIndex >= 0) then
        Items[FBaseObjIndex].SetObjectBaseMode(True);
    finally
      FObjects.UnlockList;
    end;
  end;
end;


еще в комплекте с программой есть библиотека geodesic с функцией для этого.
как работает можно глянуть в файл u_DistanceCalculatorByGeographicLib

За это сообщение автора DJ VK поблагодарил:
Gdishto (25 июл 2017, 20:49)
Рейтинг: 5.26%
 
Аватара пользователя
DJ VK
Гуру
 
Сообщения: 1468
Зарегистрирован: 16 апр 2009, 13:57
Откуда: 8 км. от МКАД
Благодарил (а): 82 раз.
Поблагодарили: 300 раз.

Re: ВОПРОСЫ АБСОЛЮТНЫХ НОВИЧКОВ

Сообщение stavgis » 15 июл 2017, 23:13

Напоминаю о вопросе версий программы и связи с Мапинфо. В версии 140303, при открытии карт в мапинфо и последующем переводе в другие проекции все проходит замечательно, в дальнейших же версий видимо изменилась проекция и при переводе в другие системы координат в мапинфо, не зависимо от танцев с бубном выдает ошибку "контрольные точки растра не должны лежать на одной прямой ", как можно избежать этого пользуясь следующими версиями sasplanet???
Подскажите в чем может быть дело, описание выше. Не игнорьте пожалуйста.
stavgis
Новичок
 
Сообщения: 4
Зарегистрирован: 19 июн 2017, 16:40
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: ВОПРОСЫ АБСОЛЮТНЫХ НОВИЧКОВ

Сообщение Parasite » 17 июл 2017, 06:57

stavgis писал(а):Напоминаю
Не игнорьте

Неужели Вы настолько беспомощны, что не можете открыть два файла привязок (рабочий со старой, и нерабочий с новой) рядышком в том же Блокноте, и посмотреть в чем разница? :facepalm: Какой смысл просто сидеть, горько плакать вот сюда вот (прочтите первое сообщение этой темы хотя бы), и ждать манны небесной который день? Вы же не считаете, что тут все только и делают, что привязывают к МапИнфо целыми днями, да еще в разных версиях...

И уж если найдете баг - то тогда уже велкам в наше уютненькое (и с багами - не на форум, как водится).
The only difference between me and a mad man is that I am not mad. /Salvador Dali/
Изображение
Аватара пользователя
Parasite
Администратор
 
Сообщения: 5646
Зарегистрирован: 23 окт 2008, 17:38
Благодарил (а): 124 раз.
Поблагодарили: 460 раз.

Re: ВОПРОСЫ АБСОЛЮТНЫХ НОВИЧКОВ

Сообщение DJ VK » 17 июл 2017, 18:53

не только stavgis, но и всем кто задает тут вопросы, пригодится...

Случай первый. Клинический.
пользователь: Караул! Не работает новая программа ! Работает старая!
служба поддержки(с безразличием): Отлично! Используйте старую!

Случай второй. У Вас ошибка в коде(С).
пользователь: Безобразие! Новая программа не печатает! У Вас ошибка в коде!
служба поддержки(задумчиво): Да у нас этих ошибок в коде, ну просто завались....

Случай третий. Повседневный.
пользователь: А ваша новая программа - гавно! Она текст неправильно печатает! Я его потом в сканер вставляю, и такая фигня получается!
служба поддержки(поглядывая на сломанные принтер и сканер): Хм....

Случай четвертый. Со счастливым исходом.
пользователь: Здравствуйте, я нашел в новой программе ошибку. Она каждую вторую строчку на белой бумаге печатает белым цветом вместо черного.
служба поддержки(листая код): Вижу ошибку! Вот она, бяка! К следующей версии поправим!

Мораль: Чем больше информации, что именно программа делает неправильно (есть подробности не где в целом, а где именно), тем быстрее проблема решится.
Информацию о том, куда все перенесли из планеты и что потом с ней делали абсолютно лишняя.
Каждая кнопка, окошка и файл, каждый режим работы имеют точное название. Если их в вопросе нет, он абсолютно безрезультатен.

Parasite, где stavgis написал фразу "файл привязки" ? Почему мы за него гадать должны, что он именно делал с программой? В планете нет нигде названия кнопки "совокупить с MapInfo в грязной форме с изменением проекции", зато есть "Склеить" и "Файл привязки .tab". И если файл привязки кривой, где его код опубликован в вопросе?

За это сообщение автора DJ VK поблагодарили: 2
Parasite (17 июл 2017, 19:45) • vdemidov (19 июл 2017, 10:05)
Рейтинг: 10.53%
 
Аватара пользователя
DJ VK
Гуру
 
Сообщения: 1468
Зарегистрирован: 16 апр 2009, 13:57
Откуда: 8 км. от МКАД
Благодарил (а): 82 раз.
Поблагодарили: 300 раз.

Пред.След.

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

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

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