diff --git a/_Coverage/Megafon/megafon.2g.zmp/18.bmp b/_Coverage/Megafon/megafon.2g.zmp/18.bmp new file mode 100644 index 000000000..bd4ec3e3f Binary files /dev/null and b/_Coverage/Megafon/megafon.2g.zmp/18.bmp differ diff --git a/_Coverage/Megafon/megafon.2g.zmp/24.bmp b/_Coverage/Megafon/megafon.2g.zmp/24.bmp new file mode 100644 index 000000000..fd0270b14 Binary files /dev/null and b/_Coverage/Megafon/megafon.2g.zmp/24.bmp differ diff --git a/_Coverage/Megafon/megafon.2g.zmp/params.txt b/_Coverage/Megafon/megafon.2g.zmp/params.txt index 604fe40c2..5a4ab980d 100644 --- a/_Coverage/Megafon/megafon.2g.zmp/params.txt +++ b/_Coverage/Megafon/megafon.2g.zmp/params.txt @@ -2,8 +2,8 @@ GUID={0b111110-866b-466e-b8d7-7b43297400c3} name_ru=Мегафон 2G GSM name=Megafon 2G GSM -ParentSubMenu_ru=Cотовые сети -ParentSubMenu=Mobile coverage area +ParentSubMenu_ru=Сломанные карты\Cотовые сети +ParentSubMenu=Not working\Mobile coverage area asLayer=1 DefURLBase=http://yamap.megafon.ru/g2/ projection=2 diff --git a/_Coverage/Megafon/megafon.3g.zmp/18.bmp b/_Coverage/Megafon/megafon.3g.zmp/18.bmp new file mode 100644 index 000000000..bd4ec3e3f Binary files /dev/null and b/_Coverage/Megafon/megafon.3g.zmp/18.bmp differ diff --git a/_Coverage/Megafon/megafon.3g.zmp/24.bmp b/_Coverage/Megafon/megafon.3g.zmp/24.bmp new file mode 100644 index 000000000..fd0270b14 Binary files /dev/null and b/_Coverage/Megafon/megafon.3g.zmp/24.bmp differ diff --git a/_Coverage/Megafon/megafon.3g.zmp/params.txt b/_Coverage/Megafon/megafon.3g.zmp/params.txt index d22d998ac..252f5098d 100644 --- a/_Coverage/Megafon/megafon.3g.zmp/params.txt +++ b/_Coverage/Megafon/megafon.3g.zmp/params.txt @@ -2,8 +2,8 @@ GUID={0b122210-866b-466e-b8d7-7b43297400c3} name_ru=Мегафон 3G name=Megafon 3G -ParentSubMenu_ru=Cотовые сети -ParentSubMenu=Mobile coverage area +ParentSubMenu_ru=Сломанные карты\Cотовые сети +ParentSubMenu=Not working\Mobile coverage area asLayer=1 DefURLBase=http://yamap.megafon.ru/g3/ projection=2 diff --git a/_Coverage/Megafon/megafon.4g100.zmp/18.bmp b/_Coverage/Megafon/megafon.4g100.zmp/18.bmp new file mode 100644 index 000000000..bd4ec3e3f Binary files /dev/null and b/_Coverage/Megafon/megafon.4g100.zmp/18.bmp differ diff --git a/_Coverage/Megafon/megafon.4g100.zmp/24.bmp b/_Coverage/Megafon/megafon.4g100.zmp/24.bmp new file mode 100644 index 000000000..fd0270b14 Binary files /dev/null and b/_Coverage/Megafon/megafon.4g100.zmp/24.bmp differ diff --git a/_Coverage/Megafon/megafon.4g100.zmp/params.txt b/_Coverage/Megafon/megafon.4g100.zmp/params.txt index e788e2db8..41be99680 100644 --- a/_Coverage/Megafon/megafon.4g100.zmp/params.txt +++ b/_Coverage/Megafon/megafon.4g100.zmp/params.txt @@ -2,8 +2,8 @@ GUID={0b133330-866b-466e-b8d7-7b43297400c3} name_ru=Мегафон 4G name=Megafon 4G -ParentSubMenu_ru=Cотовые сети -ParentSubMenu=Mobile coverage area +ParentSubMenu_ru=Сломанные карты\Cотовые сети +ParentSubMenu=Not working\Mobile coverage area asLayer=1 DefURLBase=http://yamap.megafon.ru/lte/ projection=2 diff --git a/_Coverage/Megafon/megafon.4g300.zmp/18.bmp b/_Coverage/Megafon/megafon.4g300.zmp/18.bmp new file mode 100644 index 000000000..bd4ec3e3f Binary files /dev/null and b/_Coverage/Megafon/megafon.4g300.zmp/18.bmp differ diff --git a/_Coverage/Megafon/megafon.4g300.zmp/24.bmp b/_Coverage/Megafon/megafon.4g300.zmp/24.bmp new file mode 100644 index 000000000..fd0270b14 Binary files /dev/null and b/_Coverage/Megafon/megafon.4g300.zmp/24.bmp differ diff --git a/_Coverage/Megafon/megafon.4g300.zmp/params.txt b/_Coverage/Megafon/megafon.4g300.zmp/params.txt index 92147ea00..b03e6d0df 100644 --- a/_Coverage/Megafon/megafon.4g300.zmp/params.txt +++ b/_Coverage/Megafon/megafon.4g300.zmp/params.txt @@ -2,8 +2,8 @@ GUID={0b144440-866b-466e-b8d7-7b43297400c3} name_ru=Мегафон 4G+ name=Megafon 4G+ -ParentSubMenu_ru=Cотовые сети -ParentSubMenu=Mobile coverage area +ParentSubMenu_ru=Сломанные карты\Cотовые сети +ParentSubMenu=Not working\Mobile coverage area asLayer=1 DefURLBase=http://yamap.megafon.ru/lte_plus/ projection=2 diff --git a/_Coverage/Mts/mts.2g.zmp/18.bmp b/_Coverage/Mts/mts.2g.zmp/18.bmp new file mode 100644 index 000000000..6de3b7c69 Binary files /dev/null and b/_Coverage/Mts/mts.2g.zmp/18.bmp differ diff --git a/_Coverage/Mts/mts.2g.zmp/24.bmp b/_Coverage/Mts/mts.2g.zmp/24.bmp new file mode 100644 index 000000000..1366510ae Binary files /dev/null and b/_Coverage/Mts/mts.2g.zmp/24.bmp differ diff --git a/_Coverage/Mts/mts.2g.zmp/params.txt b/_Coverage/Mts/mts.2g.zmp/params.txt index 1a3f4379f..fe5c34c1a 100644 --- a/_Coverage/Mts/mts.2g.zmp/params.txt +++ b/_Coverage/Mts/mts.2g.zmp/params.txt @@ -2,8 +2,8 @@ GUID={0bffa4e0-852b-4bee-b8d7-7b43297400c3} name_ru=МТС 2G name=MTS 2G -ParentSubMenu_ru=Cотовые сети -ParentSubMenu=Mobile coverage area +ParentSubMenu_ru=Сломанные карты\Cотовые сети +ParentSubMenu=Not working\Mobile coverage area asLayer=1 DefURLBase=http://tiles.mts.ru/G2_New/ projection=2 diff --git a/_Coverage/Mts/mts.3g.zmp/18.bmp b/_Coverage/Mts/mts.3g.zmp/18.bmp new file mode 100644 index 000000000..6de3b7c69 Binary files /dev/null and b/_Coverage/Mts/mts.3g.zmp/18.bmp differ diff --git a/_Coverage/Mts/mts.3g.zmp/24.bmp b/_Coverage/Mts/mts.3g.zmp/24.bmp new file mode 100644 index 000000000..1366510ae Binary files /dev/null and b/_Coverage/Mts/mts.3g.zmp/24.bmp differ diff --git a/_Coverage/Mts/mts.3g.zmp/params.txt b/_Coverage/Mts/mts.3g.zmp/params.txt index e50643321..b14ff6565 100644 --- a/_Coverage/Mts/mts.3g.zmp/params.txt +++ b/_Coverage/Mts/mts.3g.zmp/params.txt @@ -2,8 +2,8 @@ GUID={ce276b7a-a0e3-47a4-bb66-af84b817801d} name_ru=МТС 3G name=MTS 3G -ParentSubMenu_ru=Cотовые сети -ParentSubMenu=Mobile coverage area +ParentSubMenu_ru=Сломанные карты\Cотовые сети +ParentSubMenu=Not working\Mobile coverage area asLayer=1 DefURLBase=http://tiles.mts.ru/G3_New/ projection=2 diff --git a/_Coverage/Mts/mts.4g.zmp/18.bmp b/_Coverage/Mts/mts.4g.zmp/18.bmp new file mode 100644 index 000000000..6de3b7c69 Binary files /dev/null and b/_Coverage/Mts/mts.4g.zmp/18.bmp differ diff --git a/_Coverage/Mts/mts.4g.zmp/24.bmp b/_Coverage/Mts/mts.4g.zmp/24.bmp new file mode 100644 index 000000000..1366510ae Binary files /dev/null and b/_Coverage/Mts/mts.4g.zmp/24.bmp differ diff --git a/_Coverage/Mts/mts.4g.zmp/params.txt b/_Coverage/Mts/mts.4g.zmp/params.txt index c9cf96450..413805717 100644 --- a/_Coverage/Mts/mts.4g.zmp/params.txt +++ b/_Coverage/Mts/mts.4g.zmp/params.txt @@ -2,8 +2,8 @@ GUID={dc5600ae-2507-4a2b-a6e4-4b2270575020} name_ru=МТС 4G name=MTS 4G -ParentSubMenu_ru=Cотовые сети -ParentSubMenu=Mobile coverage area +ParentSubMenu_ru=Сломанные карты\Cотовые сети +ParentSubMenu=Not working\Mobile coverage area asLayer=1 DefURLBase=http://tiles.mts.ru/LTE_New/ projection=2 diff --git a/_Coverage/Mts/mts.4g_plan.zmp/18.bmp b/_Coverage/Mts/mts.4g_plan.zmp/18.bmp new file mode 100644 index 000000000..6de3b7c69 Binary files /dev/null and b/_Coverage/Mts/mts.4g_plan.zmp/18.bmp differ diff --git a/_Coverage/Mts/mts.4g_plan.zmp/24.bmp b/_Coverage/Mts/mts.4g_plan.zmp/24.bmp new file mode 100644 index 000000000..1366510ae Binary files /dev/null and b/_Coverage/Mts/mts.4g_plan.zmp/24.bmp differ diff --git a/_Coverage/Mts/mts.4g_plan.zmp/params.txt b/_Coverage/Mts/mts.4g_plan.zmp/params.txt index db60ab369..683d14085 100644 --- a/_Coverage/Mts/mts.4g_plan.zmp/params.txt +++ b/_Coverage/Mts/mts.4g_plan.zmp/params.txt @@ -2,8 +2,8 @@ GUID={ffe20781-25e6-42c8-bf8e-2879789477b2} name_ru=МТС 4G планируемое name=MTS 4G planned -ParentSubMenu_ru=Cотовые сети -ParentSubMenu=Mobile coverage area +ParentSubMenu_ru=Сломанные карты\Cотовые сети +ParentSubMenu=Not working\Mobile coverage area asLayer=1 DefURLBase=http://tiles.mts.ru/LTE_Plan_New/ projection=2 diff --git a/_OSM/osm_WayMarkeredTrails_Hiking.zmp/params.txt b/_OSM/osm_WayMarkeredTrails_Hiking.zmp/params.txt index b914c1a6c..7df63a945 100644 --- a/_OSM/osm_WayMarkeredTrails_Hiking.zmp/params.txt +++ b/_OSM/osm_WayMarkeredTrails_Hiking.zmp/params.txt @@ -3,7 +3,7 @@ GUID={1123ADB1-4561-4280-9225-D4690321117E} ParentSubMenu_ru=Маршруты и GPS-Треки ParentSubMenu_uk=Маршруты и GPS-Треки ParentSubMenu=Ways and GPS-Tracks -name=WayMarkeredTrails iking +name=WayMarkeredTrails Hiking asLayer=1 NameInCache=waymarkedtrails_hiking DefURLBase=https://tile.waymarkedtrails.org/hiking diff --git a/mapbox/18.bmp b/anygis/Mapbox_Sat.zmp/18.bmp similarity index 100% rename from mapbox/18.bmp rename to anygis/Mapbox_Sat.zmp/18.bmp diff --git a/mapbox/24.bmp b/anygis/Mapbox_Sat.zmp/24.bmp similarity index 100% rename from mapbox/24.bmp rename to anygis/Mapbox_Sat.zmp/24.bmp diff --git a/anygis/Mapbox_Sat.zmp/info.txt b/anygis/Mapbox_Sat.zmp/info.txt new file mode 100644 index 000000000..94ae5cdcb --- /dev/null +++ b/anygis/Mapbox_Sat.zmp/info.txt @@ -0,0 +1,9 @@ +Этот файл был создан автоматически с помощью файло-генератора AnyGIS.ru + +Он должен работать с SasPlanet версии 200127.10112 и новее + +Если вы заметили ошибку, свяжитесь со мной и сообщите о ней: + +https://t.me/anygis +https://vk.com/anygis +anygis@bk.ru \ No newline at end of file diff --git a/anygis/Mapbox_Sat.zmp/params.txt b/anygis/Mapbox_Sat.zmp/params.txt new file mode 100644 index 000000000..0e30b9966 --- /dev/null +++ b/anygis/Mapbox_Sat.zmp/params.txt @@ -0,0 +1,17 @@ +п»ї +[PARAMS] +GUID={16BBE393-814C-4A37-BF28-F7362EC5FB9F} +ParentSubMenu_ru=Спутниковые +ParentSubMenu_uk=Спутниковые +ParentSubMenu=Satellite +name_ru=Mapbox satellite v4 +name_uk=Mapbox satellite v4 +name=Mapbox satellite v4 +NameInCache=Mapbox_Sat +asLayer=0 +EPSG=3785 +DefURLBase=http://api.tiles.mapbox.com/v4/mapbox.satellite/{z}/{x}/{y}.png?access_token=pk.eyJ1IjoienZlcmlrIiwiYSI6IjVLMGxwbGsifQ.pdb83NbjTrfl9ibbdjPSsg +RequestHead=Connection: keep-alive\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36\r\nAccept: image/webp,image/apng,image/*,*/*;q=0.8\r\nAccept-Encoding: gzip, deflate\r\nAccept-Language: ru,en-US;q=0.9,en;q=0.8 +ContentType=image/jpeg,image/png +Ext=.png +License= В© Mapbox diff --git a/anygis/Maxar_via_Facebook.zmp/18.bmp b/anygis/Maxar_via_Facebook.zmp/18.bmp new file mode 100644 index 000000000..a942fa46b Binary files /dev/null and b/anygis/Maxar_via_Facebook.zmp/18.bmp differ diff --git a/anygis/Maxar_via_Facebook.zmp/24.bmp b/anygis/Maxar_via_Facebook.zmp/24.bmp new file mode 100644 index 000000000..da49b1710 Binary files /dev/null and b/anygis/Maxar_via_Facebook.zmp/24.bmp differ diff --git a/anygis/Maxar_via_Facebook.zmp/info.txt b/anygis/Maxar_via_Facebook.zmp/info.txt new file mode 100644 index 000000000..94ae5cdcb --- /dev/null +++ b/anygis/Maxar_via_Facebook.zmp/info.txt @@ -0,0 +1,9 @@ +Этот файл был создан автоматически с помощью файло-генератора AnyGIS.ru + +Он должен работать с SasPlanet версии 200127.10112 и новее + +Если вы заметили ошибку, свяжитесь со мной и сообщите о ней: + +https://t.me/anygis +https://vk.com/anygis +anygis@bk.ru \ No newline at end of file diff --git a/anygis/Maxar_via_Facebook.zmp/params.txt b/anygis/Maxar_via_Facebook.zmp/params.txt new file mode 100644 index 000000000..e39a71712 --- /dev/null +++ b/anygis/Maxar_via_Facebook.zmp/params.txt @@ -0,0 +1,17 @@ +п»ї +[PARAMS] +GUID={F224BE12-F871-4F9A-8109-9FFDD6592261} +ParentSubMenu_ru=Спутниковые +ParentSubMenu_uk=Спутниковые +ParentSubMenu=Satellite +name_ru=Maxar (via Facebook) zoom 11-18 +name_uk=Maxar (via Facebook) zoom 11-18 +name=Maxar (via Facebook) zoom 11-18 +NameInCache=Maxar_via_Facebook +asLayer=0 +EPSG=3785 +DefURLBase=https://www.facebook.com/maps/ml_roads?theme=ml_road_vector&collaborator=fbid&token=ASZUVdYpCkd3M6ZrzjXdQzHulqRMnxdlkeBJWEKOeTUoY_Gwm9fuEd2YObLrClgDB_xfavizBsh0oDfTWTF7Zb4C&hash=ASYM8LPNy8k1XoJiI7A&result_type=satellite_raster_tile&materialize=true&x={x}&y={y}&z={z} +RequestHead=Referer:https://mapwith.ai/rapid\r\nConnection: keep-alive\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36\r\nAccept: image/webp,image/apng,image/*,*/*;q=0.8\r\nAccept-Encoding: gzip, deflate\r\nAccept-Language: ru,en-US;q=0.9,en;q=0.8 +ContentType=image/jpeg,image/png +Ext=.jpg +License= В© Maxar diff --git a/anygis/OpenTopoMapRU.zmp/18.bmp b/anygis/OpenTopoMapRU.zmp/18.bmp new file mode 100644 index 000000000..a0fe7dc75 Binary files /dev/null and b/anygis/OpenTopoMapRU.zmp/18.bmp differ diff --git a/anygis/OpenTopoMapRU.zmp/24.bmp b/anygis/OpenTopoMapRU.zmp/24.bmp new file mode 100644 index 000000000..52c0bbf36 Binary files /dev/null and b/anygis/OpenTopoMapRU.zmp/24.bmp differ diff --git a/anygis/OpenTopoMapRU.zmp/info.txt b/anygis/OpenTopoMapRU.zmp/info.txt new file mode 100644 index 000000000..94ae5cdcb --- /dev/null +++ b/anygis/OpenTopoMapRU.zmp/info.txt @@ -0,0 +1,9 @@ +Этот файл был создан автоматически с помощью файло-генератора AnyGIS.ru + +Он должен работать с SasPlanet версии 200127.10112 и новее + +Если вы заметили ошибку, свяжитесь со мной и сообщите о ней: + +https://t.me/anygis +https://vk.com/anygis +anygis@bk.ru \ No newline at end of file diff --git a/anygis/OpenTopoMapRU.zmp/params.txt b/anygis/OpenTopoMapRU.zmp/params.txt new file mode 100644 index 000000000..0f869ea16 --- /dev/null +++ b/anygis/OpenTopoMapRU.zmp/params.txt @@ -0,0 +1,18 @@ +п»ї +[PARAMS] +GUID={8D5C7041-474A-468E-A37E-63BE5194E759} +ParentSubMenu_ru=OSM +ParentSubMenu_uk=OSM +ParentSubMenu=OSM +name_ru=OpenTopoMap.RU +name_uk=OpenTopoMap.RU +name=OpenTopoMap.RU +NameInCache=OpenTopoMapRU +asLayer=0 +EPSG=3785 +DefURLBase=https://tile-{s}.opentopomap.ru/{z}/{x}/{y}.png +ServerNames=a,b,c +RequestHead=Referer:http://www.sasgis.org/ +ContentType=image/jpeg,image/png +Ext=.png +License= В© OpenStreetMap, OpenTopoMap.ru diff --git a/anygis/RusOurdoor.zmp/18.bmp b/anygis/RusOurdoor.zmp/18.bmp new file mode 100644 index 000000000..584dfd410 Binary files /dev/null and b/anygis/RusOurdoor.zmp/18.bmp differ diff --git a/anygis/RusOurdoor.zmp/24.bmp b/anygis/RusOurdoor.zmp/24.bmp new file mode 100644 index 000000000..13c144685 Binary files /dev/null and b/anygis/RusOurdoor.zmp/24.bmp differ diff --git a/anygis/RusOurdoor.zmp/info.txt b/anygis/RusOurdoor.zmp/info.txt new file mode 100644 index 000000000..94ae5cdcb --- /dev/null +++ b/anygis/RusOurdoor.zmp/info.txt @@ -0,0 +1,9 @@ +Этот файл был создан автоматически с помощью файло-генератора AnyGIS.ru + +Он должен работать с SasPlanet версии 200127.10112 и новее + +Если вы заметили ошибку, свяжитесь со мной и сообщите о ней: + +https://t.me/anygis +https://vk.com/anygis +anygis@bk.ru \ No newline at end of file diff --git a/anygis/RusOurdoor.zmp/params.txt b/anygis/RusOurdoor.zmp/params.txt new file mode 100644 index 000000000..566460296 --- /dev/null +++ b/anygis/RusOurdoor.zmp/params.txt @@ -0,0 +1,17 @@ +п»ї +[PARAMS] +GUID={41B5F6BE-6108-4158-AD04-9317E841AE92} +ParentSubMenu_ru=Туристические\Многослойные +ParentSubMenu_uk=Туристические\Многослойные +ParentSubMenu=Tourism\Karelia +name_ru=RusOutdoor maps +name_uk=RusOutdoor maps +name=RusOutdoor maps +NameInCache=RusOurdoor +asLayer=0 +EPSG=3785 +DefURLBase=https://anygis.ru/api/v1/Combo_RusOutdoor/{x}/{y}/{z} +RequestHead=Referer:http://www.sasgis.org/ +ContentType=image/jpeg,image/png +Ext=.jpg + diff --git a/anygis/RusOurdoor_lite.zmp/18.bmp b/anygis/RusOurdoor_lite.zmp/18.bmp new file mode 100644 index 000000000..584dfd410 Binary files /dev/null and b/anygis/RusOurdoor_lite.zmp/18.bmp differ diff --git a/anygis/RusOurdoor_lite.zmp/24.bmp b/anygis/RusOurdoor_lite.zmp/24.bmp new file mode 100644 index 000000000..13c144685 Binary files /dev/null and b/anygis/RusOurdoor_lite.zmp/24.bmp differ diff --git a/anygis/RusOurdoor_lite.zmp/info.txt b/anygis/RusOurdoor_lite.zmp/info.txt new file mode 100644 index 000000000..94ae5cdcb --- /dev/null +++ b/anygis/RusOurdoor_lite.zmp/info.txt @@ -0,0 +1,9 @@ +Этот файл был создан автоматически с помощью файло-генератора AnyGIS.ru + +Он должен работать с SasPlanet версии 200127.10112 и новее + +Если вы заметили ошибку, свяжитесь со мной и сообщите о ней: + +https://t.me/anygis +https://vk.com/anygis +anygis@bk.ru \ No newline at end of file diff --git a/anygis/RusOurdoor_lite.zmp/params.txt b/anygis/RusOurdoor_lite.zmp/params.txt new file mode 100644 index 000000000..8cb333d85 --- /dev/null +++ b/anygis/RusOurdoor_lite.zmp/params.txt @@ -0,0 +1,17 @@ +п»ї +[PARAMS] +GUID={A4694424-B8C8-4469-B80F-2470A8209BA5} +ParentSubMenu_ru=Туристические\Многослойные +ParentSubMenu_uk=Туристические\Многослойные +ParentSubMenu=Tourism\Karelia +name_ru=RusOutdoor maps iite +name_uk=RusOutdoor maps iite +name=RusOutdoor maps iite +NameInCache=RusOurdoor_lite +asLayer=0 +EPSG=3785 +DefURLBase=https://anygis.ru/api/v1/Combo_RusOutdoor_lite/{x}/{y}/{z} +RequestHead=Referer:http://www.sasgis.org/ +ContentType=image/jpeg,image/png +Ext=.jpg + diff --git a/anygis/Tracks_Strava_All.zmp/GetUrlScript.txt b/anygis/Tracks_Strava_All.zmp/GetUrlScript.txt deleted file mode 100755 index 73a86cecf..000000000 --- a/anygis/Tracks_Strava_All.zmp/GetUrlScript.txt +++ /dev/null @@ -1,216 +0,0 @@ -// ----------------------------------------------------------------------------- -// --- Универсальный адаптер от AnyGIS -// ----------------------------------------------------------------------------- - -// Этот скрипт призван упростить добавление новых карт в SasPlanet. -// Он избавит начинающих пользователей от необходимости программировать на Pascal, -// чтобы вносить изменения в файл GetUrlScript.txt при добавлении каждой новой карты. -// Теперь можно просто вставлять привычный URL с заглушками типа {x}, {y}, {z} -// в поле DefURLBase из файла params.txt. На пример, так: -// -// DefURLBase=http://{s:a,b,c}.tile.openstreetmap.org/{z}/{x}/{y}.png - - -// Скрипт разрабатывали Nnngrach и Erelen - - - - -// --- Список доступных параметров для автозамены: - -// {x} Номер тайла по оси X. (Как в картах OpenStreetMaps) -// {y} Номер тайла по оси Y. (Как в картах OpenStreetMaps) -// {z} Уровень приближения/зума. (Как в картах OpenStreetMaps) -// {q} Номер тайла в системе QuadKey. (Как в картах Bing) -// {-y} Инвертированный номер тайла по оси Y. (Как на сайте Nakarte) -// {bbox} Координаты границ тайла. (Для WMS серверов) -// {timeStamp} Текущее время в формате UnixTime. (Для карт с пробками) -// {z+1} Уровень зума. (Для карт, хранящихся в формате SasPlanet) -// {x/1024} Номер первой подпапки (Для карт, в формате SasPlanet) -// {y/1024} Номер второй подпапки (Для карт, в формате SasPlanet) -// {s:a,b,c} Буква или цифра с номером зеркала сервера. -// В данном случае - одна из букв (A,B,C), выбранная рандомно. - - - -// Совет для начинающих: если хотите разобраться в этом коде, -// то удобнее всего читать его с конца. - -// Еще один совет: если будете писать свои скрипты, -// то вывод в консоль (а точнее, в окно Debug Output ) делается так: -// -// writeLn('Hello Sas.Planet!'); - - - - - - - - -// ----------------------------------------------------------------------------- -// --- 4. Вспомогательные функции -// ----------------------------------------------------------------------------- - -// --- Проверить, содержит ли одна строка другую? -function isContains(findingText: string; inSourceText: string) : boolean; -begin - result := pos(findingText, inSourceText) <> 0; -end; - - -// --- Округление до нужного количества знаков после запятой -// --- (стандартные функции округления у меня почему-то не заработали) -function roundFor(sourceNumber: Double ; digitAfterComma: integer) : string; -var - intPart, floatPart : integer; -begin - intPart := floor(sourceNumber); - floatPart := floor( (sourceNumber - intPart) * round(intPower(10, digitAfterComma)) ) - result := intToStr(intPart) + '.' + intToStr(floatPart) -end; - - -// --- Вычислить номер тайла в системе Quadkey (используется в картах Bing) -function getQuadkeyText(x: integer; y: integer; z: integer) : string; -var - i, q : byte; -begin - result:=''; - for i:=1 to z do begin - q:=0; - if x mod 2 = 1 then q := q + 1; - if y mod 2 = 1 then q := q + 2; - x := x div 2; - y := y div 2; - result := intToStr(q) + result; - end; -end; - - - - -// ----------------------------------------------------------------------------- -// --- 3. Если требуется, то подставить имя для зеркала сервера -// --- на место заглушки типа {s: a,b,c} -// ----------------------------------------------------------------------------- -type - TSubst = record - mask, val : string; - end; - TSubsts = record - count : integer; - s : array [0..15] of TSubst; - end; - - -function replaceServerName(url: string) : string; -var - s, ss : string; - sarr : array [0..9] of string; - sarr_l, p : integer; - -begin - s := RegExprGetMatchSubStr(url, '\{[sS]:([^}]+)\}', 0); - if s <> '' then begin - ss := s; - ss := StringReplace(ss, '{s:', '', [rfIgnoreCase]); - ss := StringReplace(ss, '}', '', [rfIgnoreCase]); - ss := ss + ','; - sarr_l := 0; - while ss <> '' do begin - p := pos(',', ss); - if p = 0 then p := length(ss); - sarr[sarr_l] := copy(ss, 1, p-1); - sarr_l := sarr_l + 1; - delete(ss, 1, p); - end; - url := StringReplace(url, s, sarr[random(sarr_l)], []); - end; - Result := url; -end; - - - - -// ----------------------------------------------------------------------------- -// --- 2. Если требуется, то вычислить и подставить в шаблон URL адреса -// --- нужные значения на место заглушек типа {x}, {y}, {z}. -// ----------------------------------------------------------------------------- -function replaceLeafletPlaceholders(urlTemplate: string; x: integer; y: integer; z: integer) : string; -var - options: tReplaceFlags; - calculatedValue: string; - -begin - options := [rfReplaceAll, rfIgnoreCase]; - result := urlTemplate; - - if isContains('{x}', result) then begin - calculatedValue := intToStr(x); - result := stringReplace( result, '{x}', calculatedValue, options) - end; - - if isContains('{y}', result) then begin - calculatedValue := intToStr(y); - result := stringReplace( result, '{y}', calculatedValue, options) - end; - - if isContains('{z}', result) then begin - calculatedValue := intToStr(z-1); - result := stringReplace( result, '{z}', calculatedValue, options) - end; - - if isContains('{z+1}', result) then begin - calculatedValue := intToStr(z); - result := stringReplace( result, '{z+1}', calculatedValue, options) - end; - - if isContains('{x/1024}', result) then begin - calculatedValue := intToStr(x div 1024); - result := stringReplace( result, '{x/1024}', calculatedValue, options) - end; - - if isContains('{y/1024}', result) then begin - calculatedValue := intToStr(y div 1024); - result := stringReplace( result, '{y/1024}', calculatedValue, options) - end; - - if isContains('{-y}', result) then begin - calculatedValue := intToStr( round(intPower(2, z-1)) - 1 - y); - result := stringReplace( result, '{-y}', calculatedValue, options) - end; - - if isContains('{q}', result) then begin - calculatedValue := getQuadkeyText(x, y, z); - result := stringReplace( result, '{q}', calculatedValue, options) - end; - - if isContains('{bbox}', result) then begin - result := stringReplace( result, '{bbox}', '{Left},{Bottom},{Right},{Top}', options) - result := stringReplace( result, '{Left}', roundFor(GetLMetr,8), options) - result := stringReplace( result, '{Bottom}', roundFor(GetBMetr,8), options) - result := stringReplace( result, '{Right}', roundFor(GetRMetr,8), options) - result := stringReplace( result, '{Top}', roundFor(GetTMetr,8), options) - // Делаю замену в пять операций потому, что при попытке - // сделать все одной строкой возникает ошибка. - // Возможно какое-то ограничение на память. - end; - - if isContains('{timeStamp}', result) then begin - calculatedValue := IntToStr(GetUnixTime); - result := stringReplace( result, '{timeStamp}', calculatedValue, options) - end; -end; - - - - -// ----------------------------------------------------------------------------- -// --- 1. Старт скрипта. Запустить вычисление URL-адреса тайла. -// --- Скачать тайл по полученному URL. -// ----------------------------------------------------------------------------- -begin - resultURL := replaceLeafletPlaceholders(getURLBase, getX, getY, getZ); - resultURL := replaceServerName(resultURL); -end. diff --git a/anygis/Tracks_Strava_All.zmp/info.txt b/anygis/Tracks_Strava_All.zmp/info.txt index 615f451d0..94ae5cdcb 100644 --- a/anygis/Tracks_Strava_All.zmp/info.txt +++ b/anygis/Tracks_Strava_All.zmp/info.txt @@ -1,4 +1,6 @@ Этот файл был создан автоматически с помощью файло-генератора AnyGIS.ru + +Он должен работать с SasPlanet версии 200127.10112 и новее Если вы заметили ошибку, свяжитесь со мной и сообщите о ней: diff --git a/anygis/Tracks_Strava_All.zmp/params.txt b/anygis/Tracks_Strava_All.zmp/params.txt index 5d2262f15..80fb7acce 100644 --- a/anygis/Tracks_Strava_All.zmp/params.txt +++ b/anygis/Tracks_Strava_All.zmp/params.txt @@ -1,6 +1,6 @@ п»ї [PARAMS] -GUID={7E330845-C966-4B63-B909-5214A016BDB1} +GUID={A26CA77D-E37A-42FF-AB59-A6211163C2BB} ParentSubMenu_ru=Маршруты Рё GPS-Треки ParentSubMenu_uk=Маршруты Рё GPS-Треки ParentSubMenu=Ways and GPS-Tracks @@ -9,9 +9,7 @@ name_uk=Strava Heatmap - Р’СЃРµ слои name=Strava Heatmap - All layers NameInCache=Tracks_Strava_All asLayer=1 -projection=1 -sradiusa=6378137 -sradiusb=6378137 +EPSG=3785 DefURLBase=https://anygis.ru/api/v1/Tracks_Strava_All/{x}/{y}/{z} RequestHead=Referer:https://www.strava.com/heatmap\r\nConnection: keep-alive\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36\r\nAccept: image/webp,image/apng,image/*,*/*;q=0.8\r\nAccept-Encoding: gzip, deflate\r\nAccept-Language: ru,en-US;q=0.9,en;q=0.8 ContentType=image/jpeg,image/png diff --git a/anygis/Tracks_Strava_Ride.zmp/GetUrlScript.txt b/anygis/Tracks_Strava_Ride.zmp/GetUrlScript.txt deleted file mode 100755 index 73a86cecf..000000000 --- a/anygis/Tracks_Strava_Ride.zmp/GetUrlScript.txt +++ /dev/null @@ -1,216 +0,0 @@ -// ----------------------------------------------------------------------------- -// --- Универсальный адаптер от AnyGIS -// ----------------------------------------------------------------------------- - -// Этот скрипт призван упростить добавление новых карт в SasPlanet. -// Он избавит начинающих пользователей от необходимости программировать на Pascal, -// чтобы вносить изменения в файл GetUrlScript.txt при добавлении каждой новой карты. -// Теперь можно просто вставлять привычный URL с заглушками типа {x}, {y}, {z} -// в поле DefURLBase из файла params.txt. На пример, так: -// -// DefURLBase=http://{s:a,b,c}.tile.openstreetmap.org/{z}/{x}/{y}.png - - -// Скрипт разрабатывали Nnngrach и Erelen - - - - -// --- Список доступных параметров для автозамены: - -// {x} Номер тайла по оси X. (Как в картах OpenStreetMaps) -// {y} Номер тайла по оси Y. (Как в картах OpenStreetMaps) -// {z} Уровень приближения/зума. (Как в картах OpenStreetMaps) -// {q} Номер тайла в системе QuadKey. (Как в картах Bing) -// {-y} Инвертированный номер тайла по оси Y. (Как на сайте Nakarte) -// {bbox} Координаты границ тайла. (Для WMS серверов) -// {timeStamp} Текущее время в формате UnixTime. (Для карт с пробками) -// {z+1} Уровень зума. (Для карт, хранящихся в формате SasPlanet) -// {x/1024} Номер первой подпапки (Для карт, в формате SasPlanet) -// {y/1024} Номер второй подпапки (Для карт, в формате SasPlanet) -// {s:a,b,c} Буква или цифра с номером зеркала сервера. -// В данном случае - одна из букв (A,B,C), выбранная рандомно. - - - -// Совет для начинающих: если хотите разобраться в этом коде, -// то удобнее всего читать его с конца. - -// Еще один совет: если будете писать свои скрипты, -// то вывод в консоль (а точнее, в окно Debug Output ) делается так: -// -// writeLn('Hello Sas.Planet!'); - - - - - - - - -// ----------------------------------------------------------------------------- -// --- 4. Вспомогательные функции -// ----------------------------------------------------------------------------- - -// --- Проверить, содержит ли одна строка другую? -function isContains(findingText: string; inSourceText: string) : boolean; -begin - result := pos(findingText, inSourceText) <> 0; -end; - - -// --- Округление до нужного количества знаков после запятой -// --- (стандартные функции округления у меня почему-то не заработали) -function roundFor(sourceNumber: Double ; digitAfterComma: integer) : string; -var - intPart, floatPart : integer; -begin - intPart := floor(sourceNumber); - floatPart := floor( (sourceNumber - intPart) * round(intPower(10, digitAfterComma)) ) - result := intToStr(intPart) + '.' + intToStr(floatPart) -end; - - -// --- Вычислить номер тайла в системе Quadkey (используется в картах Bing) -function getQuadkeyText(x: integer; y: integer; z: integer) : string; -var - i, q : byte; -begin - result:=''; - for i:=1 to z do begin - q:=0; - if x mod 2 = 1 then q := q + 1; - if y mod 2 = 1 then q := q + 2; - x := x div 2; - y := y div 2; - result := intToStr(q) + result; - end; -end; - - - - -// ----------------------------------------------------------------------------- -// --- 3. Если требуется, то подставить имя для зеркала сервера -// --- на место заглушки типа {s: a,b,c} -// ----------------------------------------------------------------------------- -type - TSubst = record - mask, val : string; - end; - TSubsts = record - count : integer; - s : array [0..15] of TSubst; - end; - - -function replaceServerName(url: string) : string; -var - s, ss : string; - sarr : array [0..9] of string; - sarr_l, p : integer; - -begin - s := RegExprGetMatchSubStr(url, '\{[sS]:([^}]+)\}', 0); - if s <> '' then begin - ss := s; - ss := StringReplace(ss, '{s:', '', [rfIgnoreCase]); - ss := StringReplace(ss, '}', '', [rfIgnoreCase]); - ss := ss + ','; - sarr_l := 0; - while ss <> '' do begin - p := pos(',', ss); - if p = 0 then p := length(ss); - sarr[sarr_l] := copy(ss, 1, p-1); - sarr_l := sarr_l + 1; - delete(ss, 1, p); - end; - url := StringReplace(url, s, sarr[random(sarr_l)], []); - end; - Result := url; -end; - - - - -// ----------------------------------------------------------------------------- -// --- 2. Если требуется, то вычислить и подставить в шаблон URL адреса -// --- нужные значения на место заглушек типа {x}, {y}, {z}. -// ----------------------------------------------------------------------------- -function replaceLeafletPlaceholders(urlTemplate: string; x: integer; y: integer; z: integer) : string; -var - options: tReplaceFlags; - calculatedValue: string; - -begin - options := [rfReplaceAll, rfIgnoreCase]; - result := urlTemplate; - - if isContains('{x}', result) then begin - calculatedValue := intToStr(x); - result := stringReplace( result, '{x}', calculatedValue, options) - end; - - if isContains('{y}', result) then begin - calculatedValue := intToStr(y); - result := stringReplace( result, '{y}', calculatedValue, options) - end; - - if isContains('{z}', result) then begin - calculatedValue := intToStr(z-1); - result := stringReplace( result, '{z}', calculatedValue, options) - end; - - if isContains('{z+1}', result) then begin - calculatedValue := intToStr(z); - result := stringReplace( result, '{z+1}', calculatedValue, options) - end; - - if isContains('{x/1024}', result) then begin - calculatedValue := intToStr(x div 1024); - result := stringReplace( result, '{x/1024}', calculatedValue, options) - end; - - if isContains('{y/1024}', result) then begin - calculatedValue := intToStr(y div 1024); - result := stringReplace( result, '{y/1024}', calculatedValue, options) - end; - - if isContains('{-y}', result) then begin - calculatedValue := intToStr( round(intPower(2, z-1)) - 1 - y); - result := stringReplace( result, '{-y}', calculatedValue, options) - end; - - if isContains('{q}', result) then begin - calculatedValue := getQuadkeyText(x, y, z); - result := stringReplace( result, '{q}', calculatedValue, options) - end; - - if isContains('{bbox}', result) then begin - result := stringReplace( result, '{bbox}', '{Left},{Bottom},{Right},{Top}', options) - result := stringReplace( result, '{Left}', roundFor(GetLMetr,8), options) - result := stringReplace( result, '{Bottom}', roundFor(GetBMetr,8), options) - result := stringReplace( result, '{Right}', roundFor(GetRMetr,8), options) - result := stringReplace( result, '{Top}', roundFor(GetTMetr,8), options) - // Делаю замену в пять операций потому, что при попытке - // сделать все одной строкой возникает ошибка. - // Возможно какое-то ограничение на память. - end; - - if isContains('{timeStamp}', result) then begin - calculatedValue := IntToStr(GetUnixTime); - result := stringReplace( result, '{timeStamp}', calculatedValue, options) - end; -end; - - - - -// ----------------------------------------------------------------------------- -// --- 1. Старт скрипта. Запустить вычисление URL-адреса тайла. -// --- Скачать тайл по полученному URL. -// ----------------------------------------------------------------------------- -begin - resultURL := replaceLeafletPlaceholders(getURLBase, getX, getY, getZ); - resultURL := replaceServerName(resultURL); -end. diff --git a/anygis/Tracks_Strava_Ride.zmp/info.txt b/anygis/Tracks_Strava_Ride.zmp/info.txt index 615f451d0..94ae5cdcb 100644 --- a/anygis/Tracks_Strava_Ride.zmp/info.txt +++ b/anygis/Tracks_Strava_Ride.zmp/info.txt @@ -1,4 +1,6 @@ Этот файл был создан автоматически с помощью файло-генератора AnyGIS.ru + +Он должен работать с SasPlanet версии 200127.10112 и новее Если вы заметили ошибку, свяжитесь со мной и сообщите о ней: diff --git a/anygis/Tracks_Strava_Ride.zmp/params.txt b/anygis/Tracks_Strava_Ride.zmp/params.txt index 4d351c42c..f4f1812a0 100644 --- a/anygis/Tracks_Strava_Ride.zmp/params.txt +++ b/anygis/Tracks_Strava_Ride.zmp/params.txt @@ -1,6 +1,6 @@ п»ї [PARAMS] -GUID={B71DF157-F075-4F01-9A69-DF344D69DF2D} +GUID={9442ADAB-F5FD-4184-BAE5-8FBABC507E9F} ParentSubMenu_ru=Маршруты Рё GPS-Треки ParentSubMenu_uk=Маршруты Рё GPS-Треки ParentSubMenu=Ways and GPS-Tracks @@ -9,9 +9,7 @@ name_uk=Strava Heatmap - Велоспорт name=Strava Heatmap - Ride NameInCache=Tracks_Strava_Ride asLayer=1 -projection=1 -sradiusa=6378137 -sradiusb=6378137 +EPSG=3785 DefURLBase=https://anygis.ru/api/v1/Tracks_Strava_Ride/{x}/{y}/{z} RequestHead=Referer:https://www.strava.com/heatmap\r\nConnection: keep-alive\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36\r\nAccept: image/webp,image/apng,image/*,*/*;q=0.8\r\nAccept-Encoding: gzip, deflate\r\nAccept-Language: ru,en-US;q=0.9,en;q=0.8 ContentType=image/jpeg,image/png diff --git a/anygis/Tracks_Strava_Run.zmp/GetUrlScript.txt b/anygis/Tracks_Strava_Run.zmp/GetUrlScript.txt deleted file mode 100755 index 73a86cecf..000000000 --- a/anygis/Tracks_Strava_Run.zmp/GetUrlScript.txt +++ /dev/null @@ -1,216 +0,0 @@ -// ----------------------------------------------------------------------------- -// --- Универсальный адаптер от AnyGIS -// ----------------------------------------------------------------------------- - -// Этот скрипт призван упростить добавление новых карт в SasPlanet. -// Он избавит начинающих пользователей от необходимости программировать на Pascal, -// чтобы вносить изменения в файл GetUrlScript.txt при добавлении каждой новой карты. -// Теперь можно просто вставлять привычный URL с заглушками типа {x}, {y}, {z} -// в поле DefURLBase из файла params.txt. На пример, так: -// -// DefURLBase=http://{s:a,b,c}.tile.openstreetmap.org/{z}/{x}/{y}.png - - -// Скрипт разрабатывали Nnngrach и Erelen - - - - -// --- Список доступных параметров для автозамены: - -// {x} Номер тайла по оси X. (Как в картах OpenStreetMaps) -// {y} Номер тайла по оси Y. (Как в картах OpenStreetMaps) -// {z} Уровень приближения/зума. (Как в картах OpenStreetMaps) -// {q} Номер тайла в системе QuadKey. (Как в картах Bing) -// {-y} Инвертированный номер тайла по оси Y. (Как на сайте Nakarte) -// {bbox} Координаты границ тайла. (Для WMS серверов) -// {timeStamp} Текущее время в формате UnixTime. (Для карт с пробками) -// {z+1} Уровень зума. (Для карт, хранящихся в формате SasPlanet) -// {x/1024} Номер первой подпапки (Для карт, в формате SasPlanet) -// {y/1024} Номер второй подпапки (Для карт, в формате SasPlanet) -// {s:a,b,c} Буква или цифра с номером зеркала сервера. -// В данном случае - одна из букв (A,B,C), выбранная рандомно. - - - -// Совет для начинающих: если хотите разобраться в этом коде, -// то удобнее всего читать его с конца. - -// Еще один совет: если будете писать свои скрипты, -// то вывод в консоль (а точнее, в окно Debug Output ) делается так: -// -// writeLn('Hello Sas.Planet!'); - - - - - - - - -// ----------------------------------------------------------------------------- -// --- 4. Вспомогательные функции -// ----------------------------------------------------------------------------- - -// --- Проверить, содержит ли одна строка другую? -function isContains(findingText: string; inSourceText: string) : boolean; -begin - result := pos(findingText, inSourceText) <> 0; -end; - - -// --- Округление до нужного количества знаков после запятой -// --- (стандартные функции округления у меня почему-то не заработали) -function roundFor(sourceNumber: Double ; digitAfterComma: integer) : string; -var - intPart, floatPart : integer; -begin - intPart := floor(sourceNumber); - floatPart := floor( (sourceNumber - intPart) * round(intPower(10, digitAfterComma)) ) - result := intToStr(intPart) + '.' + intToStr(floatPart) -end; - - -// --- Вычислить номер тайла в системе Quadkey (используется в картах Bing) -function getQuadkeyText(x: integer; y: integer; z: integer) : string; -var - i, q : byte; -begin - result:=''; - for i:=1 to z do begin - q:=0; - if x mod 2 = 1 then q := q + 1; - if y mod 2 = 1 then q := q + 2; - x := x div 2; - y := y div 2; - result := intToStr(q) + result; - end; -end; - - - - -// ----------------------------------------------------------------------------- -// --- 3. Если требуется, то подставить имя для зеркала сервера -// --- на место заглушки типа {s: a,b,c} -// ----------------------------------------------------------------------------- -type - TSubst = record - mask, val : string; - end; - TSubsts = record - count : integer; - s : array [0..15] of TSubst; - end; - - -function replaceServerName(url: string) : string; -var - s, ss : string; - sarr : array [0..9] of string; - sarr_l, p : integer; - -begin - s := RegExprGetMatchSubStr(url, '\{[sS]:([^}]+)\}', 0); - if s <> '' then begin - ss := s; - ss := StringReplace(ss, '{s:', '', [rfIgnoreCase]); - ss := StringReplace(ss, '}', '', [rfIgnoreCase]); - ss := ss + ','; - sarr_l := 0; - while ss <> '' do begin - p := pos(',', ss); - if p = 0 then p := length(ss); - sarr[sarr_l] := copy(ss, 1, p-1); - sarr_l := sarr_l + 1; - delete(ss, 1, p); - end; - url := StringReplace(url, s, sarr[random(sarr_l)], []); - end; - Result := url; -end; - - - - -// ----------------------------------------------------------------------------- -// --- 2. Если требуется, то вычислить и подставить в шаблон URL адреса -// --- нужные значения на место заглушек типа {x}, {y}, {z}. -// ----------------------------------------------------------------------------- -function replaceLeafletPlaceholders(urlTemplate: string; x: integer; y: integer; z: integer) : string; -var - options: tReplaceFlags; - calculatedValue: string; - -begin - options := [rfReplaceAll, rfIgnoreCase]; - result := urlTemplate; - - if isContains('{x}', result) then begin - calculatedValue := intToStr(x); - result := stringReplace( result, '{x}', calculatedValue, options) - end; - - if isContains('{y}', result) then begin - calculatedValue := intToStr(y); - result := stringReplace( result, '{y}', calculatedValue, options) - end; - - if isContains('{z}', result) then begin - calculatedValue := intToStr(z-1); - result := stringReplace( result, '{z}', calculatedValue, options) - end; - - if isContains('{z+1}', result) then begin - calculatedValue := intToStr(z); - result := stringReplace( result, '{z+1}', calculatedValue, options) - end; - - if isContains('{x/1024}', result) then begin - calculatedValue := intToStr(x div 1024); - result := stringReplace( result, '{x/1024}', calculatedValue, options) - end; - - if isContains('{y/1024}', result) then begin - calculatedValue := intToStr(y div 1024); - result := stringReplace( result, '{y/1024}', calculatedValue, options) - end; - - if isContains('{-y}', result) then begin - calculatedValue := intToStr( round(intPower(2, z-1)) - 1 - y); - result := stringReplace( result, '{-y}', calculatedValue, options) - end; - - if isContains('{q}', result) then begin - calculatedValue := getQuadkeyText(x, y, z); - result := stringReplace( result, '{q}', calculatedValue, options) - end; - - if isContains('{bbox}', result) then begin - result := stringReplace( result, '{bbox}', '{Left},{Bottom},{Right},{Top}', options) - result := stringReplace( result, '{Left}', roundFor(GetLMetr,8), options) - result := stringReplace( result, '{Bottom}', roundFor(GetBMetr,8), options) - result := stringReplace( result, '{Right}', roundFor(GetRMetr,8), options) - result := stringReplace( result, '{Top}', roundFor(GetTMetr,8), options) - // Делаю замену в пять операций потому, что при попытке - // сделать все одной строкой возникает ошибка. - // Возможно какое-то ограничение на память. - end; - - if isContains('{timeStamp}', result) then begin - calculatedValue := IntToStr(GetUnixTime); - result := stringReplace( result, '{timeStamp}', calculatedValue, options) - end; -end; - - - - -// ----------------------------------------------------------------------------- -// --- 1. Старт скрипта. Запустить вычисление URL-адреса тайла. -// --- Скачать тайл по полученному URL. -// ----------------------------------------------------------------------------- -begin - resultURL := replaceLeafletPlaceholders(getURLBase, getX, getY, getZ); - resultURL := replaceServerName(resultURL); -end. diff --git a/anygis/Tracks_Strava_Run.zmp/info.txt b/anygis/Tracks_Strava_Run.zmp/info.txt index 615f451d0..94ae5cdcb 100644 --- a/anygis/Tracks_Strava_Run.zmp/info.txt +++ b/anygis/Tracks_Strava_Run.zmp/info.txt @@ -1,4 +1,6 @@ Этот файл был создан автоматически с помощью файло-генератора AnyGIS.ru + +Он должен работать с SasPlanet версии 200127.10112 и новее Если вы заметили ошибку, свяжитесь со мной и сообщите о ней: diff --git a/anygis/Tracks_Strava_Run.zmp/params.txt b/anygis/Tracks_Strava_Run.zmp/params.txt index 634e28945..0115da22c 100644 --- a/anygis/Tracks_Strava_Run.zmp/params.txt +++ b/anygis/Tracks_Strava_Run.zmp/params.txt @@ -1,6 +1,6 @@ п»ї [PARAMS] -GUID={BF69A930-3739-454A-A833-DED4C0841297} +GUID={89BA4332-E79A-40F0-9BC1-AF05BCFE52FC} ParentSubMenu_ru=Маршруты Рё GPS-Треки ParentSubMenu_uk=Маршруты Рё GPS-Треки ParentSubMenu=Ways and GPS-Tracks @@ -9,9 +9,7 @@ name_uk=Strava Heatmap - Бег name=Strava Heatmap - Run NameInCache=Tracks_Strava_Run asLayer=1 -projection=1 -sradiusa=6378137 -sradiusb=6378137 +EPSG=3785 DefURLBase=https://anygis.ru/api/v1/Tracks_Strava_Run/{x}/{y}/{z} RequestHead=Referer:https://www.strava.com/heatmap\r\nConnection: keep-alive\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36\r\nAccept: image/webp,image/apng,image/*,*/*;q=0.8\r\nAccept-Encoding: gzip, deflate\r\nAccept-Language: ru,en-US;q=0.9,en;q=0.8 ContentType=image/jpeg,image/png diff --git a/anygis/Tracks_Strava_RunAndRide.zmp/GetUrlScript.txt b/anygis/Tracks_Strava_RunAndRide.zmp/GetUrlScript.txt deleted file mode 100755 index 73a86cecf..000000000 --- a/anygis/Tracks_Strava_RunAndRide.zmp/GetUrlScript.txt +++ /dev/null @@ -1,216 +0,0 @@ -// ----------------------------------------------------------------------------- -// --- Универсальный адаптер от AnyGIS -// ----------------------------------------------------------------------------- - -// Этот скрипт призван упростить добавление новых карт в SasPlanet. -// Он избавит начинающих пользователей от необходимости программировать на Pascal, -// чтобы вносить изменения в файл GetUrlScript.txt при добавлении каждой новой карты. -// Теперь можно просто вставлять привычный URL с заглушками типа {x}, {y}, {z} -// в поле DefURLBase из файла params.txt. На пример, так: -// -// DefURLBase=http://{s:a,b,c}.tile.openstreetmap.org/{z}/{x}/{y}.png - - -// Скрипт разрабатывали Nnngrach и Erelen - - - - -// --- Список доступных параметров для автозамены: - -// {x} Номер тайла по оси X. (Как в картах OpenStreetMaps) -// {y} Номер тайла по оси Y. (Как в картах OpenStreetMaps) -// {z} Уровень приближения/зума. (Как в картах OpenStreetMaps) -// {q} Номер тайла в системе QuadKey. (Как в картах Bing) -// {-y} Инвертированный номер тайла по оси Y. (Как на сайте Nakarte) -// {bbox} Координаты границ тайла. (Для WMS серверов) -// {timeStamp} Текущее время в формате UnixTime. (Для карт с пробками) -// {z+1} Уровень зума. (Для карт, хранящихся в формате SasPlanet) -// {x/1024} Номер первой подпапки (Для карт, в формате SasPlanet) -// {y/1024} Номер второй подпапки (Для карт, в формате SasPlanet) -// {s:a,b,c} Буква или цифра с номером зеркала сервера. -// В данном случае - одна из букв (A,B,C), выбранная рандомно. - - - -// Совет для начинающих: если хотите разобраться в этом коде, -// то удобнее всего читать его с конца. - -// Еще один совет: если будете писать свои скрипты, -// то вывод в консоль (а точнее, в окно Debug Output ) делается так: -// -// writeLn('Hello Sas.Planet!'); - - - - - - - - -// ----------------------------------------------------------------------------- -// --- 4. Вспомогательные функции -// ----------------------------------------------------------------------------- - -// --- Проверить, содержит ли одна строка другую? -function isContains(findingText: string; inSourceText: string) : boolean; -begin - result := pos(findingText, inSourceText) <> 0; -end; - - -// --- Округление до нужного количества знаков после запятой -// --- (стандартные функции округления у меня почему-то не заработали) -function roundFor(sourceNumber: Double ; digitAfterComma: integer) : string; -var - intPart, floatPart : integer; -begin - intPart := floor(sourceNumber); - floatPart := floor( (sourceNumber - intPart) * round(intPower(10, digitAfterComma)) ) - result := intToStr(intPart) + '.' + intToStr(floatPart) -end; - - -// --- Вычислить номер тайла в системе Quadkey (используется в картах Bing) -function getQuadkeyText(x: integer; y: integer; z: integer) : string; -var - i, q : byte; -begin - result:=''; - for i:=1 to z do begin - q:=0; - if x mod 2 = 1 then q := q + 1; - if y mod 2 = 1 then q := q + 2; - x := x div 2; - y := y div 2; - result := intToStr(q) + result; - end; -end; - - - - -// ----------------------------------------------------------------------------- -// --- 3. Если требуется, то подставить имя для зеркала сервера -// --- на место заглушки типа {s: a,b,c} -// ----------------------------------------------------------------------------- -type - TSubst = record - mask, val : string; - end; - TSubsts = record - count : integer; - s : array [0..15] of TSubst; - end; - - -function replaceServerName(url: string) : string; -var - s, ss : string; - sarr : array [0..9] of string; - sarr_l, p : integer; - -begin - s := RegExprGetMatchSubStr(url, '\{[sS]:([^}]+)\}', 0); - if s <> '' then begin - ss := s; - ss := StringReplace(ss, '{s:', '', [rfIgnoreCase]); - ss := StringReplace(ss, '}', '', [rfIgnoreCase]); - ss := ss + ','; - sarr_l := 0; - while ss <> '' do begin - p := pos(',', ss); - if p = 0 then p := length(ss); - sarr[sarr_l] := copy(ss, 1, p-1); - sarr_l := sarr_l + 1; - delete(ss, 1, p); - end; - url := StringReplace(url, s, sarr[random(sarr_l)], []); - end; - Result := url; -end; - - - - -// ----------------------------------------------------------------------------- -// --- 2. Если требуется, то вычислить и подставить в шаблон URL адреса -// --- нужные значения на место заглушек типа {x}, {y}, {z}. -// ----------------------------------------------------------------------------- -function replaceLeafletPlaceholders(urlTemplate: string; x: integer; y: integer; z: integer) : string; -var - options: tReplaceFlags; - calculatedValue: string; - -begin - options := [rfReplaceAll, rfIgnoreCase]; - result := urlTemplate; - - if isContains('{x}', result) then begin - calculatedValue := intToStr(x); - result := stringReplace( result, '{x}', calculatedValue, options) - end; - - if isContains('{y}', result) then begin - calculatedValue := intToStr(y); - result := stringReplace( result, '{y}', calculatedValue, options) - end; - - if isContains('{z}', result) then begin - calculatedValue := intToStr(z-1); - result := stringReplace( result, '{z}', calculatedValue, options) - end; - - if isContains('{z+1}', result) then begin - calculatedValue := intToStr(z); - result := stringReplace( result, '{z+1}', calculatedValue, options) - end; - - if isContains('{x/1024}', result) then begin - calculatedValue := intToStr(x div 1024); - result := stringReplace( result, '{x/1024}', calculatedValue, options) - end; - - if isContains('{y/1024}', result) then begin - calculatedValue := intToStr(y div 1024); - result := stringReplace( result, '{y/1024}', calculatedValue, options) - end; - - if isContains('{-y}', result) then begin - calculatedValue := intToStr( round(intPower(2, z-1)) - 1 - y); - result := stringReplace( result, '{-y}', calculatedValue, options) - end; - - if isContains('{q}', result) then begin - calculatedValue := getQuadkeyText(x, y, z); - result := stringReplace( result, '{q}', calculatedValue, options) - end; - - if isContains('{bbox}', result) then begin - result := stringReplace( result, '{bbox}', '{Left},{Bottom},{Right},{Top}', options) - result := stringReplace( result, '{Left}', roundFor(GetLMetr,8), options) - result := stringReplace( result, '{Bottom}', roundFor(GetBMetr,8), options) - result := stringReplace( result, '{Right}', roundFor(GetRMetr,8), options) - result := stringReplace( result, '{Top}', roundFor(GetTMetr,8), options) - // Делаю замену в пять операций потому, что при попытке - // сделать все одной строкой возникает ошибка. - // Возможно какое-то ограничение на память. - end; - - if isContains('{timeStamp}', result) then begin - calculatedValue := IntToStr(GetUnixTime); - result := stringReplace( result, '{timeStamp}', calculatedValue, options) - end; -end; - - - - -// ----------------------------------------------------------------------------- -// --- 1. Старт скрипта. Запустить вычисление URL-адреса тайла. -// --- Скачать тайл по полученному URL. -// ----------------------------------------------------------------------------- -begin - resultURL := replaceLeafletPlaceholders(getURLBase, getX, getY, getZ); - resultURL := replaceServerName(resultURL); -end. diff --git a/anygis/Tracks_Strava_RunAndRide.zmp/info.txt b/anygis/Tracks_Strava_RunAndRide.zmp/info.txt index 615f451d0..94ae5cdcb 100644 --- a/anygis/Tracks_Strava_RunAndRide.zmp/info.txt +++ b/anygis/Tracks_Strava_RunAndRide.zmp/info.txt @@ -1,4 +1,6 @@ Этот файл был создан автоматически с помощью файло-генератора AnyGIS.ru + +Он должен работать с SasPlanet версии 200127.10112 и новее Если вы заметили ошибку, свяжитесь со мной и сообщите о ней: diff --git a/anygis/Tracks_Strava_RunAndRide.zmp/params.txt b/anygis/Tracks_Strava_RunAndRide.zmp/params.txt index 544126d0e..4c42b2524 100644 --- a/anygis/Tracks_Strava_RunAndRide.zmp/params.txt +++ b/anygis/Tracks_Strava_RunAndRide.zmp/params.txt @@ -1,6 +1,6 @@ п»ї [PARAMS] -GUID={B5C2127C-56AC-4630-94A1-34E17F5B183F} +GUID={C9F9F3BD-4BBD-4AFE-ABBF-171AA57F5D06} ParentSubMenu_ru=Маршруты Рё GPS-Треки ParentSubMenu_uk=Маршруты Рё GPS-Треки ParentSubMenu=Ways and GPS-Tracks @@ -9,9 +9,7 @@ name_uk=Strava Heatmap - Велоспорт Рё Бег (beta) name=Strava Heatmap - RunAndRide (beta) NameInCache=Tracks_Strava_RunAndRide asLayer=1 -projection=1 -sradiusa=6378137 -sradiusb=6378137 +EPSG=3785 DefURLBase=https://anygis.ru/api/v1/Tracks_Strava_RunAndRide/{x}/{y}/{z} RequestHead=Referer:https://www.strava.com/heatmap\r\nConnection: keep-alive\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36\r\nAccept: image/webp,image/apng,image/*,*/*;q=0.8\r\nAccept-Encoding: gzip, deflate\r\nAccept-Language: ru,en-US;q=0.9,en;q=0.8 ContentType=image/jpeg,image/png diff --git a/anygis/Tracks_Strava_Water.zmp/GetUrlScript.txt b/anygis/Tracks_Strava_Water.zmp/GetUrlScript.txt deleted file mode 100755 index 73a86cecf..000000000 --- a/anygis/Tracks_Strava_Water.zmp/GetUrlScript.txt +++ /dev/null @@ -1,216 +0,0 @@ -// ----------------------------------------------------------------------------- -// --- Универсальный адаптер от AnyGIS -// ----------------------------------------------------------------------------- - -// Этот скрипт призван упростить добавление новых карт в SasPlanet. -// Он избавит начинающих пользователей от необходимости программировать на Pascal, -// чтобы вносить изменения в файл GetUrlScript.txt при добавлении каждой новой карты. -// Теперь можно просто вставлять привычный URL с заглушками типа {x}, {y}, {z} -// в поле DefURLBase из файла params.txt. На пример, так: -// -// DefURLBase=http://{s:a,b,c}.tile.openstreetmap.org/{z}/{x}/{y}.png - - -// Скрипт разрабатывали Nnngrach и Erelen - - - - -// --- Список доступных параметров для автозамены: - -// {x} Номер тайла по оси X. (Как в картах OpenStreetMaps) -// {y} Номер тайла по оси Y. (Как в картах OpenStreetMaps) -// {z} Уровень приближения/зума. (Как в картах OpenStreetMaps) -// {q} Номер тайла в системе QuadKey. (Как в картах Bing) -// {-y} Инвертированный номер тайла по оси Y. (Как на сайте Nakarte) -// {bbox} Координаты границ тайла. (Для WMS серверов) -// {timeStamp} Текущее время в формате UnixTime. (Для карт с пробками) -// {z+1} Уровень зума. (Для карт, хранящихся в формате SasPlanet) -// {x/1024} Номер первой подпапки (Для карт, в формате SasPlanet) -// {y/1024} Номер второй подпапки (Для карт, в формате SasPlanet) -// {s:a,b,c} Буква или цифра с номером зеркала сервера. -// В данном случае - одна из букв (A,B,C), выбранная рандомно. - - - -// Совет для начинающих: если хотите разобраться в этом коде, -// то удобнее всего читать его с конца. - -// Еще один совет: если будете писать свои скрипты, -// то вывод в консоль (а точнее, в окно Debug Output ) делается так: -// -// writeLn('Hello Sas.Planet!'); - - - - - - - - -// ----------------------------------------------------------------------------- -// --- 4. Вспомогательные функции -// ----------------------------------------------------------------------------- - -// --- Проверить, содержит ли одна строка другую? -function isContains(findingText: string; inSourceText: string) : boolean; -begin - result := pos(findingText, inSourceText) <> 0; -end; - - -// --- Округление до нужного количества знаков после запятой -// --- (стандартные функции округления у меня почему-то не заработали) -function roundFor(sourceNumber: Double ; digitAfterComma: integer) : string; -var - intPart, floatPart : integer; -begin - intPart := floor(sourceNumber); - floatPart := floor( (sourceNumber - intPart) * round(intPower(10, digitAfterComma)) ) - result := intToStr(intPart) + '.' + intToStr(floatPart) -end; - - -// --- Вычислить номер тайла в системе Quadkey (используется в картах Bing) -function getQuadkeyText(x: integer; y: integer; z: integer) : string; -var - i, q : byte; -begin - result:=''; - for i:=1 to z do begin - q:=0; - if x mod 2 = 1 then q := q + 1; - if y mod 2 = 1 then q := q + 2; - x := x div 2; - y := y div 2; - result := intToStr(q) + result; - end; -end; - - - - -// ----------------------------------------------------------------------------- -// --- 3. Если требуется, то подставить имя для зеркала сервера -// --- на место заглушки типа {s: a,b,c} -// ----------------------------------------------------------------------------- -type - TSubst = record - mask, val : string; - end; - TSubsts = record - count : integer; - s : array [0..15] of TSubst; - end; - - -function replaceServerName(url: string) : string; -var - s, ss : string; - sarr : array [0..9] of string; - sarr_l, p : integer; - -begin - s := RegExprGetMatchSubStr(url, '\{[sS]:([^}]+)\}', 0); - if s <> '' then begin - ss := s; - ss := StringReplace(ss, '{s:', '', [rfIgnoreCase]); - ss := StringReplace(ss, '}', '', [rfIgnoreCase]); - ss := ss + ','; - sarr_l := 0; - while ss <> '' do begin - p := pos(',', ss); - if p = 0 then p := length(ss); - sarr[sarr_l] := copy(ss, 1, p-1); - sarr_l := sarr_l + 1; - delete(ss, 1, p); - end; - url := StringReplace(url, s, sarr[random(sarr_l)], []); - end; - Result := url; -end; - - - - -// ----------------------------------------------------------------------------- -// --- 2. Если требуется, то вычислить и подставить в шаблон URL адреса -// --- нужные значения на место заглушек типа {x}, {y}, {z}. -// ----------------------------------------------------------------------------- -function replaceLeafletPlaceholders(urlTemplate: string; x: integer; y: integer; z: integer) : string; -var - options: tReplaceFlags; - calculatedValue: string; - -begin - options := [rfReplaceAll, rfIgnoreCase]; - result := urlTemplate; - - if isContains('{x}', result) then begin - calculatedValue := intToStr(x); - result := stringReplace( result, '{x}', calculatedValue, options) - end; - - if isContains('{y}', result) then begin - calculatedValue := intToStr(y); - result := stringReplace( result, '{y}', calculatedValue, options) - end; - - if isContains('{z}', result) then begin - calculatedValue := intToStr(z-1); - result := stringReplace( result, '{z}', calculatedValue, options) - end; - - if isContains('{z+1}', result) then begin - calculatedValue := intToStr(z); - result := stringReplace( result, '{z+1}', calculatedValue, options) - end; - - if isContains('{x/1024}', result) then begin - calculatedValue := intToStr(x div 1024); - result := stringReplace( result, '{x/1024}', calculatedValue, options) - end; - - if isContains('{y/1024}', result) then begin - calculatedValue := intToStr(y div 1024); - result := stringReplace( result, '{y/1024}', calculatedValue, options) - end; - - if isContains('{-y}', result) then begin - calculatedValue := intToStr( round(intPower(2, z-1)) - 1 - y); - result := stringReplace( result, '{-y}', calculatedValue, options) - end; - - if isContains('{q}', result) then begin - calculatedValue := getQuadkeyText(x, y, z); - result := stringReplace( result, '{q}', calculatedValue, options) - end; - - if isContains('{bbox}', result) then begin - result := stringReplace( result, '{bbox}', '{Left},{Bottom},{Right},{Top}', options) - result := stringReplace( result, '{Left}', roundFor(GetLMetr,8), options) - result := stringReplace( result, '{Bottom}', roundFor(GetBMetr,8), options) - result := stringReplace( result, '{Right}', roundFor(GetRMetr,8), options) - result := stringReplace( result, '{Top}', roundFor(GetTMetr,8), options) - // Делаю замену в пять операций потому, что при попытке - // сделать все одной строкой возникает ошибка. - // Возможно какое-то ограничение на память. - end; - - if isContains('{timeStamp}', result) then begin - calculatedValue := IntToStr(GetUnixTime); - result := stringReplace( result, '{timeStamp}', calculatedValue, options) - end; -end; - - - - -// ----------------------------------------------------------------------------- -// --- 1. Старт скрипта. Запустить вычисление URL-адреса тайла. -// --- Скачать тайл по полученному URL. -// ----------------------------------------------------------------------------- -begin - resultURL := replaceLeafletPlaceholders(getURLBase, getX, getY, getZ); - resultURL := replaceServerName(resultURL); -end. diff --git a/anygis/Tracks_Strava_Water.zmp/info.txt b/anygis/Tracks_Strava_Water.zmp/info.txt index 615f451d0..94ae5cdcb 100644 --- a/anygis/Tracks_Strava_Water.zmp/info.txt +++ b/anygis/Tracks_Strava_Water.zmp/info.txt @@ -1,4 +1,6 @@ Этот файл был создан автоматически с помощью файло-генератора AnyGIS.ru + +Он должен работать с SasPlanet версии 200127.10112 и новее Если вы заметили ошибку, свяжитесь со мной и сообщите о ней: diff --git a/anygis/Tracks_Strava_Water.zmp/params.txt b/anygis/Tracks_Strava_Water.zmp/params.txt index 681d7f8ee..352d95512 100644 --- a/anygis/Tracks_Strava_Water.zmp/params.txt +++ b/anygis/Tracks_Strava_Water.zmp/params.txt @@ -1,6 +1,6 @@ п»ї [PARAMS] -GUID={542841FD-209E-4C96-9714-BC4F337371CA} +GUID={0D15104A-781C-4881-B705-72AA33E745C7} ParentSubMenu_ru=Маршруты Рё GPS-Треки ParentSubMenu_uk=Маршруты Рё GPS-Треки ParentSubMenu=Ways and GPS-Tracks @@ -9,9 +9,7 @@ name_uk=Strava Heatmap - Водный СЃРїРѕСЂС‚ name=Strava Heatmap - Water NameInCache=Tracks_Strava_Water asLayer=1 -projection=1 -sradiusa=6378137 -sradiusb=6378137 +EPSG=3785 DefURLBase=https://anygis.ru/api/v1/Tracks_Strava_Water/{x}/{y}/{z} RequestHead=Referer:https://www.strava.com/heatmap\r\nConnection: keep-alive\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36\r\nAccept: image/webp,image/apng,image/*,*/*;q=0.8\r\nAccept-Encoding: gzip, deflate\r\nAccept-Language: ru,en-US;q=0.9,en;q=0.8 ContentType=image/jpeg,image/png diff --git a/anygis/Tracks_Strava_Winter.zmp/GetUrlScript.txt b/anygis/Tracks_Strava_Winter.zmp/GetUrlScript.txt deleted file mode 100755 index 73a86cecf..000000000 --- a/anygis/Tracks_Strava_Winter.zmp/GetUrlScript.txt +++ /dev/null @@ -1,216 +0,0 @@ -// ----------------------------------------------------------------------------- -// --- Универсальный адаптер от AnyGIS -// ----------------------------------------------------------------------------- - -// Этот скрипт призван упростить добавление новых карт в SasPlanet. -// Он избавит начинающих пользователей от необходимости программировать на Pascal, -// чтобы вносить изменения в файл GetUrlScript.txt при добавлении каждой новой карты. -// Теперь можно просто вставлять привычный URL с заглушками типа {x}, {y}, {z} -// в поле DefURLBase из файла params.txt. На пример, так: -// -// DefURLBase=http://{s:a,b,c}.tile.openstreetmap.org/{z}/{x}/{y}.png - - -// Скрипт разрабатывали Nnngrach и Erelen - - - - -// --- Список доступных параметров для автозамены: - -// {x} Номер тайла по оси X. (Как в картах OpenStreetMaps) -// {y} Номер тайла по оси Y. (Как в картах OpenStreetMaps) -// {z} Уровень приближения/зума. (Как в картах OpenStreetMaps) -// {q} Номер тайла в системе QuadKey. (Как в картах Bing) -// {-y} Инвертированный номер тайла по оси Y. (Как на сайте Nakarte) -// {bbox} Координаты границ тайла. (Для WMS серверов) -// {timeStamp} Текущее время в формате UnixTime. (Для карт с пробками) -// {z+1} Уровень зума. (Для карт, хранящихся в формате SasPlanet) -// {x/1024} Номер первой подпапки (Для карт, в формате SasPlanet) -// {y/1024} Номер второй подпапки (Для карт, в формате SasPlanet) -// {s:a,b,c} Буква или цифра с номером зеркала сервера. -// В данном случае - одна из букв (A,B,C), выбранная рандомно. - - - -// Совет для начинающих: если хотите разобраться в этом коде, -// то удобнее всего читать его с конца. - -// Еще один совет: если будете писать свои скрипты, -// то вывод в консоль (а точнее, в окно Debug Output ) делается так: -// -// writeLn('Hello Sas.Planet!'); - - - - - - - - -// ----------------------------------------------------------------------------- -// --- 4. Вспомогательные функции -// ----------------------------------------------------------------------------- - -// --- Проверить, содержит ли одна строка другую? -function isContains(findingText: string; inSourceText: string) : boolean; -begin - result := pos(findingText, inSourceText) <> 0; -end; - - -// --- Округление до нужного количества знаков после запятой -// --- (стандартные функции округления у меня почему-то не заработали) -function roundFor(sourceNumber: Double ; digitAfterComma: integer) : string; -var - intPart, floatPart : integer; -begin - intPart := floor(sourceNumber); - floatPart := floor( (sourceNumber - intPart) * round(intPower(10, digitAfterComma)) ) - result := intToStr(intPart) + '.' + intToStr(floatPart) -end; - - -// --- Вычислить номер тайла в системе Quadkey (используется в картах Bing) -function getQuadkeyText(x: integer; y: integer; z: integer) : string; -var - i, q : byte; -begin - result:=''; - for i:=1 to z do begin - q:=0; - if x mod 2 = 1 then q := q + 1; - if y mod 2 = 1 then q := q + 2; - x := x div 2; - y := y div 2; - result := intToStr(q) + result; - end; -end; - - - - -// ----------------------------------------------------------------------------- -// --- 3. Если требуется, то подставить имя для зеркала сервера -// --- на место заглушки типа {s: a,b,c} -// ----------------------------------------------------------------------------- -type - TSubst = record - mask, val : string; - end; - TSubsts = record - count : integer; - s : array [0..15] of TSubst; - end; - - -function replaceServerName(url: string) : string; -var - s, ss : string; - sarr : array [0..9] of string; - sarr_l, p : integer; - -begin - s := RegExprGetMatchSubStr(url, '\{[sS]:([^}]+)\}', 0); - if s <> '' then begin - ss := s; - ss := StringReplace(ss, '{s:', '', [rfIgnoreCase]); - ss := StringReplace(ss, '}', '', [rfIgnoreCase]); - ss := ss + ','; - sarr_l := 0; - while ss <> '' do begin - p := pos(',', ss); - if p = 0 then p := length(ss); - sarr[sarr_l] := copy(ss, 1, p-1); - sarr_l := sarr_l + 1; - delete(ss, 1, p); - end; - url := StringReplace(url, s, sarr[random(sarr_l)], []); - end; - Result := url; -end; - - - - -// ----------------------------------------------------------------------------- -// --- 2. Если требуется, то вычислить и подставить в шаблон URL адреса -// --- нужные значения на место заглушек типа {x}, {y}, {z}. -// ----------------------------------------------------------------------------- -function replaceLeafletPlaceholders(urlTemplate: string; x: integer; y: integer; z: integer) : string; -var - options: tReplaceFlags; - calculatedValue: string; - -begin - options := [rfReplaceAll, rfIgnoreCase]; - result := urlTemplate; - - if isContains('{x}', result) then begin - calculatedValue := intToStr(x); - result := stringReplace( result, '{x}', calculatedValue, options) - end; - - if isContains('{y}', result) then begin - calculatedValue := intToStr(y); - result := stringReplace( result, '{y}', calculatedValue, options) - end; - - if isContains('{z}', result) then begin - calculatedValue := intToStr(z-1); - result := stringReplace( result, '{z}', calculatedValue, options) - end; - - if isContains('{z+1}', result) then begin - calculatedValue := intToStr(z); - result := stringReplace( result, '{z+1}', calculatedValue, options) - end; - - if isContains('{x/1024}', result) then begin - calculatedValue := intToStr(x div 1024); - result := stringReplace( result, '{x/1024}', calculatedValue, options) - end; - - if isContains('{y/1024}', result) then begin - calculatedValue := intToStr(y div 1024); - result := stringReplace( result, '{y/1024}', calculatedValue, options) - end; - - if isContains('{-y}', result) then begin - calculatedValue := intToStr( round(intPower(2, z-1)) - 1 - y); - result := stringReplace( result, '{-y}', calculatedValue, options) - end; - - if isContains('{q}', result) then begin - calculatedValue := getQuadkeyText(x, y, z); - result := stringReplace( result, '{q}', calculatedValue, options) - end; - - if isContains('{bbox}', result) then begin - result := stringReplace( result, '{bbox}', '{Left},{Bottom},{Right},{Top}', options) - result := stringReplace( result, '{Left}', roundFor(GetLMetr,8), options) - result := stringReplace( result, '{Bottom}', roundFor(GetBMetr,8), options) - result := stringReplace( result, '{Right}', roundFor(GetRMetr,8), options) - result := stringReplace( result, '{Top}', roundFor(GetTMetr,8), options) - // Делаю замену в пять операций потому, что при попытке - // сделать все одной строкой возникает ошибка. - // Возможно какое-то ограничение на память. - end; - - if isContains('{timeStamp}', result) then begin - calculatedValue := IntToStr(GetUnixTime); - result := stringReplace( result, '{timeStamp}', calculatedValue, options) - end; -end; - - - - -// ----------------------------------------------------------------------------- -// --- 1. Старт скрипта. Запустить вычисление URL-адреса тайла. -// --- Скачать тайл по полученному URL. -// ----------------------------------------------------------------------------- -begin - resultURL := replaceLeafletPlaceholders(getURLBase, getX, getY, getZ); - resultURL := replaceServerName(resultURL); -end. diff --git a/anygis/Tracks_Strava_Winter.zmp/info.txt b/anygis/Tracks_Strava_Winter.zmp/info.txt index 615f451d0..94ae5cdcb 100644 --- a/anygis/Tracks_Strava_Winter.zmp/info.txt +++ b/anygis/Tracks_Strava_Winter.zmp/info.txt @@ -1,4 +1,6 @@ Этот файл был создан автоматически с помощью файло-генератора AnyGIS.ru + +Он должен работать с SasPlanet версии 200127.10112 и новее Если вы заметили ошибку, свяжитесь со мной и сообщите о ней: diff --git a/anygis/Tracks_Strava_Winter.zmp/params.txt b/anygis/Tracks_Strava_Winter.zmp/params.txt index 7f9b7eb01..8b3ec7bd9 100644 --- a/anygis/Tracks_Strava_Winter.zmp/params.txt +++ b/anygis/Tracks_Strava_Winter.zmp/params.txt @@ -1,6 +1,6 @@ п»ї [PARAMS] -GUID={051E9432-9EBD-4CB0-B21E-E209209A28C7} +GUID={723A4141-C185-406A-9F74-3E12311B7E2A} ParentSubMenu_ru=Маршруты Рё GPS-Треки ParentSubMenu_uk=Маршруты Рё GPS-Треки ParentSubMenu=Ways and GPS-Tracks @@ -9,9 +9,7 @@ name_uk=Strava Heatmap - Р—РёРјРЅРёР№ СЃРїРѕСЂС‚ name=Strava Heatmap - Winter NameInCache=Tracks_Strava_Winter asLayer=1 -projection=1 -sradiusa=6378137 -sradiusb=6378137 +EPSG=3785 DefURLBase=https://anygis.ru/api/v1/Tracks_Strava_Winter/{x}/{y}/{z} RequestHead=Referer:https://www.strava.com/heatmap\r\nConnection: keep-alive\r\nUser-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/62.0.3202.94 Safari/537.36\r\nAccept: image/webp,image/apng,image/*,*/*;q=0.8\r\nAccept-Encoding: gzip, deflate\r\nAccept-Language: ru,en-US;q=0.9,en;q=0.8 ContentType=image/jpeg,image/png diff --git a/mapbox/mapbox_sat.zmp/18.bmp b/mapbox/mapbox_sat.zmp/18.bmp deleted file mode 100644 index a90c7c275..000000000 Binary files a/mapbox/mapbox_sat.zmp/18.bmp and /dev/null differ diff --git a/mapbox/mapbox_sat.zmp/24.bmp b/mapbox/mapbox_sat.zmp/24.bmp deleted file mode 100644 index 11f1e9e1b..000000000 Binary files a/mapbox/mapbox_sat.zmp/24.bmp and /dev/null differ diff --git a/mapbox/mapbox_sat.zmp/GetUrlScript.txt b/mapbox/mapbox_sat.zmp/GetUrlScript.txt deleted file mode 100644 index a6d341965..000000000 --- a/mapbox/mapbox_sat.zmp/GetUrlScript.txt +++ /dev/null @@ -1,6 +0,0 @@ -var - tile: string; -begin - GetURLBase[9]:=chr(ord('a')+random(2)); - ResultURL:=GetUrlBase+inttostr(GetZ-1)+'/'+inttostr(GetX)+'/'+inttostr(GetY)+'.png'; -end. \ No newline at end of file diff --git a/mapbox/mapbox_sat.zmp/params.txt b/mapbox/mapbox_sat.zmp/params.txt deleted file mode 100644 index bb7d4f09f..000000000 --- a/mapbox/mapbox_sat.zmp/params.txt +++ /dev/null @@ -1,15 +0,0 @@ -[PARAMS] -pnum=170 -GUID={01BDC3A9-D0C0-4B84-BFB5-94AAF9D100F7} -name=Mapbox satellite -NameInCache=Mapbox_sat -DefURLBase=https://a.tiles.mapbox.com/v3/tmcw.map-j5fsp01s/ -Ext=.jpg -defaultContentType=image/jpeg -ContentType="image/jpeg" -projection=1 -sradiusa=6378137 -sradiusb=6378137 -ParentSubMenu_ru=Другие карты -ParentSubMenu=Other maps -ParentSubMenu_uk=Інші карти diff --git a/mapbox/osm_mapbox_mapnik_layer.zmp/18.bmp b/mapbox/osm_mapbox_mapnik_layer.zmp/18.bmp deleted file mode 100644 index a90c7c275..000000000 Binary files a/mapbox/osm_mapbox_mapnik_layer.zmp/18.bmp and /dev/null differ diff --git a/mapbox/osm_mapbox_mapnik_layer.zmp/24.bmp b/mapbox/osm_mapbox_mapnik_layer.zmp/24.bmp deleted file mode 100644 index 11f1e9e1b..000000000 Binary files a/mapbox/osm_mapbox_mapnik_layer.zmp/24.bmp and /dev/null differ diff --git a/mapbox/osm_mapbox_mapnik_layer.zmp/GetUrlScript.txt b/mapbox/osm_mapbox_mapnik_layer.zmp/GetUrlScript.txt deleted file mode 100644 index c59972464..000000000 --- a/mapbox/osm_mapbox_mapnik_layer.zmp/GetUrlScript.txt +++ /dev/null @@ -1,7 +0,0 @@ -begin - ResultURL:= GetUrlBase + inttostr(GetX) + '/' + inttostr(GetY) + '/' + inttostr(GetZ - 1); -end. - - - - diff --git a/mapbox/osm_mapbox_mapnik_layer.zmp/info.txt b/mapbox/osm_mapbox_mapnik_layer.zmp/info.txt deleted file mode 100644 index 4754eee74..000000000 --- a/mapbox/osm_mapbox_mapnik_layer.zmp/info.txt +++ /dev/null @@ -1,7 +0,0 @@ -От составителя: -Данный слой предназначен для дополнения OSM - Mapnik. -Манера отрисовки рельефа подобрана максимально мягкая и ненавязчивая, -чтобы не затруднять чтение тропинок и мелких надписей. - -В качестве источника использовался сайт Mapbox.com - diff --git a/mapbox/osm_mapbox_mapnik_layer.zmp/params.txt b/mapbox/osm_mapbox_mapnik_layer.zmp/params.txt deleted file mode 100644 index 632e58d6c..000000000 --- a/mapbox/osm_mapbox_mapnik_layer.zmp/params.txt +++ /dev/null @@ -1,20 +0,0 @@ -п»ї[PARAMS] -pnum=118 -GUID={AB8A8685-AEC6-4E16-80DA-DF4AC37E4777} -asLayer=1 -name_ru=Mapbox.com (mapnik layer) -name=Mapbox.com (mapnik layer) -name_uk=Mapbox.com (mapnik layer) -ParentSubMenu_ru=Рельеф Рё тополинии -ParentSubMenu=Hillshade -ParentSubMenu_uk=Рельєф С– тополинии -NameInCache=OSM_mapbox_mapnik -DefURLBase=https://anygis.herokuapp.com/Osm_Mapnik_Mapbox_Hillshades/ -ContentType=image/png -Ext=.png -projection=1 -sradiusa=6378137 -sradiusb=6378137 -RequestHead=User-Agent: SAS.Planet -IteratorSubRectSize=8,8 -License=Map data В© OpenStreetMap contributors, rendering GIScience Research Group @ University of Heidelberg