SASGIS

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

Конвертер Генштаб карт (вся россия) с poehali.net в кэш

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

Модератор: Tolik

Конвертер Генштаб карт (вся россия) с poehali.net в кэш

Сообщение maelstrom » 01 дек 2009, 10:41

Скачал генштабовские (poehali.org) карты России (48 гб) с torrents.ru (http://torrents.ru/forum/viewtopic.php?t=1521951 первая часть, остальные по поиску найти можно).
Карты отличные, есть 1m, 500k, 200k, 100k. Формат .gif с привязками OZI explorer .map.
Как их можно переделать в кэш программы SAS.Planet чтобы можно было пользоваться разными уровнями карты разного масштаба
maelstrom
Новичок
 
Сообщения: 4
Зарегистрирован: 28 ноя 2009, 11:11
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: Конвертер Генштаб карт (вся россия) с poehali.net в кэш

Сообщение webdev2 » 02 дек 2009, 11:49

Как один из вариантов - могу предложить "полуавтоматический" способ с моим участием.
Нужна только программа global mappper.

Я занимаюсь перегоном, есть уже кое-какие наработки. Но много времени занимает нарезка глобал маппером карт на куски.

Порядок действий предлагается такой.
С твоей стороны шаги следующие: (по любому шагу могу подсказать подробнее)
1. Установка global mappper. Дистрибутив - в гугле найдется.
2. Проверка привязкок. Для этого сами карты в одну папку, привязки в другую. Если они вместе, GM просто откроет карту и не даст изменить привязки. А если в разных папках, то запросит файл привязки, его надо загрузить и проверить.
3. Обрезка краев. Это я могу подробнее рассказать, в картинках.
4. Экспорт в куски Google Earth. Это просто, главное выбрать 1 слой, а не 5 как по умолчанию и оставить формат png. Это для того, чтобы лист совместился с окружающими листами.
5. Запаковать получившиеся тайлы и прислать мне, либо выложить на файлообменник.

С моей стороны: У меня уже есть кое-какая база тайлов ГШ, поэтому полученные карты я буду добавлять к своим данным и выкладывать для всех.
1. У меня есть скрипт, который читает png, корректно совмещает их с существующими тайлами (для этого и нужна прозрачность, которая в png), переводит их в jpg и в вид кэша SAS. Я напускаю его на архив, добавляю в базу.
2. Формирую все слои, какие есть для данного участка. Для средней полосы 50-метровки - это примерно 15-й уровень в SAS, 100-ки - 14-й, 200-ки - 13 и т.д. Для большой части территории у меня есть 500-ки. Так что 12 и выше уровни сделаю в качестве бесплатного бонуса.
3. Архивирую все уровни для участка и выкладываю в файлообмен.

Сейчас вот ковыряюсь с сотками N37 ГШ РККА (30-40-е годы). Конечно большую часть времени занимает нарезка в global mappper. Если у кого-то есть ресурсы, чтобы заняться нарезкой, дело пошло бы гораздо веселее.

И еще вопрос к maelstrom. Я с торрентов эти карты не качал, но там на всех картах эти тупые логотипы вставлены "понаехали.орг"? Без логотипов нету? Тогда уж что можно с maps.vlasenko.net забирать. (Нужные ссылки в нижнем левом углу). Там без логотипов.
webdev2
Новичок
 
Сообщения: 32
Зарегистрирован: 20 мар 2009, 15:36
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: Конвертер Генштаб карт (вся россия) с poehali.net в кэш

Сообщение maelstrom » 02 дек 2009, 13:42

Да, пробовал Global Мapper'ом. Очень долго. И конвертит только в кэш Google'а (не это не большая проблема). Узаю 11 версию.
И есть еще проблема часть .map файлов при открывании в GM не обрезаются автоматически! Что делать не знаю. Напиши плиз как обрезать можно автоматом все сразу! Буду очень благодарен.
В ручную обрезку делать каждой карты по координатам это очень запарочно.

Генштабовских без набписей поехали ру нету. На сколько понимаю их архив самый полный. Кто знает другой? maps.vlasenko.net посмотрю что есть но хотелось бы сразу все и сразу :)

Вопросы:
а в чем проблемы совмещения тайлов если их сохранять сраху в jpg?
maelstrom
Новичок
 
Сообщения: 4
Зарегистрирован: 28 ноя 2009, 11:11
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: Конвертер Генштаб карт (вся россия) с poehali.net в кэш

Сообщение workdao » 02 дек 2009, 13:55

webdev2 писал(а):Как один из вариантов - могу предложить "полуавтоматический" способ с моим участием.
Нужна только программа global mappper.


есть еще программа maptiler - http://www.maptiler.org/
хотя GM лучше

webdev2 писал(а):Я занимаюсь перегоном, есть уже кое-какие наработки. Но много времени занимает нарезка глобал маппером карт на куски.

Порядок действий предлагается такой.
С твоей стороны шаги следующие: (по любому шагу могу подсказать подробнее)
1. Установка global mappper. Дистрибутив - в гугле найдется.
2. Проверка привязкок. Для этого сами карты в одну папку, привязки в другую. Если они вместе, GM просто откроет карту и не даст изменить привязки. А если в разных папках, то запросит файл привязки, его надо загрузить и проверить.


и не обязательно по разным папкам можно все и сразу подгрузить, после чего проверить по совмещению с другими картами

webdev2 писал(а):3. Обрезка краев. Это я могу подробнее рассказать, в картинках.
4. Экспорт в куски Google Earth. Это просто, главное выбрать 1 слой, а не 5 как по умолчанию и оставить формат png. Это для того, чтобы лист совместился с окружающими листами.
5. Запаковать получившиеся тайлы и прислать мне, либо выложить на файлообменник.

С моей стороны: У меня уже есть кое-какая база тайлов ГШ, поэтому полученные карты я буду добавлять к своим данным и выкладывать для всех.
1. У меня есть скрипт, который читает png, корректно совмещает их с существующими тайлами (для этого и нужна прозрачность, которая в png), переводит их в jpg и в вид кэша SAS. Я напускаю его на архив, добавляю в базу.
2. Формирую все слои, какие есть для данного участка. Для средней полосы 50-метровки - это примерно 15-й уровень в SAS, 100-ки - 14-й, 200-ки - 13 и т.д. Для большой части территории у меня есть 500-ки. Так что 12 и выше уровни сделаю в качестве бесплатного бонуса.
3. Архивирую все уровни для участка и выкладываю в файлообмен.


а не проще ли тогда скриптом поделится, походу вы хотите не чужом материале нажиться

webdev2 писал(а):Сейчас вот ковыряюсь с сотками N37 ГШ РККА (30-40-е годы). Конечно большую часть времени занимает нарезка в global mappper. Если у кого-то есть ресурсы, чтобы заняться нарезкой, дело пошло бы гораздо веселее.

И еще вопрос к maelstrom. Я с торрентов эти карты не качал, но там на всех картах эти тупые логотипы вставлены "понаехали.орг"? Без логотипов нету? Тогда уж что можно с maps.vlasenko.net забирать. (Нужные ссылки в нижнем левом углу). Там без логотипов.
http://45f.ru - Карты и спутниковые снимки Кургана и Курганской области
Аватара пользователя
workdao
Специалист
 
Сообщения: 707
ICQ: 418481373
Зарегистрирован: 14 дек 2008, 00:44
Откуда: Курган
Благодарил (а): 3 раз.
Поблагодарили: 35 раз.

Re: Конвертер Генштаб карт (вся россия) с poehali.net в кэш

Сообщение webdev2 » 02 дек 2009, 14:44

maelstrom писал(а):Напиши плиз как обрезать можно автоматом все сразу!

Стометровки, да и двухсотки, текущая версия GM автоматом точно не обрежет. Может в других версиях. Там ведь несложно сделать - по максимальной и минимальной координате привязки обрезать и все. Если покопаться, наверное можно скрипт для GM написать, который это будет делать. Там какой-то свой скриптовый язык есть.

maelstrom писал(а):В ручную обрезку делать каждой карты по координатам это очень запарочно.

Золотые слова, полностью согласен. Вот, плАчу, но обрезаю.

maelstrom писал(а):а в чем проблемы совмещения тайлов если их сохранять сраху в jpg?

Проблема в более сложном алгоритме сопряжения с тайлом соседней карты. А так берется jpg от соседней карты, на нее накладывается png с прозрачным слоем новой карты и это все конвертится в jpg.

workdao писал(а):и не обязательно по разным папкам можно все и сразу подгрузить

Можно и так. Если нет сомнений в надежности привязок. Я просто иногда проверяю, уточняю.

workdao писал(а):а не проще ли тогда скриптом поделится, походу вы хотите не чужом материале нажиться

Очень смешно. Нажиться на раздаче с торрентов. :mrgreen:
Если это будет проще - вот полный скрипт. Он непричесанный, но рабочий. Если кому-нить пригодится - буду только рад.
Код: Выделить всё
echo "PNG 2 JPG <form method=post>
<input type=hidden name=id value='$id'><input type=hidden name=id value='$id'>

<input type=hidden name=do value='1'>
<input type=text name=tbl value='sat'>
<br>X от <input type=text name=mx1> до <input type=text name=mx2>
<br>Y от <input type=text name=my1 value=> до <input type=text name=my2>

<br><input type=submit>
</form>
Для Gen Z прибавляется
";

if (!$do) die();
$dir="Sqlite";
$dh  = opendir($dir);
while (false !== ($file = readdir($dh))) if (substr($file,0,1)=="Z")
{
$z=str_replace("z","",$file);
$z=str_replace("Z","",$file);
$z++;
echo "<hr>Z = $z";
$dirz=$dir."/".$file;
$dz  = opendir($dirz);
while (false !== ($filez = readdir($dz))) if (substr($filez,0,1)!=".")
{
    $x=str_replace("x","",$filez);
    echo "<li>Y = $x";
    $dirx=$dirz."/".$filez;
    $dx  = opendir($dirx);

     while (false !== ($filex1 = readdir($dx))) if (substr($filex1,0,1)!=".") if (strpos($filex1,".png"))
     {
      $y=str_replace("y","",$filex1);
      $y=str_replace(".jpg","",$y);
      $y=str_replace(".png","",$y);
      $y=str_replace(".kml","",$y);
      $f2=$dirx."/".$filex1;
      //echo "<br>X = $y , file= ".$f2;

      $fd=fopen($f2, "r"); $img=fread($fd, filesize($f2)); fclose ($fd);
      //$img=bzcompress($img, 9);
      //unlink($f2);

     if ($mx1>0) if ($y<$mx1) continue;
     if ($mx2>0) if ($y>$mx2) continue;
     if ($my1>0) if ($x<$my1) continue;
     if ($my2>0) if ($x>$my2) continue;
      $key=$z."_".$y."_".$x;
      $sel="insert into $tbl(id,kx,ky,kz,map) values ('$key',$y,$x,$z,:map)";
      echo "<br>".$sel;

$sel1="select map from $tbl where id='".$key."'";
$row=array();
foreach (@$db->query("select map from $tbl where id='".$key."'") as $r) $row=$r;

if (sizeof($row))
{
echo " ЕСТЬ!";
$fj1="tmp/tj.jpg";
$fd=fopen($fj1, "w"); fwrite($fd,$row["map"]); fclose ($fd); @chmod($fd,0777);

$img1 = imagecreatefromjpeg($fj1);
$img2 = imagecreatefrompng($f2);
imagecopy($img1, $img2, 0,0,0,0,256,256);
$fOut="tmp/".$key.".jpg";
imagejpeg($img1,$fOut,85);
$f2=$fOut; $fd=fopen($f2, "r"); $img=fread($fd, filesize($f2)); fclose ($fd);
unlink($fj1);
unlink($f2);
// die();
}
else
{
$img2 = imagecreatefrompng($f2);
$fOut="tmp/".$key.".jpg";
imagejpeg($img2,$fOut,85);
$f2=$fOut; $fd=fopen($f2, "r"); $img=fread($fd, filesize($f2)); fclose ($fd);
unlink($f2);

}

     $db->query("delete from $tbl where id='$key' ");

      $sth = $db->prepare($sel);
      $sth->bindParam(':map',$img,PDO::PARAM_LOB);
      $sth->execute();
    }
   closedir($dx);
  }
closedir($dz);
}
closedir($dh);
echo "<li>OK";
webdev2
Новичок
 
Сообщения: 32
Зарегистрирован: 20 мар 2009, 15:36
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: Конвертер Генштаб карт (вся россия) с poehali.net в кэш

Сообщение workdao » 02 дек 2009, 15:18

ну нужно было как то скопрометировать тему :))

я тоже поделюсь тогда :)

тут набор zmp скриптов с выложенными топографическими материалами
для территории O41 042 N41 N42 (Курганская область и частично Челябинская, Свердловская, Омская, ХНАО, Казахстан)
Карты: 10 км ГШ, 10км (Американка), 1о км (ГосГисЦентр), 5км ГШ, 2км ГШ, 2км от топомаппер ГШ(переведена из геопроекции в нормальную), 1км ГШ (частично)
viewtopic.php?f=2&t=57&start=430#p10410

кроме этого есть Курганская область в двух вариантах 1 км Гештаба (один вариант содержит стрый генштаб ~ 60-е годы)

ищу топокарты и генштаб (разные) этого региона O41 042 N41 N42
http://45f.ru - Карты и спутниковые снимки Кургана и Курганской области
Аватара пользователя
workdao
Специалист
 
Сообщения: 707
ICQ: 418481373
Зарегистрирован: 14 дек 2008, 00:44
Откуда: Курган
Благодарил (а): 3 раз.
Поблагодарили: 35 раз.

Re: Конвертер Генштаб карт (вся россия) с poehali.net в кэш

Сообщение workdao » 02 дек 2009, 15:22

я кстати по другому поступаю с объединением масштабов (по варварски)
загружаю пограничные части массивов которые надо связать кроплю для объединения, уменьшаю до 3-4 тайловых полос и режу на тайлы, затем через поиск по номеру убираю не полные ряды тайлов и все в одну папку и вуаля - тайлы получаются из одних источников без трансформации и объединений прозрачностью
http://45f.ru - Карты и спутниковые снимки Кургана и Курганской области
Аватара пользователя
workdao
Специалист
 
Сообщения: 707
ICQ: 418481373
Зарегистрирован: 14 дек 2008, 00:44
Откуда: Курган
Благодарил (а): 3 раз.
Поблагодарили: 35 раз.

Re: Конвертер Генштаб карт (вся россия) с poehali.net в кэш

Сообщение webdev2 » 02 дек 2009, 15:39

тут можно посмотреть
afanas.ru/mapbase/category/kvadrat/o41
afanas.ru/mapbase/category/kvadrat/n42

Но там вряд ли что-то новое будет.

workdao писал(а):я кстати по другому поступаю с объединением масштабов (по варварски)

Дык, моя метода красиво этот вопрос решает. Положим, есть 14-й уровень(сотка по ГШ). Его средствами SAS в 13 и выше, если надо. А потом берется 200-ка ГШ, распиливается на куски 13-го уровня, просто скриптом заносится в базу и все. Волшебным образом встает как надо. Не надо ни с объединением масштабов, ни с объединением карт заморачиваться.

Можно один лист ГШ пропустить при конвертации, если его нет. Для него граничными будут 8 листов. И потом уже, когда он появится в доступе, просто добавить его скриптом, не поднимая из архивов и не загружая в GM восемь пограничных листов.
webdev2
Новичок
 
Сообщения: 32
Зарегистрирован: 20 мар 2009, 15:36
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

Re: Конвертер Генштаб карт (вся россия) с poehali.net в кэш

Сообщение workdao » 02 дек 2009, 18:17

afanas.ru/mapbase/category/kvadrat/o41
afanas.ru/mapbase/category/kvadrat/n42

>> да пусто... нет нового

Дык, моя метода красиво этот вопрос решает. Положим, есть 14-й уровень(сотка по ГШ). Его средствами SAS в 13 и выше, если надо. А потом берется 200-ка ГШ, распиливается на куски 13-го уровня, просто скриптом заносится в базу и все. Волшебным образом встает как надо. Не надо ни с объединением масштабов, ни с объединением карт заморачиваться.

>>> не понял

Можно один лист ГШ пропустить при конвертации, если его нет. Для него граничными будут 8 листов. И потом уже, когда он появится в доступе, просто добавить его скриптом, не поднимая из архивов и не загружая в GM восемь пограничных листов.

>>> ну моя метода для больших массивов... и в основном я поднимаю весь проект,вставляю не достаующий, кроплю новый лист как надо, и кроплю границу проекта плюс по одному рядов тайла к новому листу, режу на тайлы - неполные удаляю - и копирую в папку проекта
http://45f.ru - Карты и спутниковые снимки Кургана и Курганской области
Аватара пользователя
workdao
Специалист
 
Сообщения: 707
ICQ: 418481373
Зарегистрирован: 14 дек 2008, 00:44
Откуда: Курган
Благодарил (а): 3 раз.
Поблагодарили: 35 раз.

Re: Конвертер Генштаб карт (вся россия) с poehali.net в кэш

Сообщение maelstrom » 02 дек 2009, 21:40

Все равно остались вопросы.
Почему как вы говорите Global mapper хорошо обрезает 100k, а не хорошо 200л и остальные?
В чем проблема .map файлов? Думаю надо скрипт который бы просто обрезал карты .gif по координатам в .map файле. потом все просто подгружать в Global mapper ну и делать тайлы.
maelstrom
Новичок
 
Сообщения: 4
Зарегистрирован: 28 ноя 2009, 11:11
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.

След.

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

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

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