@@ -0,0 +1,57 @@ | |||||
function GetCode(const url: AnsiString): Cardinal; | |||||
var | |||||
VResponseCode: Cardinal; | |||||
VResponseHeader, VResponseData: AnsiString; | |||||
begin | |||||
Result := 1; | |||||
if Assigned(Downloader) then begin | |||||
VResponseHeader := ''; | |||||
VResponseData := ''; | |||||
VResponseCode := Downloader.DoHttpRequest(url, '', '', VResponseHeader, VResponseData); | |||||
Result := VResponseCode; | |||||
end; | |||||
end; | |||||
var | |||||
BaseUrl: string; | |||||
code: Cardinal; | |||||
z_ok, z_no: integer; | |||||
r: integer; | |||||
begin | |||||
ResultURL := ''; | |||||
z_ok := StrToIntDef(GetBefore(';', ScriptBuffer), 1); // Максимальный масштаб, который точно есть | |||||
z_no := StrToIntDef(GetAfter(';', ScriptBuffer), 25); // Минимальный масштаб, которого точно нет | |||||
// Масштаба нет - говорить не о чем | |||||
if getz >= z_no then exit; | |||||
// Выбор зеркала, если не указана версия | |||||
if version = '' then | |||||
r := random(2) | |||||
else | |||||
r := StrToInt(version); | |||||
case r of | |||||
0: BaseUrl := GetURLBase; | |||||
1: BaseUrl := RegExprReplaceMatchSubStr(GetURLBase, 'http://91.237.82.95:8088', 'https://maps.melda.ru'); | |||||
end; | |||||
// Проверяем наличие масштаба | |||||
if getz > z_ok then begin | |||||
code := GetCode(BaseUrl+inttostr(getz-1)+'/'); | |||||
// Внимание! Если сервер вернёт 403 - code почему-то будет 0. Так что выбор "404 или что-то иное" | |||||
// Если дело дошло до проверки наличия масштаба - значит какая-то граница (z_ok / z_no) точно подвинется. | |||||
if code = 404 then z_no := getz-1 else z_ok := getz-1; | |||||
// Сохраняем актуализированные границы для последующих вызовов | |||||
ScriptBuffer := inttostr(z_ok) + ';' + inttostr(z_no); | |||||
// Масштаба нет (о чём могли только что при проверке узнать) - говорить не о чем | |||||
if getz >= z_no then exit; | |||||
end; | |||||
// Ок, качаем тайлик | |||||
ResultURL:= BaseUrl+inttostr(getz-1)+'/'+inttostr(getx)+'/'+inttostr(gety)+'.png'; | |||||
end. |
@@ -0,0 +1,6 @@ | |||||
Все карты и права из раздела "Туристические" принадлежат их владельцам <br><br> | |||||
<br> | |||||
<br>скачать готовый кэш можно из облака майл-ру <A href=https://cloud.mail.ru/public/64hJ/Eun9HcSD4>https://cloud.mail.ru/public/64hJ/Eun9HcSD4</a> | |||||
<br> | |||||
Если у Вас есть чем дополнить этот раздел - смело шлите на ящик garl@mail.ru <br> | |||||
<br> |
@@ -0,0 +1,20 @@ | |||||
| |||||
[PARAMS] | |||||
pnum=17 | |||||
GUID={ac39a79e-04f5-4326-921f-19b2f534c293} | |||||
ParentSubMenu_ru=Туристические\Украина | |||||
ParentSubMenu_uk=Туристичний\Україна | |||||
ParentSubMenu=Hike\Ukraine | |||||
name_ru=Черногория 2010 | |||||
name=Chornogora 2010 | |||||
DefURLBase=http://91.237.82.95:8088/pub/tourism/ukraine/050_polish_map_Chernogora 2010/ | |||||
projection=1 | |||||
sradiusa=6378137 | |||||
sradiusb=6378137 | |||||
NameInCache=050_polish_map_Chernogora 2010 | |||||
Ext=.png | |||||
ContentType="image/png" | |||||
defaultContentType="image/png" | |||||
MaxConnectToServerCount=1 | |||||
IsUseDownloaderInScript=1 | |||||
License=(c) Издательство Compass |
@@ -0,0 +1,57 @@ | |||||
function GetCode(const url: AnsiString): Cardinal; | |||||
var | |||||
VResponseCode: Cardinal; | |||||
VResponseHeader, VResponseData: AnsiString; | |||||
begin | |||||
Result := 1; | |||||
if Assigned(Downloader) then begin | |||||
VResponseHeader := ''; | |||||
VResponseData := ''; | |||||
VResponseCode := Downloader.DoHttpRequest(url, '', '', VResponseHeader, VResponseData); | |||||
Result := VResponseCode; | |||||
end; | |||||
end; | |||||
var | |||||
BaseUrl: string; | |||||
code: Cardinal; | |||||
z_ok, z_no: integer; | |||||
r: integer; | |||||
begin | |||||
ResultURL := ''; | |||||
z_ok := StrToIntDef(GetBefore(';', ScriptBuffer), 1); // Максимальный масштаб, который точно есть | |||||
z_no := StrToIntDef(GetAfter(';', ScriptBuffer), 25); // Минимальный масштаб, которого точно нет | |||||
// Масштаба нет - говорить не о чем | |||||
if getz >= z_no then exit; | |||||
// Выбор зеркала, если не указана версия | |||||
if version = '' then | |||||
r := random(2) | |||||
else | |||||
r := StrToInt(version); | |||||
case r of | |||||
0: BaseUrl := GetURLBase; | |||||
1: BaseUrl := RegExprReplaceMatchSubStr(GetURLBase, 'http://91.237.82.95:8088', 'https://maps.melda.ru'); | |||||
end; | |||||
// Проверяем наличие масштаба | |||||
if getz > z_ok then begin | |||||
code := GetCode(BaseUrl+inttostr(getz-1)+'/'); | |||||
// Внимание! Если сервер вернёт 403 - code почему-то будет 0. Так что выбор "404 или что-то иное" | |||||
// Если дело дошло до проверки наличия масштаба - значит какая-то граница (z_ok / z_no) точно подвинется. | |||||
if code = 404 then z_no := getz-1 else z_ok := getz-1; | |||||
// Сохраняем актуализированные границы для последующих вызовов | |||||
ScriptBuffer := inttostr(z_ok) + ';' + inttostr(z_no); | |||||
// Масштаба нет (о чём могли только что при проверке узнать) - говорить не о чем | |||||
if getz >= z_no then exit; | |||||
end; | |||||
// Ок, качаем тайлик | |||||
ResultURL:= BaseUrl+inttostr(getz-1)+'/'+inttostr(getx)+'/'+inttostr(gety)+'.png'; | |||||
end. |
@@ -0,0 +1,6 @@ | |||||
Все карты и права из раздела "Туристические" принадлежат их владельцам <br><br> | |||||
<br> | |||||
<br>скачать готовый кэш можно из облака майл-ру <A href=https://cloud.mail.ru/public/64hJ/Eun9HcSD4>https://cloud.mail.ru/public/64hJ/Eun9HcSD4</a> | |||||
<br> | |||||
Если у Вас есть чем дополнить этот раздел - смело шлите на ящик garl@mail.ru <br> | |||||
<br> |
@@ -0,0 +1,20 @@ | |||||
| |||||
[PARAMS] | |||||
pnum=17 | |||||
GUID={03db589d-22fc-4b6f-b8ea-8544e4b72063} | |||||
ParentSubMenu_ru=Туристические\Украина | |||||
ParentSubMenu_uk=Туристичний\Україна | |||||
ParentSubMenu=Hike\Ukraine | |||||
name_ru=Черногория 2013 | |||||
name=Chornogora 2013 | |||||
DefURLBase=http://91.237.82.95:8088/pub/tourism/ukraine/050_polish_map_Chernogora 2013/ | |||||
projection=1 | |||||
sradiusa=6378137 | |||||
sradiusb=6378137 | |||||
NameInCache=050_polish_map_Chernogora 2013 | |||||
Ext=.png | |||||
ContentType="image/png" | |||||
defaultContentType="image/png" | |||||
MaxConnectToServerCount=1 | |||||
IsUseDownloaderInScript=1 | |||||
License=(c) Издательство Compass |