| @@ -1,13 +1,52 @@ | |||
| function GetCode(const url: AnsiString): Cardinal; | |||
| var | |||
| r: integer; | |||
| BaseUrl: string; | |||
| VResponseCode: Cardinal; | |||
| VResponseHeader, VResponseData: AnsiString; | |||
| begin | |||
| r := random(2); | |||
| 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; | |||
| // Выбор зеркала | |||
| r := random(2); | |||
| case r of | |||
| 0: BaseUrl := GetURLBase; | |||
| 1: BaseUrl := RegExprReplaceMatchSubStr(GetURLBase, '91.237.82.95:8088', 'maps.melda.ru'); | |||
| 0: BaseUrl := GetURLBase; | |||
| 1: BaseUrl := RegExprReplaceMatchSubStr(GetURLBase, '91.237.82.95:8088', 'maps.melda.ru'); | |||
| end; | |||
| // Проверяем наличие масштаба | |||
| if getz > z_ok then begin | |||
| code := GetCode(BaseUrl+'z'+inttostr(getz)+'/'); | |||
| // Внимание! Если сервер вернёт 403 - code почему-то будет 0. Так что выбор "404 или что-то иное" | |||
| // Если дело дошло до проверки наличия масштаба - значит какая-то граница (z_ok / z_no) точно подвинется. | |||
| if code = 404 then z_no := getz else z_ok := getz; | |||
| // Сохраняем актуализированные границы для последующих вызовов | |||
| ScriptBuffer := inttostr(z_ok) + ';' + inttostr(z_no); | |||
| // Масштаба нет (о чём могли только что при проверке узнать) - говорить не о чем | |||
| if getz >= z_no then exit; | |||
| end; | |||
| // Ок, качаем тайлик | |||
| ResultURL:= BaseUrl+'z'+inttostr(getz)+'/'+inttostr(getx div 1024)+'/x'+inttostr(getx)+'/'+inttostr(gety div 1024)+'/y'+inttostr(gety)+'.png'; | |||
| end. | |||
| end. | |||
| @@ -17,3 +17,4 @@ sradiusa=6378137 | |||
| sradiusb=6378137 | |||
| ContentType="image/png" | |||
| MaxConnectToServerCount=1 | |||
| IsUseDownloaderInScript=1 | |||
| @@ -1,13 +1,52 @@ | |||
| function GetCode(const url: AnsiString): Cardinal; | |||
| var | |||
| r: integer; | |||
| BaseUrl: string; | |||
| VResponseCode: Cardinal; | |||
| VResponseHeader, VResponseData: AnsiString; | |||
| begin | |||
| r := random(2); | |||
| 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; | |||
| // Выбор зеркала | |||
| r := random(2); | |||
| case r of | |||
| 0: BaseUrl := GetURLBase; | |||
| 1: BaseUrl := RegExprReplaceMatchSubStr(GetURLBase, '91.237.82.95:8088', 'maps.melda.ru'); | |||
| 0: BaseUrl := GetURLBase; | |||
| 1: BaseUrl := RegExprReplaceMatchSubStr(GetURLBase, '91.237.82.95:8088', 'maps.melda.ru'); | |||
| end; | |||
| // Проверяем наличие масштаба | |||
| if getz > z_ok then begin | |||
| code := GetCode(BaseUrl+'z'+inttostr(getz)+'/'); | |||
| // Внимание! Если сервер вернёт 403 - code почему-то будет 0. Так что выбор "404 или что-то иное" | |||
| // Если дело дошло до проверки наличия масштаба - значит какая-то граница (z_ok / z_no) точно подвинется. | |||
| if code = 404 then z_no := getz else z_ok := getz; | |||
| // Сохраняем актуализированные границы для последующих вызовов | |||
| ScriptBuffer := inttostr(z_ok) + ';' + inttostr(z_no); | |||
| // Масштаба нет (о чём могли только что при проверке узнать) - говорить не о чем | |||
| if getz >= z_no then exit; | |||
| end; | |||
| // Ок, качаем тайлик | |||
| ResultURL:= BaseUrl+'z'+inttostr(getz)+'/'+inttostr(getx div 1024)+'/x'+inttostr(getx)+'/'+inttostr(gety div 1024)+'/y'+inttostr(gety)+'.jpg'; | |||
| end. | |||
| end. | |||
| @@ -16,3 +16,4 @@ sradiusa=6378137 | |||
| sradiusb=6378137 | |||
| ContentType="image/jpeg" | |||
| MaxConnectToServerCount=1 | |||
| IsUseDownloaderInScript=1 | |||
| @@ -1,13 +1,52 @@ | |||
| function GetCode(const url: AnsiString): Cardinal; | |||
| var | |||
| r: integer; | |||
| BaseUrl: string; | |||
| VResponseCode: Cardinal; | |||
| VResponseHeader, VResponseData: AnsiString; | |||
| begin | |||
| r := random(2); | |||
| 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; | |||
| // Выбор зеркала | |||
| r := random(2); | |||
| case r of | |||
| 0: BaseUrl := GetURLBase; | |||
| 1: BaseUrl := RegExprReplaceMatchSubStr(GetURLBase, '91.237.82.95:8088', 'maps.melda.ru'); | |||
| 0: BaseUrl := GetURLBase; | |||
| 1: BaseUrl := RegExprReplaceMatchSubStr(GetURLBase, '91.237.82.95:8088', 'maps.melda.ru'); | |||
| end; | |||
| // Проверяем наличие масштаба | |||
| if getz > z_ok then begin | |||
| code := GetCode(BaseUrl+'z'+inttostr(getz)+'/'); | |||
| // Внимание! Если сервер вернёт 403 - code почему-то будет 0. Так что выбор "404 или что-то иное" | |||
| // Если дело дошло до проверки наличия масштаба - значит какая-то граница (z_ok / z_no) точно подвинется. | |||
| if code = 404 then z_no := getz else z_ok := getz; | |||
| // Сохраняем актуализированные границы для последующих вызовов | |||
| ScriptBuffer := inttostr(z_ok) + ';' + inttostr(z_no); | |||
| // Масштаба нет (о чём могли только что при проверке узнать) - говорить не о чем | |||
| if getz >= z_no then exit; | |||
| end; | |||
| // Ок, качаем тайлик | |||
| ResultURL:= BaseUrl+'z'+inttostr(getz)+'/'+inttostr(getx div 1024)+'/x'+inttostr(getx)+'/'+inttostr(gety div 1024)+'/y'+inttostr(gety)+'.jpg'; | |||
| end. | |||
| end. | |||
| @@ -17,4 +17,5 @@ projection=1 | |||
| sradiusa=6378137 | |||
| sradiusb=6378137 | |||
| ContentType="image/jpeg" | |||
| MaxConnectToServerCount=1 | |||
| MaxConnectToServerCount=1 | |||
| IsUseDownloaderInScript=1 | |||
| @@ -1,13 +1,52 @@ | |||
| function GetCode(const url: AnsiString): Cardinal; | |||
| var | |||
| r: integer; | |||
| BaseUrl: string; | |||
| VResponseCode: Cardinal; | |||
| VResponseHeader, VResponseData: AnsiString; | |||
| begin | |||
| r := random(2); | |||
| 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; | |||
| // Выбор зеркала | |||
| r := random(2); | |||
| case r of | |||
| 0: BaseUrl := GetURLBase; | |||
| 1: BaseUrl := RegExprReplaceMatchSubStr(GetURLBase, '91.237.82.95:8088', 'maps.melda.ru'); | |||
| 0: BaseUrl := GetURLBase; | |||
| 1: BaseUrl := RegExprReplaceMatchSubStr(GetURLBase, '91.237.82.95:8088', 'maps.melda.ru'); | |||
| end; | |||
| // Проверяем наличие масштаба | |||
| if getz > z_ok then begin | |||
| code := GetCode(BaseUrl+'z'+inttostr(getz)+'/'); | |||
| // Внимание! Если сервер вернёт 403 - code почему-то будет 0. Так что выбор "404 или что-то иное" | |||
| // Если дело дошло до проверки наличия масштаба - значит какая-то граница (z_ok / z_no) точно подвинется. | |||
| if code = 404 then z_no := getz else z_ok := getz; | |||
| // Сохраняем актуализированные границы для последующих вызовов | |||
| ScriptBuffer := inttostr(z_ok) + ';' + inttostr(z_no); | |||
| // Масштаба нет (о чём могли только что при проверке узнать) - говорить не о чем | |||
| if getz >= z_no then exit; | |||
| end; | |||
| // Ок, качаем тайлик | |||
| ResultURL:= BaseUrl+'z'+inttostr(getz)+'/'+inttostr(getx div 1024)+'/x'+inttostr(getx)+'/'+inttostr(gety div 1024)+'/y'+inttostr(gety)+'.jpg'; | |||
| end. | |||
| end. | |||
| @@ -18,3 +18,4 @@ sradiusa=6378137 | |||
| sradiusb=6378137 | |||
| ContentType="image/jpeg" | |||
| MaxConnectToServerCount=1 | |||
| IsUseDownloaderInScript=1 | |||
| @@ -1,13 +1,52 @@ | |||
| function GetCode(const url: AnsiString): Cardinal; | |||
| var | |||
| r: integer; | |||
| BaseUrl: string; | |||
| VResponseCode: Cardinal; | |||
| VResponseHeader, VResponseData: AnsiString; | |||
| begin | |||
| r := random(2); | |||
| 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; | |||
| // Выбор зеркала | |||
| r := random(2); | |||
| case r of | |||
| 0: BaseUrl := GetURLBase; | |||
| 1: BaseUrl := RegExprReplaceMatchSubStr(GetURLBase, '91.237.82.95:8088', 'maps.melda.ru'); | |||
| 0: BaseUrl := GetURLBase; | |||
| 1: BaseUrl := RegExprReplaceMatchSubStr(GetURLBase, '91.237.82.95:8088', 'maps.melda.ru'); | |||
| end; | |||
| // Проверяем наличие масштаба | |||
| if getz > z_ok then begin | |||
| code := GetCode(BaseUrl+'z'+inttostr(getz)+'/'); | |||
| // Внимание! Если сервер вернёт 403 - code почему-то будет 0. Так что выбор "404 или что-то иное" | |||
| // Если дело дошло до проверки наличия масштаба - значит какая-то граница (z_ok / z_no) точно подвинется. | |||
| if code = 404 then z_no := getz else z_ok := getz; | |||
| // Сохраняем актуализированные границы для последующих вызовов | |||
| ScriptBuffer := inttostr(z_ok) + ';' + inttostr(z_no); | |||
| // Масштаба нет (о чём могли только что при проверке узнать) - говорить не о чем | |||
| if getz >= z_no then exit; | |||
| end; | |||
| // Ок, качаем тайлик | |||
| ResultURL:= BaseUrl+'z'+inttostr(getz)+'/'+inttostr(getx div 1024)+'/x'+inttostr(getx)+'/'+inttostr(gety div 1024)+'/y'+inttostr(gety)+'.jpg'; | |||
| end. | |||
| end. | |||
| @@ -17,3 +17,4 @@ sradiusb=6378137 | |||
| DefHotKey=50 | |||
| ContentType="image/jpeg" | |||
| MaxConnectToServerCount=1 | |||
| IsUseDownloaderInScript=1 | |||
| @@ -1,13 +1,52 @@ | |||
| function GetCode(const url: AnsiString): Cardinal; | |||
| var | |||
| r: integer; | |||
| BaseUrl: string; | |||
| VResponseCode: Cardinal; | |||
| VResponseHeader, VResponseData: AnsiString; | |||
| begin | |||
| r := random(2); | |||
| 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; | |||
| // Выбор зеркала | |||
| r := random(2); | |||
| case r of | |||
| 0: BaseUrl := GetURLBase; | |||
| 1: BaseUrl := RegExprReplaceMatchSubStr(GetURLBase, '91.237.82.95:8088', 'maps.melda.ru'); | |||
| 0: BaseUrl := GetURLBase; | |||
| 1: BaseUrl := RegExprReplaceMatchSubStr(GetURLBase, '91.237.82.95:8088', 'maps.melda.ru'); | |||
| end; | |||
| // Проверяем наличие масштаба | |||
| if getz > z_ok then begin | |||
| code := GetCode(BaseUrl+'z'+inttostr(getz)+'/'); | |||
| // Внимание! Если сервер вернёт 403 - code почему-то будет 0. Так что выбор "404 или что-то иное" | |||
| // Если дело дошло до проверки наличия масштаба - значит какая-то граница (z_ok / z_no) точно подвинется. | |||
| if code = 404 then z_no := getz else z_ok := getz; | |||
| // Сохраняем актуализированные границы для последующих вызовов | |||
| ScriptBuffer := inttostr(z_ok) + ';' + inttostr(z_no); | |||
| // Масштаба нет (о чём могли только что при проверке узнать) - говорить не о чем | |||
| if getz >= z_no then exit; | |||
| end; | |||
| // Ок, качаем тайлик | |||
| ResultURL:= BaseUrl+'z'+inttostr(getz)+'/'+inttostr(getx div 1024)+'/x'+inttostr(getx)+'/'+inttostr(gety div 1024)+'/y'+inttostr(gety)+'.jpg'; | |||
| end. | |||
| end. | |||
| @@ -17,3 +17,4 @@ sradiusa=6378137 | |||
| sradiusb=6378137 | |||
| ContentType="image/jpeg" | |||
| MaxConnectToServerCount=1 | |||
| IsUseDownloaderInScript=1 | |||
| @@ -1,13 +1,52 @@ | |||
| function GetCode(const url: AnsiString): Cardinal; | |||
| var | |||
| r: integer; | |||
| BaseUrl: string; | |||
| VResponseCode: Cardinal; | |||
| VResponseHeader, VResponseData: AnsiString; | |||
| begin | |||
| r := random(2); | |||
| 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; | |||
| // Выбор зеркала | |||
| r := random(2); | |||
| case r of | |||
| 0: BaseUrl := GetURLBase; | |||
| 1: BaseUrl := RegExprReplaceMatchSubStr(GetURLBase, '91.237.82.95:8088', 'maps.melda.ru'); | |||
| 0: BaseUrl := GetURLBase; | |||
| 1: BaseUrl := RegExprReplaceMatchSubStr(GetURLBase, '91.237.82.95:8088', 'maps.melda.ru'); | |||
| end; | |||
| // Проверяем наличие масштаба | |||
| if getz > z_ok then begin | |||
| code := GetCode(BaseUrl+'z'+inttostr(getz)+'/'); | |||
| // Внимание! Если сервер вернёт 403 - code почему-то будет 0. Так что выбор "404 или что-то иное" | |||
| // Если дело дошло до проверки наличия масштаба - значит какая-то граница (z_ok / z_no) точно подвинется. | |||
| if code = 404 then z_no := getz else z_ok := getz; | |||
| // Сохраняем актуализированные границы для последующих вызовов | |||
| ScriptBuffer := inttostr(z_ok) + ';' + inttostr(z_no); | |||
| // Масштаба нет (о чём могли только что при проверке узнать) - говорить не о чем | |||
| if getz >= z_no then exit; | |||
| end; | |||
| // Ок, качаем тайлик | |||
| ResultURL:= BaseUrl+'z'+inttostr(getz)+'/'+inttostr(getx div 1024)+'/x'+inttostr(getx)+'/'+inttostr(gety div 1024)+'/y'+inttostr(gety)+'.jpg'; | |||
| end. | |||
| end. | |||
| @@ -16,3 +16,4 @@ sradiusa=6378137 | |||
| sradiusb=6378137 | |||
| ContentType="image/jpeg" | |||
| MaxConnectToServerCount=1 | |||
| IsUseDownloaderInScript=1 | |||
| @@ -1,13 +1,52 @@ | |||
| function GetCode(const url: AnsiString): Cardinal; | |||
| var | |||
| r: integer; | |||
| BaseUrl: string; | |||
| VResponseCode: Cardinal; | |||
| VResponseHeader, VResponseData: AnsiString; | |||
| begin | |||
| r := random(2); | |||
| 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; | |||
| // Выбор зеркала | |||
| r := random(2); | |||
| case r of | |||
| 0: BaseUrl := GetURLBase; | |||
| 1: BaseUrl := RegExprReplaceMatchSubStr(GetURLBase, '91.237.82.95:8088', 'maps.melda.ru'); | |||
| 0: BaseUrl := GetURLBase; | |||
| 1: BaseUrl := RegExprReplaceMatchSubStr(GetURLBase, '91.237.82.95:8088', 'maps.melda.ru'); | |||
| end; | |||
| // Проверяем наличие масштаба | |||
| if getz > z_ok then begin | |||
| code := GetCode(BaseUrl+'z'+inttostr(getz)+'/'); | |||
| // Внимание! Если сервер вернёт 403 - code почему-то будет 0. Так что выбор "404 или что-то иное" | |||
| // Если дело дошло до проверки наличия масштаба - значит какая-то граница (z_ok / z_no) точно подвинется. | |||
| if code = 404 then z_no := getz else z_ok := getz; | |||
| // Сохраняем актуализированные границы для последующих вызовов | |||
| ScriptBuffer := inttostr(z_ok) + ';' + inttostr(z_no); | |||
| // Масштаба нет (о чём могли только что при проверке узнать) - говорить не о чем | |||
| if getz >= z_no then exit; | |||
| end; | |||
| // Ок, качаем тайлик | |||
| ResultURL:= BaseUrl+'z'+inttostr(getz)+'/'+inttostr(getx div 1024)+'/x'+inttostr(getx)+'/'+inttostr(gety div 1024)+'/y'+inttostr(gety)+'.jpg'; | |||
| end. | |||
| end. | |||
| @@ -16,3 +16,4 @@ Ext=.jpg | |||
| defaultContentType=image/jpeg | |||
| ContentType="image/jpeg" | |||
| MaxConnectToServerCount=1 | |||
| IsUseDownloaderInScript=1 | |||