SASGIS

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

Картографический портал. Версия ArcGis

Модератор: Tolik

Re: Картографический портал. Версия ArcGis

Сообщение Obscured » 23 ноя 2011, 22:48

Немножко офигеваю от этого приказа. По нему, нельзя публиковать даже часть того, что свободно публиковалось с советских времен. Шизофрения в эпоху "современных возможностей дешифрирования объектов местности по открытым космическим снимкам" здравствует и побеждает.

колейность, электрифицированность железных дорог

Держу в руках официальный атлас области. Омская картографическая фабрика, 2002. Вполне себе обозначены колейность и электрифицированность железных дорог, магистральные линии электропередач, магистральные нефтепроводы...
Obscured
Новичок
 
Сообщения: 29
Зарегистрирован: 17 ноя 2010, 21:06
Благодарил (а): 3 раз.
Поблагодарили: 0 раз.

Re: Картографический портал. Версия ArcGis

Сообщение PavelML » 24 ноя 2011, 09:22

Nik писал(а):С точки зрения теории это, конечно, интересно, тем более что с адреса, указанного на известном сайте, ответ получить не удалось. Но есть ли простые практические рекомендации, позволяющие хотя бы частично компенсировать влияние названных факторов при привязке карт GGC с помощью Ozi?


Практические решения есть, но нужно понимать, что они непростые.
Необходимо подобрать параметры преобразования под каждую карту. И это нужно делать либо вручную, либо в полуавтоматическом режиме, например в Excel, имея в модулях на VBA функции на основе формул ГОСТ Р 51794-2008. Выносим все параметры преобразования, их около 10, изнутри функции в лист (то есть функция их должна считывать с рабочего листа Excel), рядом на этом же листе располагаем координаты точек привязки - в каждой строке пара координат в WGS-84 и пара координат в той системе, к которой подбирается "ключик", если это растр, то видимо номер пикселя по горизонтали и номер пикселя по вертикали. Но для большей универсальности подобранного датума лучше эти координаты иметь в метрах - тогда можно работать с другими растрами в той же системе координат.

В соседних колонках от пар координат вставляем формулы пересчета, которые у нас в VBA, беря входные данные из той пары координат, которая в WGS-84. И в следующих колонках - разность между результатом вычислений (отдельно по X и отдельно по Y) и кординатами по привязке. Вот эта разница и будет той ошибкой которую нужно "минимизировать".
Для достаточно точного подбора хватит пяти точек привязки - по углам карты и в центре. По центральной точке мы подбираем величину постоянных смещений по X и Y, по разнице ошибок по широте между западными и восточными координатами определяем долготу центрального меридиана (исходя из того что она может быть либо "зональной" - кратной 3 или 6 градусам от гринвича - либо зональной со смещением, в котором могут быть "целые минуты", мельче целых минут знаков быть вроде не должно). По разнице ошибок по долготе между западными и восточными точками подбираем множитель. Окончательно догоняем выбором параметров эллипсоида из трех общепринятых.

Формулы преобразования координат проекций Гаусса-Крюгера всегда работают только в одну сторону - из UTM в Гаусса-Крюгера. В обратную сторону применяется приблизительное вычисление с итерацией с применением прямого вычисления. Впрочем, по вышеупомянутому госту если формула обратного вычисления набрана без ошибок, то уже на первом вычислении ошибка будет совсем небольшой - десятые доли метра. Кстати, должен сказать... в официальных источниках в тексте госта в формулах имеются опечатки... 8)))
Короче... если интересно поковыряться, то возьмите этот файл и поковыряйтесь в васике: http://85.95.172.46/253/wgs.zip

Далее... если параметры преобразования подобраны - их можно забить в описатели для программ, которые умеют делать трансформацию растра. Для Global Mapper это файлы PRJ.
Я могу сказать как выглядит трансформация из WGS-84 в прямоугольную метрическуую систем координат. В обратную видимо аналогично.
1. Выгружаем растр из источника с файлом привязки (ну скажем TAB) в системе координат WGS-84.
2. Открываем этот растр (выбирая именно растр, а не файл привязки) в Global Mapper. На экране появляется растр прямоугольной формы.
3. Далее - меню -> инструменты -> настройка -> проекция -> загрузить - выбираем файл PRJ с нашим подобранным датумом - щелкаем "применить"
4. Форма растра тут же меняется с прямоугольной на искривленную, для небольших размеров поверхности просто становится слегка повернутой.
5. Выбираем меню - файл - экспорт данных растра и высот - JPG - в окне выбираем нужный нам тип файла привязки и рамкой выбираем часть растра, чтобы края были прямоугольными, далее экпортируем. И вот тогда он реально начинает трансформировать растр - в файл.

Программистам проще написать свою процедуру попиксельного трансформирования, чем пользоваться сторонним софтом.

Papazol писал(а):ПЕРЕЧЕНЬ ОБЪЕКТОВ МЕСТНОСТИ И ЭЛЕМЕНТОВ СОДЕРЖАНИЯ ТОПОГРАФИЧЕСКИХ КАРТ И ПЛАНОВ, ЗАПРЕЩЕННЫХ ДЛЯ ОТКРЫТОГО ОПУБЛИКОВАНИЯ уже отменён? Возьмите книжку-атлас какой-нибудь области, проверьте, если знаете местность, всё ли там отображено

Если какие-то отдельные объекты и элементы не отображаются - это не является искажением карты, это немножко другая тема 8)
Я думаю что это был единственный способ сделать карту общедоступной - убрать эти объекты. В конце концов - мы ведь сами выбирали депутатов, которые принимали закон о гостайне, верно? Вот и давайте на себя ругаться...

vasketsov писал(а):
topograf писал(а):и то вне закона

Не пугайте народ. Приказ роскартографии статуса закона не имеет. Любые ограничения в правах возможны только посредством принятия федерального закона. Так что нанести точно объект лично Васе Пупкину никакой приказ Роскартографии запретить не может. Фактически Приказ применяется только к официальным картам.


скрытый текст: показать
Закон РФ от 21 июля 1993 г. N 5485-I "О государственной тайне"
Статья 5. Перечень сведений, составляющих государственную тайну
...
о дислокации, назначении, степени готовности, защищенности режимных и особо важных объектов, об их проектировании, строительстве и эксплуатации, а также об отводе земель, недр и акваторий для этих объектов;
о дислокации, действительных наименованиях, об организационной структуре, о вооружении, численности войск и состояния их боевого обеспечения, а также о военно-политической и (или) оперативной обстановке;

УГОЛОВНЫЙ КОДЕКС РОССИЙСКОЙ ФЕДЕРАЦИИ" (УК РФ) от 13.06.1996 N 63-ФЗ
Статья 283. Разглашение государственной тайны
1. Разглашение сведений, составляющих государственную тайну, лицом, которому она была доверена или стала известна по службе или работе, если эти сведения стали достоянием других лиц, при отсутствии признаков государственной измены -
наказывается арестом на срок от четырех до шести месяцев либо лишением свободы на срок до четырех лет с лишением права занимать определенные должности или заниматься определенной деятельностью на срок до трех лет или без такового.
2. То же деяние, повлекшее по неосторожности тяжкие последствия, -
(в ред. Федерального закона от 25.06.1998 N 92-ФЗ)
(см. текст в предыдущей редакции)
наказывается лишением свободы на срок от трех до семи лет с лишением права занимать определенные должности или заниматься определенной деятельностью на срок до трех лет.

Статья 276. Шпионаж
Передача, а равно собирание, похищение или хранение в целях передачи иностранному государству, иностранной организации или их представителям сведений, составляющих государственную тайну, а также передача или собирание по заданию иностранной разведки иных сведений для использования их в ущерб внешней безопасности Российской Федерации, если эти деяния совершены иностранным гражданином или лицом без гражданства, -
наказываются лишением свободы на срок от десяти до двадцати лет.

Статья 275. Государственная измена
Государственная измена, то есть шпионаж, выдача государственной тайны либо иное оказание помощи иностранному государству, иностранной организации или их представителям в проведении враждебной деятельности в ущерб внешней безопасности Российской Федерации, совершенная гражданином Российской Федерации, -
наказывается лишением свободы на срок от двенадцати до двадцати лет со штрафом в размере до пятисот тысяч рублей или в размере заработной платы или иного дохода осужденного за период до трех лет либо без такового и с ограничением свободы на срок до двух лет.
(в ред. Федеральных законов от 08.12.2003 N 162-ФЗ, от 27.12.2009 N 377-ФЗ)
(см. текст в предыдущей редакции)
Примечание. Лицо, совершившее преступления, предусмотренные настоящей статьей, а также статьями 276 и 278 настоящего Кодекса, освобождается от уголовной ответственности, если оно добровольным и своевременным сообщением органам власти или иным образом способствовало предотвращению дальнейшего ущерба интересам Российской Федерации и если в его действиях не содержится иного состава преступления.
PavelML
Заслуженный тролль ресурса
 
Сообщения: 104
Зарегистрирован: 20 фев 2010, 17:29
Благодарил (а): 0 раз.
Поблагодарили: 6 раз.

Re: Картографический портал. Версия ArcGis

Сообщение Nik » 25 ноя 2011, 08:33

Получил ответ на вопрос об искажениях карт GGC и их привязках. Привожу его полностью.
------------------------------------------------------------------------------------------------------------------
Частично на вопрос про привязки я отвечал здесь:
http://www.gps-forum.ru/cgi-bin/forum/s ... Post131820

Теперь про искажения.
Привязки для базового архива и обновления изначально делались так:
Принимаем за аксиомы
1. Листы выполнены в проекции Гаусса-Крюгера, т.е. в поперечном меркаторе на эллипсоиде Крассовского, центральные меридианы определяются номенклатурой.
2. Масштаб по X и Y одинаковый, как у любой нормальной карты.

Географические координаты углов карты известны из номенклатуры.
Просмотрев -дцать листов видим, что на любом листе минимальное расстояние от края растра до рамки -- 5 пикселей -- либо слева и справа (для широких листов), либо сверху и снизу (для высоких), отсюда получаем либо X либо Y координаты двух точек рамки. Поскольку пиксельные и географические координаты связаны масштабом и смещением, то решая простенькое уравнение, получаем пиксельные координаты углов.
Получается более-менее приличный результат.

При генерации привязок для обновления выяснилось, что рамки соседних листов расходятся на 0-4 пикселов, т.к. масштаб по X и Y разный. Причину не знаю -- может ошибка ребят из госгисцентра, может намеренное искажение, может перепроецирование в другую СК. Обнаружено, что искажение зависит от соотношения вертикального и горизонтального размера листа. Зависимость более-менее линейная, коэффициент подобрал эмпирически.
Поскольку ошибка небольшая, считаем искажение линейным.

Итого:
* искажения были в графических файлах, в привязках они учтены.
* при ручной привязке в ози по трём и более точкам эти искажения автоматически учитываются.
* В базовом архиве искажения, похоже были, но в пределах 1-2 пикселей, может и меньше.
* Гарантированно автоматически сделать точную привязку для всех листов не получится, о причине я написал на gps-forum по ссылке. Единственный вариант -- заняться распознаванием углов рамки.

Если интерес на гислабе ещё не угас, то это письмо можно свободно копировать/цитировать.
Nik
Новичок
 
Сообщения: 13
Зарегистрирован: 29 июн 2011, 08:04
Благодарил (а): 6 раз.
Поблагодарили: 0 раз.

Re: Картографический портал. Версия ArcGis

Сообщение DJ VK » 25 ноя 2011, 09:32

Nik писал(а): * Гарантированно автоматически сделать точную привязку для всех листов не получится, о причине я написал на gps-forum по ссылке. Единственный вариант -- заняться распознаванием углов рамки.

Так я же три раза писал как распознать рамку и приводил исходный код.
http://sasgis.org/forum/viewtopic.php?f=2&t=1754#p23691
Лучше скажите как высчитать и сделать правильную привязку.

Сейчас использую вот такую.
Код: Выделить всё
GLOBAL_MAPPER_SCRIPT VERSION="1.00" FILENAME="N-36-011-A-a_Scale3.gmw"
DEFINE_PROJ PROJ_NAME="GEO_S-42_PULKOVO_1942"
Projection     GEOGRAPHIC
Datum          PULKOVO
Zunits         NO
Units          DD
Xshift         0.000000
Yshift         0.000000
Parameters
0 0 0.000 /* longitude of center of projection

END_DEFINE_PROJ
DEFINE_SHAPE SHAPE_NAME="AUTO_CROP_POLY"
   35.0000000000,56.0000000000
   35.1250000000,56.0000000000
   35.1250000000,55.9166666667
   35.0000000000,55.9166666667
END_DEFINE_SHAPE
IMPORT FILENAME="N-36-011-A-a_Scale3.png" TYPE="PNG" PROJ_NAME="GEO_S-42_PULKOVO_1942" \
    RECTIFY="Automatic" SAMPLING_METHOD="BILINEAR" \
    GCP="POINT01,312.0000000,105.0000000,35.0000000,56.0000000" \
    GCP="POINT02,3661.0000000,4.0000000,35.1250000,56.0000000" \
    GCP="POINT03,3783.0000000,3990.0000000,35.1250000,55.9166667" \
    GCP="POINT04,427.0000000,4090.0000000,35.0000000,55.9166667" \
    CLIP_COLLAR="AUTO" CLIP_COLLAR_POLY_AUTO="AUTO_CROP_POLY" TEXTURE_MAP="NO"


карты снизу сходятся, сверху расходятся, а посередине все точно. Никаких двойных рамок. Что я не так делаю не пойму, может проекцию не ту ставлю, и GM12 сам пиксельные координаты углов сдвигает?

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

Re: Картографический портал. Версия ArcGis

Сообщение Papazol » 25 ноя 2011, 15:48

Вот теперь стало более-менее ясно, о каких искажениях шла речь.
Надо отметить, что замечание о том, что при ручной привязке в Ozi эти искажения устраняются автоматически, является весьма ключевым. Я с самого начала привязывал всё вручную, и все листы сошлись весьма хорошо, только иногда видны рамки (вопрос одного пикселя?), но это в принципе не мешает. И для меня было непонятно, что за искажения имелись в виду, так как я смешал и старые, и новые карты, а всё равно они все чётко сошлись, и даже положения объектов, которые я проверял на разных картах и снимках, были правильными.
Если углы листа карты определены точно, неважно, вручную или автоматически, привязка будет правильной.
Аватара пользователя
Papazol
Гуру
 
Сообщения: 2069
Зарегистрирован: 04 дек 2009, 01:39
Откуда: Рязань
Благодарил (а): 74 раз.
Поблагодарили: 606 раз.

Re: Картографический портал. Версия ArcGis

Сообщение DJ VK » 25 ноя 2011, 16:48

я написал конвертер, теперь для всех файлов *.corn ищется .gmw и подменяются имена файлов и координаты листа на полученные.
(только для 250к.)
скрытый текст: показать
Ed2=...... _Maps_.....\reference\gm\25000\

Код: Выделить всё
//---------------------------------------------------------------------------
void __fastcall MapThread::Proc(AnsiString File)
{
  LoadCorners(File);
  AnsiString GMOutput=ChangeFileExt(File,".gmw");
  if(FileExists(GMOutput)) return;
  AnsiString FN=ExtractFileName(File);
  AnsiString Proj=ChangeFileExt(FN,".gmw");
  AnsiString PNG=ChangeFileExt(FN,".png");
  AnsiString GMInput=Ed2+FN.SubString(1,4)+"\\"+FN.SubString(1,9)+Letter(FN.SubString(10,1))
        +FN.SubString(11,1)+Letter(FN.SubString(12,1))+".gmw";
  if(!FileExists(GMInput))
    return;
  AnsiString SrcText,DestText;
  GM=new TStringList;
  GM->LoadFromFile(GMInput);
  SrcText=GM->Text;
  int phase=0;
  int Addr=0;
  int Len=SrcText.Length();
  while(Addr<=Len)
  {
    if(phase==0 && Addr<Len-9)
    {
          if(SrcText.SubString(Addr,10).AnsiCompareIC("FILENAME=\"")==0)
          {
            Addr+=10;
            PosF=Addr;
            phase=1;
          }
    }
    if(phase==1 && Addr<Len)
    {
          if(SrcText.SubString(Addr,1).AnsiCompareIC("\"")==0)
          {
            PosFF=Addr;
            phase=2;
            Addr+=1;
          }
    }
    if(phase==2 && Addr<Len-9)
    {
          if(SrcText.SubString(Addr,10).AnsiCompareIC("FILENAME=\"")==0)
          {
            Addr+=10;
            PosP=Addr;
            phase=3;
          }
    }
    if(phase==3 && Addr<Len)
    {
          if(SrcText.SubString(Addr,1).AnsiCompareIC("\"")==0)
          {
            PosPP=Addr;
            Addr+=1;
            phase=4;
          }
    }
    if(phase==4 && Addr<Len-6)
    {
          if(SrcText.SubString(Addr,7).AnsiCompareIC("POINT1,")==0)
          {
            Addr+=7;
            Pos1=Addr;
            phase=5;
          }
    }
    if(phase==5 && Addr<Len)
    {
          if(SrcText.SubString(Addr,1).AnsiCompareIC(",")==0)
          {
            Addr+=1;
            phase=6;
          }
    }
    if(phase==6 && Addr<Len)
    {
          if(SrcText.SubString(Addr,1).AnsiCompareIC(",")==0)
          {
            Pos11=Addr;
            Addr+=1;
            phase=7;
          }
    }
    if(phase==7 && Addr<Len-6)
    {
          if(SrcText.SubString(Addr,7).AnsiCompareIC("POINT2,")==0)
          {
            Addr+=7;
            Pos2=Addr;
            phase=8;
          }
    }
    if(phase==8 && Addr<Len)
    {
          if(SrcText.SubString(Addr,1).AnsiCompareIC(",")==0)
          {
            Addr+=1;
            phase=9;
          }
    }
    if(phase==9 && Addr<Len)
    {
          if(SrcText.SubString(Addr,1).AnsiCompareIC(",")==0)
          {
            Pos22=Addr;
            Addr+=1;
            phase=10;
          }
    }
    if(phase==10 && Addr<Len-6)
    {
          if(SrcText.SubString(Addr,7).AnsiCompareIC("POINT3,")==0)
          {
            Addr+=7;
            Pos3=Addr;
            phase=11;
          }
    }
    if(phase==11 && Addr<Len)
    {
          if(SrcText.SubString(Addr,1).AnsiCompareIC(",")==0)
          {
            Addr+=1;
            phase=12;
          }
    }
    if(phase==12 && Addr<Len)
    {
          if(SrcText.SubString(Addr,1).AnsiCompareIC(",")==0)
          {
            Pos33=Addr;
            Addr+=1;
            phase=13;
          }
    }
    if(phase==13 && Addr<Len-6)
    {
          if(SrcText.SubString(Addr,7).AnsiCompareIC("POINT4,")==0)
          {
            Addr+=7;
            Pos4=Addr;
            phase=14;
          }
    }
    if(phase==14 && Addr<Len)
    {
          if(SrcText.SubString(Addr,1).AnsiCompareIC(",")==0)
          {
            Addr+=1;
            phase=15;
          }
    }
    if(phase==15 && Addr<Len)
    {
          if(SrcText.SubString(Addr,1).AnsiCompareIC(",")==0)
          {
            Pos44=Addr;
            Addr+=1;
            phase=16;
          }
    }
    if(phase==16)
    {
      DestText=SrcText.SubString(1,PosF-1)+Proj
          +SrcText.SubString(PosFF,PosP-PosFF)+PNG
          +SrcText.SubString(PosPP,Pos1-PosPP)+IntToStr(Corn1X)+","+IntToStr(Corn1Y)
          +SrcText.SubString(Pos11,Pos2-Pos11)+IntToStr(Corn2X)+","+IntToStr(Corn2Y)
          +SrcText.SubString(Pos22,Pos3-Pos22)+IntToStr(Corn3X)+","+IntToStr(Corn3Y)
          +SrcText.SubString(Pos33,Pos4-Pos33)+IntToStr(Corn4X)+","+IntToStr(Corn4Y)
          +SrcText.SubString(Pos44,Len-Pos44+1);
      GM->Text=DestText;
      GM->SaveToFile(GMOutput);
    }
    Addr++;
  }
  if(phase<16)
  {
    int Dbg=0;
  }
 
  delete GM;
}
//---------------------------------------------------------------------------
AnsiString __fastcall MapThread::Letter(AnsiString L)
{
  if(L=="V") return "C";
  if(L=="v") return "c";
  if(L=="G") return "D";
  if(L=="g") return "d";
  return L;
}
//---------------------------------------------------------------------------
bool __fastcall MapThread::LoadCorners(AnsiString File)
{
  try{
  Mem=new TStringList;
  Mem->LoadFromFile(File);
  Corn1X=Mem->operator [](0).ToInt();
  Corn1Y=Mem->operator [](1).ToInt();
  Corn2X=Mem->operator [](2).ToInt();
  Corn2Y=Mem->operator [](3).ToInt();
  Corn3X=Mem->operator [](4).ToInt();
  Corn3Y=Mem->operator [](5).ToInt();
  Corn4X=Mem->operator [](6).ToInt();
  Corn4Y=Mem->operator [](7).ToInt();
  delete Mem;
  return true;
  }catch(...){
    return false;
  }
}


если есть желание можно аналогичным образом брать координаты рамок из привязки OZI и патчить GMW
Аватара пользователя
DJ VK
Гуру
 
Сообщения: 1468
Зарегистрирован: 16 апр 2009, 13:57
Откуда: 8 км. от МКАД
Благодарил (а): 82 раз.
Поблагодарили: 300 раз.

Re: Картографический портал. Версия ArcGis

Сообщение PavelML » 25 ноя 2011, 20:39

Nik писал(а):Принимаем за аксиомы
1. Листы выполнены в проекции Гаусса-Крюгера, т.е. в поперечном меркаторе на эллипсоиде Крассовского, центральные меридианы определяются номенклатурой.


Вы ставите знак равенства между проекцией Гаусса-Крюгера и поперечной проекцией Меркатора - и предлагаете это принять за аксиому? У меня нет слов 8)))
Что касается эллипсоида Красовского... к виду проекции он не имеет никакого отношения.
Вот смотрите:
Код: Выделить всё
' Эллипсоид Красовского
Const caP As Double = 6378245 ' Большая полуось
Const calP As Double = 1 / 298.3 ' Сжатие
Const ce2P As Double = 2 * calP - calP ^ 2 ' Квадрат эксцентриситета
' Эллипсоид WGS84 (GRS80, эти два эллипсоида сходны по большинству параметров)
Const caW As Double = 6378137 ' Большая полуось
Const calW As Double = 1 / 298.257223563 ' Сжатие
Const ce2W As Double = 2 * calW - calW ^ 2 ' Квадрат эксцентриситета
' Общеземной эллипсоид ПЗ-90 и ПЗ-90.02
Const aZ As Double = 6378136 ' Большая полуось
Const alZ As Double = 1 / 298.257839303 ' Сжатие
Const e2Z As Double = 2 * alZ - alZ ^ 2 ' Квадрат эксцентриситета

От того, что Вы слегка измените два числовых значения - ВИД ПРОЕКЦИИ - поменяться не может!
Давайте для простоты понимания так:
Поперечная проекция меркатора - линии меридианов вертикальные и прямые, линии параллелей горизонтальные и прямые, шкалы по вертикали и горизонтали - в равномерных (линейных) градусах. Поперечная проекция Меркатора поэтому называется "равноградусной".
Проекция Гаусса-Крюгера - линии метров/километров на "cевер" (направление условно, может отличаться от направления на полюс на несколько градусов) прямые и параллельные,
линии метров/километров на "восток" (направление условно, может быть непараллельным параллелям в пределах нескольких градусов), шкалы по вертикали и горизонтали - в равномерных (линейных) метрах. Проекция Гаусса-Крюгера поэтому называется "равнометрической".
Поперечная проекция Меркатора выражена в Градусах, поэтому не имеет погрешности отображения. Проекция Гаусса-Крюгера выражена в метрах, поэтому всегда однозначно имеет погрешность относительно исходных координат широты-долготы. Вопрос только в ее размере.

Если говорить о проекциях карт GGC - это все разные варианты проекций Гаусса-Крюгера. Все что используется в SAS.Planet - привязывается к поперечной проекции Меркатора. Задача трансформации растра из первого во второе - задача сложная, если нужно получить неискаженную картинку. А по точкам привязки можно получить искаженную, но видимо приемлемую для большинства людей.
PavelML
Заслуженный тролль ресурса
 
Сообщения: 104
Зарегистрирован: 20 фев 2010, 17:29
Благодарил (а): 0 раз.
Поблагодарили: 6 раз.

Re: Картографический портал. Версия ArcGis

Сообщение uzicyfob » 25 ноя 2011, 22:11

У вас тут так весело, что я тоже решил присоединиться (если что, то я автор безобразия на smtm2.tk).

Уважаемый PavelML, вы заблуждаетесь. Вы прекрасно описали обычную проекцию Меркатора, а проекцияя Гаусса-Крюгера это именно синимоним либо разновидность (в разных местах по-разному) поперечного Меркатора: http://en.wikipedia.org/wiki/Gauss-Kruger_coordinate_system, http://remotesensing.org/geotiff/proj_list/transverse_mercator.html. И вычисление координат в ней зависит от эллипсоида -- см. формулы по второй ссылке.

Теперь про вычисление прямоугольных координат (которые в метрах) из геодезических (которые в градусах). Я не заморачиваюсь и использую proj4. К ней есть байндинги для многих языков, есть утилита командной строки для преобразования координат. Эстеты могут самостоятельно написать преобразование по формулам от EPSG (опять же вторая ссылка, либо ищите канонический справочник).
uzicyfob
Новичок
 
Сообщения: 3
Зарегистрирован: 25 ноя 2011, 21:36
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: Картографический портал. Версия ArcGis

Сообщение DJ VK » 25 ноя 2011, 22:54

uzicyfob писал(а):если что, то я автор безобразия на smtm2.tk

Видно из никнейма. :) АМожет стоит поставить в файлы привязки GM координаты пикселов углов из привязок ози?
Не обязательно заменять привязки, но сгенерить махом новые. Я то для себя сделал, теперь могу склеить кусочек, который хотел, не заморачиваясь; но у вас карт то намного больше.
Аватара пользователя
DJ VK
Гуру
 
Сообщения: 1468
Зарегистрирован: 16 апр 2009, 13:57
Откуда: 8 км. от МКАД
Благодарил (а): 82 раз.
Поблагодарили: 300 раз.

Re: Картографический портал. Версия ArcGis

Сообщение vasketsov » 25 ноя 2011, 22:58

PavelML писал(а):Статья 283. Разглашение государственной тайны
1. Разглашение сведений, составляющих государственную тайну, лицом, которому она была доверена или стала известна по службе или работе
Передача, а равно собирание, похищение или хранение в целях передачи иностранному государству, иностранной организации или их представителям сведений

Важное выделено. Кому у нас "доверяется" по службе информация о войсковых частях?
vasketsov
Специалист
 
Сообщения: 901
Зарегистрирован: 25 июл 2009, 21:15
Благодарил (а): 0 раз.
Поблагодарили: 193 раз.

Пред.След.

Вернуться в Другие сервисы

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

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