Карты, не вошедшие в основной список

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

Модератор: Tolik

Slinger
Постигающий Дао
Сообщения: 111
Зарегистрирован: 30 май 2011, 23:42
Благодарил (а): 18 раз
Поблагодарили: 32 раза

Re: Карты, не вошедшие в основной список

Сообщение Slinger »

ошибка была в том, что у вас стоял лишний "%" после "8" в параметре "&layers=show%3A8&"
Вот засада, проглядел. Спасибо.
ну а также укажите парметр "png", вместо "png32"
В данном случае не критично, так как png32 это вроде бы четырехканальный тайл, с альфа каналом. Так что даже если альфа канала у текущего тайла нет, от этого ничего не меняется. Хотя может размер png больше :roll:
только какая ценность этого слоя?
А никакая :) Для полноты картины подключаю все остальные тематические карты.
rass
Советчик
Сообщения: 300
Зарегистрирован: 23 май 2010, 12:17
Благодарил (а): 61 раз
Поблагодарили: 92 раза

Re: Карты, не вошедшие в основной список

Сообщение rass »

Slinger писал(а):В данном случае не критично, так как png32 это вроде бы четырехканальный тайл, с альфа каналом. Так что даже если альфа канала у текущего тайла нет, от этого ничего не меняется. Хотя может размер png больше :roll:
Возможно, но у меня в Саспланет при параметре "png32" тайлы не качались, хотя сгенерированый URL в браузере таил показывает.
Могу ошибаться, но возможно Саспланет не работает с png32.
Это уже вопрос к разработчикам.
Slinger
Постигающий Дао
Сообщения: 111
Зарегистрирован: 30 май 2011, 23:42
Благодарил (а): 18 раз
Поблагодарили: 32 раза

Re: Карты, не вошедшие в основной список

Сообщение Slinger »

Возник такой вопрос. В плюсовом репозитории, в папке _Rosreestr есть zmp с кадастровым делением РФ, называется rosreestr_cadastr. В DefURLBase у неё указан Spatial Reference равный 102113, при этом в оригинальной ссылке Spatial Reference равен 102100. Какой всё-таки правильный?
Tolik
Гуру
Сообщения: 2604
Зарегистрирован: 28 янв 2011, 10:38
Благодарил (а): 283 раза
Поблагодарили: 587 раз

Re: Карты, не вошедшие в основной список

Сообщение Tolik »

Действительно, в URL слоя этот параметр изменился и сейчас SR=102100

Код: Выделить всё

http://maps.rosreestr.ru/ArcGIS/rest/services/CadastreNew/Cadastre/MapServer/export?dpi=96&transparent=true&format=png32&bbox=8260063.625554192%2C8068830.86598457%2C10627777.013715181%2C9551097.718490314&bboxSR=102100&imageSR=102100&size=968%2C606&f=image
Вы можете зайти в настройки - параметры слоя и поменять 102113 на 102100. Только совершенно ничего не изменится.
А должно?
Какой смысл этого параметра?
Slinger
Постигающий Дао
Сообщения: 111
Зарегистрирован: 30 май 2011, 23:42
Благодарил (а): 18 раз
Поблагодарили: 32 раза

Re: Карты, не вошедшие в основной список

Сообщение Slinger »

Я так подозреваю, что в совокупности с, например, параметрами эллипсоида, это может давать некоторые расхождения. Но это чисто гипотетически.
Slinger
Постигающий Дао
Сообщения: 111
Зарегистрирован: 30 май 2011, 23:42
Благодарил (а): 18 раз
Поблагодарили: 32 раза

Re: Карты, не вошедшие в основной список

Сообщение Slinger »

Вопрос ещё по такой карте

урл

Код: Выделить всё

http://maps.ngdc.noaa.gov/arcgis/rest/services/etopo1/MapServer/tile/xyz
макрос

Код: Выделить всё

var
  mapXYZ: string;
begin 
  mapXYZ := inttostr(GetZ-1)+'/'+inttostr(GetY)+'/'+inttostr(GetX);   
  ResultURL := RegExprReplaceMatchSubStr(GetURLBase, 'xyz', mapXYZ);
end.
Ругается на unexpected image type. Что не так ?
rass
Советчик
Сообщения: 300
Зарегистрирован: 23 май 2010, 12:17
Благодарил (а): 61 раз
Поблагодарили: 92 раза

Re: Карты, не вошедшие в основной список

Сообщение rass »

Slinger писал(а):Вопрос ещё по такой карте

урл

Код: Выделить всё

http://maps.ngdc.noaa.gov/arcgis/rest/services/etopo1/MapServer/tile/xyz
макрос

Код: Выделить всё

var
  mapXYZ: string;
begin 
  mapXYZ := inttostr(GetZ-1)+'/'+inttostr(GetY)+'/'+inttostr(GetX);   
  ResultURL := RegExprReplaceMatchSubStr(GetURLBase, 'xyz', mapXYZ);
end.
Ругается на unexpected image type. Что не так ?
Зачем так усложнять код?
можно же вот так
DefURLBase

Код: Выделить всё

http://maps.ngdc.noaa.gov/arcgis/rest/services/etopo1/MapServer/tile/
GetUrlScript

Код: Выделить всё

begin
 ResultURL:=GetURLBase+inttostr(GetZ-1)+'/'+inttostr(GetY)+'/'+inttostr(GetX);
end.
Но это пол дела, дело в том что сервер врзвращает мегатайл (тайл размерами 512х512)
К тому же у него z/y/x не стандартные
В то вермя как обычный 0/0/0 тайл - это вся Земля (тайл 256х256)
http://server.arcgisonline.com/ArcGIS/r ... tile/0/0/0

то тайл 0/0/0 данной карты - это западная часть Земли
http://maps.ngdc.noaa.gov/arcgis/rest/s ... tile/0/0/0

0/0/1 - восточная
http://maps.ngdc.noaa.gov/arcgis/rest/s ... tile/0/0/1

соотвественно GetUrlScript будет явно сложнее

UPD:
Попробовал сделать скрипт вот что получилось. Работать будет с зума 3

GetUrlScript

Код: Выделить всё

VAR
 TL,BR:TPoint;
 topLeftM,bottomrightM:TDoublePoint;
 Ver : string;
begin
 tl.x:=GetX;
 tl.y:=GetY;
 br.x:=GetX+2;
 br.y:=GetY+2;
 ResultURL:=GetURLBase+inttostr(GetZ-2)+'/'+inttostr(GetY-2^(GetZ-3))+'/'+inttostr(GetX);
end.
Единственное, я не знаю Паскаль, поэтому как будет запись: 2^(GetZ-3) я не знаю (скрипт из-за этого нерабочий)
Поэтому прошу спецов дополнить скрипт.
Но если в ручную вычислить значение выражения 2^(GetZ-3) и подставить его в скрипт вместо выражения, то для
вычисленного зума карта будет работать.

таблица
зум | 2^(GetZ-3)
3 | 1
4 | 2
5 | 4
6 | 8
7 | 16
8 | 32
и тд.


params

Код: Выделить всё

[PARAMS]
pnum=1
GUID={C961AD9B-45FF-4DC5-8C70-58462064AF3E}
name=TEST
name_en=TEST
name_uk=TEST
ParentSubMenu=TEST
ParentSubMenu_en=TEST
ParentSubMenu_uk=TEST
asLayer=0
DefURLBase=http://maps.ngdc.noaa.gov/arcgis/rest/services/etopo1/MapServer/tile/
projection=1
EPSG=4326
NameInCache=TEST
separator=0
Ext=.jpeg
UseDwn=1
Sleep=0
DefHotKey="q"
ContentType=image/jpeg
Аватара пользователя
Parasite
Администратор
Сообщения: 5646
Зарегистрирован: 23 окт 2008, 17:38
Благодарил (а): 124 раза
Поблагодарили: 508 раз

Re: Карты, не вошедшие в основной список

Сообщение Parasite »

rass писал(а):
Slinger писал(а):Вопрос ещё по такой карте

урл

Код: Выделить всё

http://maps.ngdc.noaa.gov/arcgis/rest/services/etopo1/MapServer/tile/xyz
макрос

Код: Выделить всё

var
  mapXYZ: string;
begin 
  mapXYZ := inttostr(GetZ-1)+'/'+inttostr(GetY)+'/'+inttostr(GetX);   
  ResultURL := RegExprReplaceMatchSubStr(GetURLBase, 'xyz', mapXYZ);
end.
Ругается на unexpected image type. Что не так ?
Зачем так усложнять код?
Зачем вообще изобретать велосипед по сто раз?
http://sasgis.org/forum/viewtopic.php?f=21&t=1864
The only difference between me and a mad man is that I am not mad. /Salvador Dali/
Изображение
Slinger
Постигающий Дао
Сообщения: 111
Зарегистрирован: 30 май 2011, 23:42
Благодарил (а): 18 раз
Поблагодарили: 32 раза

Re: Карты, не вошедшие в основной список

Сообщение Slinger »

Parasite писал(а):Зачем вообще изобретать велосипед по сто раз?
http://sasgis.org/forum/viewtopic.php?f=21&t=1864
Недействительный урл, zmp устарел. При попытке скормить ему

Код: Выделить всё

http://maps.ngdc.noaa.gov/arcgis/rest/services/etopo1/MapServer/tile/
всё равно выдаёт ошибку.
Tolik
Гуру
Сообщения: 2604
Зарегистрирован: 28 янв 2011, 10:38
Благодарил (а): 283 раза
Поблагодарили: 587 раз

Re: Карты, не вошедшие в основной список

Сообщение Tolik »

Вот так работает. Только весь мир помещается в северном полушарии.

Код: Выделить всё

begin
  if (GetX mod 2 = 0) and (GetY mod 2 = 0) then
     ResultURL:=GetURLBase+inttostr(GetZ-3)+'/'+inttostr(GetY/2)+'/'+inttostr(GetX/2);
end.

Код: Выделить всё

[PARAMS]
pnum=0
GUID={87428D7B-7DFA-4CBB-9993-A8F3AA456608}
asLayer=0
name=etopo1
NameInCache=etopo1
DefURLBase=http://maps.ngdc.noaa.gov/arcgis/rest/services/etopo1/MapServer/tile/
ContentType="image/jpeg"
Ext=.jpg
projection=1
sradiusa=6378137
sradiusb=6378137
separator=0
UseDwn=1
Sleep=0
DefHotKey=0
CutCountX=2
CutCountY=2
CutSizeX=256
CutSizeY=256
CutTileX=0
CutTileY=0
SAS умеет резать мегатайлы на обычные, за это отвечают последние несколько параметров. Описание есть в Вики.

Степень двойки в паскальскрипте выглядит так:

Код: Выделить всё

Y := round(intpower(2,GetZ-1)) - 1 - GetY;
В данном примере это не пригодилось.
Ответить

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