From c679cfbd7330cd050005f14492fec28e8a00bbd4 Mon Sep 17 00:00:00 2001 From: djes Date: Wed, 24 Aug 2016 18:00:08 +0200 Subject: [PATCH 01/62] WIP typhoon cache cleaning --- PBMap.pb | 76 ++++++++++++++++++++++++++++++++------------------------ 1 file changed, 44 insertions(+), 32 deletions(-) diff --git a/PBMap.pb b/PBMap.pb index 9985f29..dd6f07f 100644 --- a/PBMap.pb +++ b/PBMap.pb @@ -102,6 +102,7 @@ Module PBMap Structure ImgMemCach nImage.i Location.Location + Mutex.i EndStructure Structure TileMemCach @@ -481,23 +482,26 @@ Module PBMap Protected Tile.position ;Adding the image to the cache if possible AddMapElement(PBMap\MemCache\Images(), key) + PBMap\MemCache\Images(key)\Mutex = CreateMutex() + LockMutex(PBMap\MemCache\Images(key)\Mutex) nImage = GetTileFromHDD(CacheFile) If nImage = -1 nImage = GetTileFromWeb(*Tile\PBMapZoom, *Tile\PBMapTileX, *Tile\PBMapTileY, CacheFile) + If nImage = -1 + MyDebug("Error GetImageThread procedure, image not loaded - " + key) + *Tile\nImage = -1 + ProcedureReturn + EndIf EndIf - If nImage <> -1 - PBMap\MemCache\Images(key)\nImage = nImage - Tile\x=*Tile\PBMapTileX - Tile\y=*Tile\PBMapTiley - XY2LatLon(@Tile,@PBMap\MemCache\Images(key)\Location) - MyDebug("Image nb " + Str(nImage) + " successfully added to mem cache") - MyDebug("With the following key : " + key) - Else - MyDebug("Error GetImageThread procedure, image not loaded - " + key) - nImage = -1 - EndIf + PBMap\MemCache\Images(key)\nImage = nImage + Tile\x=*Tile\PBMapTileX + Tile\y=*Tile\PBMapTiley + XY2LatLon(@Tile,@PBMap\MemCache\Images(key)\Location) + MyDebug("Image nb " + Str(nImage) + " successfully added to mem cache") + MyDebug("With the following key : " + key) ;Define this tile image nb *Tile\nImage = nImage + UnlockMutex(PBMap\MemCache\Images(key)\Mutex) EndProcedure Procedure DrawTile(*Tile.Tile) @@ -583,23 +587,30 @@ Module PBMap DeleteElement(PBMap\TilesThreads()) EndIf Next - ;-****Clean Mem Cache + ;-**** Clean Mem Cache + ;TODO in development, by now there's many cache problem as the loading thread could be perturbed + ;GadgetWidth(PBMap\Gadget)/PBMap\TileSize + Protected MaxNbTile.l + If GadgetWidth(PBMap\Gadget)>GadgetHeight(PBMap\Gadget) + MaxNbTile=GadgetWidth(PBMap\Gadget)/PBMap\TileSize + Else + MaxNbTile=GadgetHeight(PBMap\Gadget)/PBMap\TileSize + EndIf + Protected Scale.d= 40075*Cos(Radian(PBMap\TargetLocation\Latitude))/Pow(2,PBMap\Zoom) + Protected Limit.d=Scale*(MaxNbTile)*1.5 + Debug "Cache cleaning" ForEach PBMap\MemCache\Images() - ;GadgetWidth(PBMap\Gadget)/PBMap\TileSize - Protected MaxNbTile.l - If GadgetWidth(PBMap\Gadget)>GadgetHeight(PBMap\Gadget) - MaxNbTile=GadgetWidth(PBMap\Gadget)/PBMap\TileSize - Else - MaxNbTile=GadgetHeight(PBMap\Gadget)/PBMap\TileSize - EndIf - Protected Scale.d= 40075*Cos(Radian(PBMap\TargetLocation\Latitude))/Pow(2,PBMap\Zoom) - Protected Limit.d=Scale*(MaxNbTile)*1.5 - Protected Distance.d=HaversineInKM(@PBMap\MemCache\Images()\Location, @PBMap\TargetLocation) - Debug "Limit:"+StrD(Limit)+" Distance:"+StrD(Distance) - If Distance>Limit - Debug "delete" - DeleteMapElement(PBMap\MemCache\Images()) - EndIf + Protected Distance.d = HaversineInKM(@PBMap\MemCache\Images()\Location, @PBMap\TargetLocation) + Debug "Limit:"+StrD(Limit)+" Distance:"+StrD(Distance) + If Distance>Limit And IsImage(PBMap\MemCache\Images()\nImage) + LockMutex(PBMap\MemCache\Images()\Mutex) + Debug "delete" + Debug PBMap\MemCache\Images() + FreeImage(PBMap\MemCache\Images()\nImage) + UnlockMutex(PBMap\MemCache\Images()\Mutex) + FreeMutex(PBMap\MemCache\Images()\Mutex) + DeleteMapElement(PBMap\MemCache\Images()) + EndIf Next EndProcedure @@ -984,7 +995,7 @@ Module PBMap ;New move values PBMap\Position\x - MouseX PBMap\Position\y - MouseY - ;Fill parameters and signal the drawing thread + ;Fill parameters and send a signal to the drawing thread LockMutex(PBMap\Drawing\Mutex) ;PBMap tile position in tile.decimal PBMap\Drawing\Position\x = PBMap\Position\x / PBMap\TileSize @@ -992,9 +1003,9 @@ Module PBMap PBMap\Drawing\PassNb = 1 XY2LatLon(@PBMap\Drawing, @PBMap\TargetLocation) UnlockMutex(PBMap\Drawing\Mutex) + ;Start drawing + SignalSemaphore(PBMap\Drawing\Semaphore) EndIf - ;Start drawing - SignalSemaphore(PBMap\Drawing\Semaphore) ;If CallBackLocation send Location to function If PBMap\CallBackLocation > 0 CallFunctionFast(PBMap\CallBackLocation, @PBMap\TargetLocation) @@ -1167,8 +1178,9 @@ CompilerIf #PB_Compiler_IsMainFile EndIf CompilerEndIf ; IDE Options = PureBasic 5.50 (Windows - x64) -; CursorPosition = 1132 -; FirstLine = 1123 +; ExecutableFormat = Console +; CursorPosition = 595 +; FirstLine = 581 ; Folding = --------- ; EnableThread ; EnableXP From 46d4a37c982e70b0c4c44e9feb30cde5eaf349f4 Mon Sep 17 00:00:00 2001 From: djes Date: Thu, 25 Aug 2016 11:56:54 +0200 Subject: [PATCH 02/62] Debug, code cleaning, debug infos Map list add was theaded and could lead to crash. --- PBMap.pb | 206 +++++++++++++++++++++++++++++-------------------------- 1 file changed, 107 insertions(+), 99 deletions(-) diff --git a/PBMap.pb b/PBMap.pb index dd6f07f..616e36d 100644 --- a/PBMap.pb +++ b/PBMap.pb @@ -25,7 +25,8 @@ UsePNGImageEncoder() DeclareModule PBMap ;-Show debug infos - Global Verbose = #False + Global Verbose = #True + Global MyDebugLevel = 1 Global Proxy = #False Declare InitPBMap() Declare SetMapServer(ServerURL.s="http://tile.openstreetmap.org/",TileSize.l=256,ZoomMin.l=0,ZoomMax.l=18) @@ -73,6 +74,7 @@ Module PBMap PBMapTileY.i PBMapZoom.i nImage.i + key.s GetImageThread.i EndStructure @@ -95,8 +97,8 @@ Module PBMap EndStructure Structure TileThread + *Tile.Tile GetImageThread.i - *Tile.Tile EndStructure Structure ImgMemCach @@ -162,9 +164,9 @@ Module PBMap End EndProcedure - ;Send debug infos to stdout - Procedure MyDebug(msg.s) - If Verbose + ;Send debug infos to stdout (allowing mixed debug infos with curl or other libs) + Procedure MyDebug(msg.s, DbgLevel = 0) + If Verbose And MyDebugLevel >= DbgLevel PrintN(msg) EndIf EndProcedure @@ -417,14 +419,13 @@ Module PBMap EndIf EndProcedure - Procedure.i GetTileFromMem(Zoom.i, XTile.i, YTile.i) - Protected key.s = "Z" + RSet(Str(Zoom), 4, "0") + "X" + RSet(Str(XTile), 8, "0") + "Y" + RSet(Str(YTile), 8, "0") - MyDebug("Check if we have this image in memory") + Procedure.i GetTileFromMem(key.s) + MyDebug("Check if we have this image in memory", 3) If FindMapElement(PBMap\MemCache\Images(), key) - MyDebug("Key : " + key + " found !") + MyDebug("Key : " + key + " found !", 3) ProcedureReturn PBMap\MemCache\Images()\nImage Else - MyDebug("Key : " + key + " not found !") + MyDebug("Key : " + key + " not found !", 3) ProcedureReturn -1 EndIf EndProcedure @@ -434,11 +435,11 @@ Module PBMap If FileSize(CacheFile) > 0 nImage = LoadImage(#PB_Any, CacheFile) If IsImage(nImage) - MyDebug("Loadimage " + CacheFile + " -> Success !") + MyDebug("Loadimage " + CacheFile + " -> Success !", 3) ProcedureReturn nImage EndIf EndIf - MyDebug("Loadimage " + CacheFile + " -> Failed !") + MyDebug("Loadimage " + CacheFile + " -> Failed !", 3) ProcedureReturn -1 EndProcedure @@ -447,29 +448,29 @@ Module PBMap Protected nImage.i = -1 Protected FileHandle.i Protected TileURL.s = PBMap\ServerURL + Str(Zoom) + "/" + Str(XTile) + "/" + Str(YTile) + ".png" - MyDebug("Check if we have this image on Web") + MyDebug("Check if we have this image on Web", 3) If Proxy FileHandle = CurlReceiveHTTPToFile(TileURL, CacheFile, ProxyURL$, ProxyPort$, ProxyUser$, ProxyPassword$) If FileHandle nImage = GetTileFromHDD(CacheFile) Else - MyDebug("File " + TileURL + " not correctly received with Curl and proxy") + MyDebug("File " + TileURL + " not correctly received with Curl and proxy", 3) EndIf Else *Buffer = ReceiveHTTPMemory(TileURL) ;TODO to thread by using #PB_HTTP_Asynchronous If *Buffer nImage = CatchImage(#PB_Any, *Buffer, MemorySize(*Buffer)) If IsImage(nImage) - MyDebug("Load from web " + TileURL + " as Tile nb " + nImage) + MyDebug("Load from web " + TileURL + " as Tile nb " + nImage, 3) SaveImage(nImage, CacheFile, #PB_ImagePlugin_PNG) FreeMemory(*Buffer) Else - MyDebug("Can't catch image " + TileURL) + MyDebug("Can't catch image " + TileURL, 3) nImage = -1 ;ShowMemoryViewer(*Buffer, MemorySize(*Buffer)) EndIf Else - MyDebug("ReceiveHTTPMemory's buffer is empty") + MyDebug("ReceiveHTTPMemory's buffer is empty", 3) EndIf EndIf ProcedureReturn nImage @@ -477,38 +478,35 @@ Module PBMap Procedure GetImageThread(*Tile.Tile) Protected nImage.i = -1 - Protected key.s = "Z" + RSet(Str(*Tile\PBMapZoom), 4, "0") + "X" + RSet(Str(*Tile\PBMapTileX), 8, "0") + "Y" + RSet(Str(*Tile\PBMapTileY), 8, "0") Protected CacheFile.s = PBMap\HDDCachePath + "PBMap_" + Str(*Tile\PBMapZoom) + "_" + Str(*Tile\PBMapTileX) + "_" + Str(*Tile\PBMapTileY) + ".png" Protected Tile.position - ;Adding the image to the cache if possible - AddMapElement(PBMap\MemCache\Images(), key) - PBMap\MemCache\Images(key)\Mutex = CreateMutex() - LockMutex(PBMap\MemCache\Images(key)\Mutex) +; PBMap\MemCache\Images(*Tile\key)\Mutex = CreateMutex() +; LockMutex(PBMap\MemCache\Images(*Tile\key)\Mutex) nImage = GetTileFromHDD(CacheFile) If nImage = -1 nImage = GetTileFromWeb(*Tile\PBMapZoom, *Tile\PBMapTileX, *Tile\PBMapTileY, CacheFile) If nImage = -1 - MyDebug("Error GetImageThread procedure, image not loaded - " + key) + MyDebug("Error GetImageThread procedure, image not loaded - " + *Tile\key, 3) *Tile\nImage = -1 ProcedureReturn EndIf EndIf - PBMap\MemCache\Images(key)\nImage = nImage - Tile\x=*Tile\PBMapTileX - Tile\y=*Tile\PBMapTiley - XY2LatLon(@Tile,@PBMap\MemCache\Images(key)\Location) - MyDebug("Image nb " + Str(nImage) + " successfully added to mem cache") - MyDebug("With the following key : " + key) + PBMap\MemCache\Images(*Tile\key)\nImage = nImage +; Tile\x=*Tile\PBMapTileX +; Tile\y=*Tile\PBMapTiley +; XY2LatLon(@Tile,@PBMap\MemCache\Images(*Tile\key)\Location) + MyDebug("Image nb " + Str(nImage) + " successfully added to mem cache", 3) + MyDebug("With the following key : " + *Tile\key, 3) ;Define this tile image nb *Tile\nImage = nImage - UnlockMutex(PBMap\MemCache\Images(key)\Mutex) +; UnlockMutex(PBMap\MemCache\Images(key)\Mutex) EndProcedure Procedure DrawTile(*Tile.Tile) Protected x = *Tile\Position\x Protected y = *Tile\Position\y - MyDebug(" Drawing tile nb " + " X : " + Str(*Tile\PBMapTileX) + " Y : " + Str(*Tile\PBMapTileX)) - MyDebug(" at coords " + Str(x) + "," + Str(y)) + MyDebug(" Drawing tile nb " + " X : " + Str(*Tile\PBMapTileX) + " Y : " + Str(*Tile\PBMapTileX), 2) + MyDebug(" at coords " + Str(x) + "," + Str(y), 2) MovePathCursor(x, y) DrawVectorImage(ImageID(*Tile\nImage)) EndProcedure @@ -517,8 +515,8 @@ Module PBMap Protected x = *Tile\Position\x Protected y = *Tile\Position\y Protected Text$ = "Loading" - MyDebug(" Drawing tile nb " + " X : " + Str(*Tile\PBMapTileX) + " Y : " + Str(*Tile\PBMapTileX)) - MyDebug(" at coords " + Str(x) + "," + Str(y)) + MyDebug(" Drawing tile nb " + " X : " + Str(*Tile\PBMapTileX) + " Y : " + Str(*Tile\PBMapTileX), 2) + MyDebug(" at coords " + Str(x) + "," + Str(y), 2) BeginVectorLayer() ;MovePathCursor(x, y) VectorSourceColor(RGBA(255, 255, 255, 128)) @@ -538,17 +536,18 @@ Module PBMap Protected ty = Int(*Drawing\Position\y) Protected nx = *Drawing\CenterX / PBMap\TileSize ;How many tiles around the point Protected ny = *Drawing\CenterY / PBMap\TileSize - MyDebug("Drawing tiles") + MyDebug("Drawing tiles", 2) For y = - ny - 1 To ny + 1 For x = - nx - 1 To nx + 1 ;Was quiting the loop if a move occured, giving maybe smoother movement ;If PBMap\Moving ; Break 2 ;EndIf + ;Store parameters in only one memory place, and give it to the thread if needed Protected *NewTile.Tile = AllocateMemory(SizeOf(Tile)) If *NewTile With *NewTile - ;Keep a track of tiles (especially to free memory) + ;Keep a track of tiles and eventually threads associated (to free memory) AddElement(PBMap\TilesThreads()) PBMap\TilesThreads()\Tile = *NewTile ;New tile parameters @@ -557,78 +556,98 @@ Module PBMap \PBMapTileX = tx + x \PBMapTileY = ty + y \PBMapZoom = PBMap\Zoom + \key = "Z" + RSet(Str(\PBMapZoom), 4, "0") + "X" + RSet(Str(\PBMapTileX), 8, "0") + "Y" + RSet(Str(\PBMapTileY), 8, "0") ;Check if the image exists - \nImage = GetTileFromMem(\PBMapZoom, \PBMapTileX, \PBMapTileY) - If \nImage = -1 - ;If not, load it in the background - \GetImageThread = CreateThread(@GetImageThread(), *NewTile) - PBMap\TilesThreads()\GetImageThread = \GetImageThread - MyDebug(" Creating get image thread nb " + Str(\GetImageThread)) + \nImage = GetTileFromMem(\key) + If \nImage = -1 + ;If not, load it in the background + If AddMapElement(PBMap\MemCache\Images(), \key) ;Add the image to the cache *only* in this loop + \GetImageThread = CreateThread(@GetImageThread(), *NewTile) + PBMap\TilesThreads()\GetImageThread = \GetImageThread + MyDebug(" Creating get image thread nb " + Str(\GetImageThread), 2) + Else + MyDebug(" Can't add a new image to the map list", 2) + EndIf EndIf If IsImage(\nImage) DrawTile(*NewTile) Else - MyDebug("Image missing") + MyDebug("Image missing", 2) DrawLoading(*NewTile) *Drawing\Dirty = #True ;Signals that this image is missing so we should have to redraw EndIf EndWith Else - MyDebug(" Error, can't create a new tile") + MyDebug(" Error, can't create a new tile", 2) Break 2 EndIf Next Next - ;Free tile memory when the loading thread has finished + ;Free tile memory ;TODO : get out this proc from drawtiles in a special "free ressources" task ForEach PBMap\TilesThreads() + ;Check if there's no more loading thread If IsThread(PBMap\TilesThreads()\GetImageThread) = 0 FreeMemory(PBMap\TilesThreads()\Tile) DeleteElement(PBMap\TilesThreads()) EndIf Next - ;-**** Clean Mem Cache - ;TODO in development, by now there's many cache problem as the loading thread could be perturbed - ;GadgetWidth(PBMap\Gadget)/PBMap\TileSize - Protected MaxNbTile.l - If GadgetWidth(PBMap\Gadget)>GadgetHeight(PBMap\Gadget) - MaxNbTile=GadgetWidth(PBMap\Gadget)/PBMap\TileSize - Else - MaxNbTile=GadgetHeight(PBMap\Gadget)/PBMap\TileSize - EndIf - Protected Scale.d= 40075*Cos(Radian(PBMap\TargetLocation\Latitude))/Pow(2,PBMap\Zoom) - Protected Limit.d=Scale*(MaxNbTile)*1.5 - Debug "Cache cleaning" - ForEach PBMap\MemCache\Images() - Protected Distance.d = HaversineInKM(@PBMap\MemCache\Images()\Location, @PBMap\TargetLocation) - Debug "Limit:"+StrD(Limit)+" Distance:"+StrD(Distance) - If Distance>Limit And IsImage(PBMap\MemCache\Images()\nImage) - LockMutex(PBMap\MemCache\Images()\Mutex) - Debug "delete" - Debug PBMap\MemCache\Images() - FreeImage(PBMap\MemCache\Images()\nImage) - UnlockMutex(PBMap\MemCache\Images()\Mutex) - FreeMutex(PBMap\MemCache\Images()\Mutex) - DeleteMapElement(PBMap\MemCache\Images()) - EndIf - Next +; ;-**** Clean Mem Cache +; ;TODO in development, by now there's many cache problem as the loading thread could be perturbed +; ;GadgetWidth(PBMap\Gadget)/PBMap\TileSize +; Protected MaxNbTile.l +; If GadgetWidth(PBMap\Gadget)>GadgetHeight(PBMap\Gadget) +; MaxNbTile=GadgetWidth(PBMap\Gadget)/PBMap\TileSize +; Else +; MaxNbTile=GadgetHeight(PBMap\Gadget)/PBMap\TileSize +; EndIf +; Protected Scale.d= 40075*Cos(Radian(PBMap\TargetLocation\Latitude))/Pow(2,PBMap\Zoom) +; Protected Limit.d=Scale*(MaxNbTile)*1.5 +; Debug "Cache cleaning" +; ForEach PBMap\MemCache\Images() +; Protected Distance.d = HaversineInKM(@PBMap\MemCache\Images()\Location, @PBMap\TargetLocation) +; Debug "Limit:"+StrD(Limit)+" Distance:"+StrD(Distance) +; If Distance>Limit And IsImage(PBMap\MemCache\Images()\nImage) +; LockMutex(PBMap\MemCache\Images()\Mutex) +; Debug "delete" +; Debug PBMap\MemCache\Images() +; FreeImage(PBMap\MemCache\Images()\nImage) +; UnlockMutex(PBMap\MemCache\Images()\Mutex) +; FreeMutex(PBMap\MemCache\Images()\Mutex) +; DeleteMapElement(PBMap\MemCache\Images()) +; EndIf +; Next EndProcedure - Procedure Pointer(x.i, y.i, color.l = 0) - VectorSourceColor(color) - MovePathCursor(x, y) - AddPathLine(-8, -16, #PB_Path_Relative) - AddPathCircle(8, 0, 8, 180, 0, #PB_Path_Relative) - AddPathLine(-8, 16, #PB_Path_Relative) - ;FillPath(#PB_Path_Preserve) - ;ClipPath(#PB_Path_Preserve) - AddPathCircle(0, -16, 5, 0, 360, #PB_Path_Relative) - VectorSourceColor(color) - FillPath(#PB_Path_Preserve):VectorSourceColor(color);RGBA(0, 0, 0, 255)) - StrokePath(1) + Procedure DrawPointer(*Drawing.DrawingParameters) + If PBMap\CallBackMainPointer > 0 + ; @Procedure(X.i, Y.i) to DrawPointer (you must use VectorDrawing lib) + CallFunctionFast(PBMap\CallBackMainPointer, *Drawing\CenterX, *Drawing\CenterY) + Else + VectorSourceColor(RGBA($FF, 0, 0, $FF)) + MovePathCursor(*Drawing\CenterX, *Drawing\CenterY) + AddPathLine(-8, -16, #PB_Path_Relative) + AddPathCircle(8, 0, 8, 180, 0, #PB_Path_Relative) + AddPathLine(-8, 16, #PB_Path_Relative) + ;FillPath(#PB_Path_Preserve) + ;ClipPath(#PB_Path_Preserve) + AddPathCircle(0, -16, 5, 0, 360, #PB_Path_Relative) + VectorSourceColor(RGBA($FF, 0, 0, $FF)) + FillPath(#PB_Path_Preserve):VectorSourceColor(RGBA($FF, 0, 0, $FF));RGBA(0, 0, 0, 255)) + StrokePath(1) + EndIf EndProcedure + Procedure DrawScale(*Drawing.DrawingParameters) + ;TODO Add Option and function to display Scale on Map + Protected Scale.d= 40075*Cos(Radian(PBMap\TargetLocation\Latitude))/Pow(2,PBMap\Zoom) + VectorFont(FontID(PBMap\Font), 30) + VectorSourceColor(RGBA(0, 0, 0, 80)) + MovePathCursor(50,50) + DrawVectorText(StrD(Scale)) + EndProcedure + Procedure TrackPointer(x.i, y.i,dist.l) Protected color.l color=RGBA(0, 0, 0, 255) @@ -711,7 +730,7 @@ Module PBMap If PBMap\Marker()\CallBackPointer > 0 CallFunctionFast(PBMap\Marker()\CallBackPointer, Pixel\X, Pixel\Y) Else - Pointer(Pixel\X, Pixel\Y, PBMap\Marker()\color) + DrawPointer(*Drawing) EndIf EndIf EndIf @@ -745,20 +764,9 @@ Module PBMap DrawTiles(@Drawing) DrawTrack(@Drawing) DrawMarker(@Drawing) - ; @Procedure(X.i, Y.i) to DrawPointer (you must use VectorDrawing lib) - If PBMap\CallBackMainPointer > 0 - CallFunctionFast(PBMap\CallBackMainPointer, Drawing\CenterX, Drawing\CenterY) - Else - Pointer(Drawing\CenterX, Drawing\CenterY, RGBA($FF, 0, 0, $FF)) - EndIf - ;TODO Add Option and function to display Scale on Map - ;Protected Scale.d= 40075*Cos(Radian(PBMap\TargetLocation\Latitude))/Pow(2,PBMap\Zoom) - ;VectorFont(FontID(PBMap\Font), 30) - ;VectorSourceColor(RGBA(0, 0, 0, 80)) - ;MovePathCursor(50,50) - ;DrawVectorText(StrD(Scale)) - - ;- Display How Many Image in Cache + DrawPointer(@Drawing) + ;DrawScale(@Drawing) + ;- Display how many images in cache VectorFont(FontID(PBMap\Font), 30) VectorSourceColor(RGBA(0, 0, 0, 80)) MovePathCursor(50,50) @@ -1179,8 +1187,8 @@ CompilerIf #PB_Compiler_IsMainFile CompilerEndIf ; IDE Options = PureBasic 5.50 (Windows - x64) ; ExecutableFormat = Console -; CursorPosition = 595 -; FirstLine = 581 +; CursorPosition = 445 +; FirstLine = 442 ; Folding = --------- ; EnableThread ; EnableXP From a4f2ea5bb71b9ff32f4d058c30c268254238a0fb Mon Sep 17 00:00:00 2001 From: djes Date: Thu, 25 Aug 2016 12:52:36 +0200 Subject: [PATCH 03/62] code cleanup --- PBMap.pb | 42 ++++++++++++++++++++++-------------------- 1 file changed, 22 insertions(+), 20 deletions(-) diff --git a/PBMap.pb b/PBMap.pb index 616e36d..b069392 100644 --- a/PBMap.pb +++ b/PBMap.pb @@ -26,7 +26,7 @@ UsePNGImageEncoder() DeclareModule PBMap ;-Show debug infos Global Verbose = #True - Global MyDebugLevel = 1 + Global MyDebugLevel = 3 Global Proxy = #False Declare InitPBMap() Declare SetMapServer(ServerURL.s="http://tile.openstreetmap.org/",TileSize.l=256,ZoomMin.l=0,ZoomMax.l=18) @@ -103,8 +103,8 @@ Module PBMap Structure ImgMemCach nImage.i - Location.Location - Mutex.i + ;Location.Location + ;Mutex.i EndStructure Structure TileMemCach @@ -184,8 +184,8 @@ Module PBMap Procedure.i CurlReceiveHTTPToFile(URL$, DestFileName$, ProxyURL$="", ProxyPort$="", ProxyUser$="", ProxyPassword$="") Protected *Buffer, curl.i, Timeout.i, res.i Protected FileHandle.i - MyDebug("ReceiveHTTPToFile from " + URL$ + " " + ProxyURL$ + ProxyPort$ + ProxyUser$) - MyDebug(" to file : " + DestFileName$) + MyDebug("ReceiveHTTPToFile from " + URL$ + " " + ProxyURL$ + ProxyPort$ + ProxyUser$, 3) + MyDebug(" to file : " + DestFileName$, 3) FileHandle = CreateFile(#PB_Any, DestFileName$) If FileHandle And Len(URL$) curl = curl_easy_init() @@ -218,11 +218,11 @@ Module PBMap curl_easy_setopt(curl, #CURLOPT_WRITEFUNCTION, @ReceiveHTTPWriteToFileFunction()) res = curl_easy_perform(curl) If res <> #CURLE_OK - MyDebug("CURL problem") + MyDebug("CURL problem", 3) EndIf curl_easy_cleanup(curl) Else - MyDebug("Can't init CURL") + MyDebug("Can't init CURL", 3) EndIf CloseFile(FileHandle) ProcedureReturn FileSize(DestFileName$) @@ -245,7 +245,7 @@ Module PBMap PBMap\Dirty = #False PBMap\Drawing\Mutex = CreateMutex() PBMap\Drawing\Semaphore = CreateSemaphore() - PBMap\EditMarkerIndex = -1 ;<- You must initialize with No Marker selected + PBMap\EditMarkerIndex = -1 ;Initialised with "no marker selected" PBMap\Font = LoadFont(#PB_Any, "Arial", 20, #PB_Font_Bold) ;-Options PBMap\Options\WheelMouseRelative = #True @@ -289,10 +289,12 @@ Module PBMap EndProcedure Procedure Quit() - ;kill main drawing thread (nicer than KillThread(PBMap\MainDrawingThread)) + ;Ask main drawing thread to stop and wait for it (nicer than KillThread(PBMap\MainDrawingThread)) LockMutex(PBMap\Drawing\Mutex) PBMap\Drawing\End = #True - UnlockMutex(PBMap\Drawing\Mutex) + ;KillThread(PBMap\MainDrawingThread) + UnlockMutex(PBMap\Drawing\Mutex) + Repeat : Until Not IsThread(PBMap\MainDrawingThread) ;wait for loading threads to finish nicely ResetList(PBMap\TilesThreads()) While NextElement(PBMap\TilesThreads()) @@ -302,7 +304,7 @@ Module PBMap ResetList( PBMap\TilesThreads()) EndIf Wend - curl_global_cleanup() + curl_global_cleanup() EndProcedure Macro Min(a,b) @@ -547,7 +549,7 @@ Module PBMap Protected *NewTile.Tile = AllocateMemory(SizeOf(Tile)) If *NewTile With *NewTile - ;Keep a track of tiles and eventually threads associated (to free memory) + ;Keep a track of tiles, and eventually associated threads, to free memory AddElement(PBMap\TilesThreads()) PBMap\TilesThreads()\Tile = *NewTile ;New tile parameters @@ -556,12 +558,12 @@ Module PBMap \PBMapTileX = tx + x \PBMapTileY = ty + y \PBMapZoom = PBMap\Zoom - \key = "Z" + RSet(Str(\PBMapZoom), 4, "0") + "X" + RSet(Str(\PBMapTileX), 8, "0") + "Y" + RSet(Str(\PBMapTileY), 8, "0") + \key = "Z" + RSet(Str(\PBMapZoom), 4, "0") + "X" + RSet(Str(\PBMapTileX), 8, "0") + "Y" + RSet(Str(\PBMapTileY), 8, "0") ;Unique identifier ;Check if the image exists \nImage = GetTileFromMem(\key) If \nImage = -1 ;If not, load it in the background - If AddMapElement(PBMap\MemCache\Images(), \key) ;Add the image to the cache *only* in this loop + If AddMapElement(PBMap\MemCache\Images(), \key) ;Add the image to the cache, once in this loop \GetImageThread = CreateThread(@GetImageThread(), *NewTile) PBMap\TilesThreads()\GetImageThread = \GetImageThread MyDebug(" Creating get image thread nb " + Str(\GetImageThread), 2) @@ -583,7 +585,7 @@ Module PBMap EndIf Next Next - ;Free tile memory + ;Free tile memory ;TODO : get out this proc from drawtiles in a special "free ressources" task ForEach PBMap\TilesThreads() ;Check if there's no more loading thread @@ -617,7 +619,7 @@ Module PBMap ; DeleteMapElement(PBMap\MemCache\Images()) ; EndIf ; Next - + EndProcedure Procedure DrawPointer(*Drawing.DrawingParameters) @@ -771,7 +773,9 @@ Module PBMap VectorSourceColor(RGBA(0, 0, 0, 80)) MovePathCursor(50,50) DrawVectorText(Str(MapSize(PBMap\MemCache\Images()))) - StopVectorDrawing() + MovePathCursor(50,60) + DrawVectorText(Str(ListSize(PBMap\TilesThreads()))) + StopVectorDrawing() ;Redraw ; If something was not correctly drawn, redraw after a while LockMutex(*SharedDrawing\Mutex) ;Be sure that we're not modifying variables while moving (seems not useful, but it is, especially to clean the semaphore) @@ -784,7 +788,7 @@ Module PBMap Repeat : Until TrySemaphore(*SharedDrawing\Semaphore) = 0 EndIf UnlockMutex(*SharedDrawing\Mutex) - Until Drawing\End + Until Drawing\End EndProcedure Procedure Refresh() @@ -1187,8 +1191,6 @@ CompilerIf #PB_Compiler_IsMainFile CompilerEndIf ; IDE Options = PureBasic 5.50 (Windows - x64) ; ExecutableFormat = Console -; CursorPosition = 445 -; FirstLine = 442 ; Folding = --------- ; EnableThread ; EnableXP From 5fc43503e05c9fe29ab787eec764b769ae83e0c0 Mon Sep 17 00:00:00 2001 From: djes Date: Thu, 25 Aug 2016 13:51:34 +0200 Subject: [PATCH 04/62] Better quit handling --- PBMap.pb | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/PBMap.pb b/PBMap.pb index b069392..e94fce6 100644 --- a/PBMap.pb +++ b/PBMap.pb @@ -25,7 +25,7 @@ UsePNGImageEncoder() DeclareModule PBMap ;-Show debug infos - Global Verbose = #True + Global Verbose = #false Global MyDebugLevel = 3 Global Proxy = #False Declare InitPBMap() @@ -292,18 +292,19 @@ Module PBMap ;Ask main drawing thread to stop and wait for it (nicer than KillThread(PBMap\MainDrawingThread)) LockMutex(PBMap\Drawing\Mutex) PBMap\Drawing\End = #True - ;KillThread(PBMap\MainDrawingThread) UnlockMutex(PBMap\Drawing\Mutex) Repeat : Until Not IsThread(PBMap\MainDrawingThread) - ;wait for loading threads to finish nicely - ResetList(PBMap\TilesThreads()) - While NextElement(PBMap\TilesThreads()) - If IsThread(PBMap\TilesThreads()\GetImageThread) = 0 - FreeMemory(PBMap\TilesThreads()\Tile) - DeleteElement(PBMap\TilesThreads()) - ResetList( PBMap\TilesThreads()) - EndIf - Wend + ;Wait for loading threads to finish nicely + Repeat + ResetList(PBMap\TilesThreads()) + While NextElement(PBMap\TilesThreads()) + If IsThread(PBMap\TilesThreads()\GetImageThread) = 0 + FreeMemory(PBMap\TilesThreads()\Tile) + DeleteElement(PBMap\TilesThreads()) + EndIf + Wend + Delay(20) + Until ListSize(PBMap\TilesThreads()) = 0 curl_global_cleanup() EndProcedure @@ -1191,6 +1192,8 @@ CompilerIf #PB_Compiler_IsMainFile CompilerEndIf ; IDE Options = PureBasic 5.50 (Windows - x64) ; ExecutableFormat = Console +; CursorPosition = 305 +; FirstLine = 278 ; Folding = --------- ; EnableThread ; EnableXP From 836e3b70bb13a3d18a69eff0b7fd99196945592d Mon Sep 17 00:00:00 2001 From: djes Date: Thu, 25 Aug 2016 17:55:39 +0200 Subject: [PATCH 05/62] Tracking infamous GetTileFromHDD bug hanging sometimes don't know why. --- PBMap.pb | 52 ++++++++++++++++++++++++++++++++++++++-------------- 1 file changed, 38 insertions(+), 14 deletions(-) diff --git a/PBMap.pb b/PBMap.pb index e94fce6..32ba62b 100644 --- a/PBMap.pb +++ b/PBMap.pb @@ -25,7 +25,7 @@ UsePNGImageEncoder() DeclareModule PBMap ;-Show debug infos - Global Verbose = #false + Global Verbose = #False Global MyDebugLevel = 3 Global Proxy = #False Declare InitPBMap() @@ -156,7 +156,9 @@ Module PBMap Options.option ; EndStructure + ;-Global variables Global PBMap.PBMap, Null.i + Global LoadMutexTest = CreateMutex() ;Shows an error msg and terminates the program Procedure Error(msg.s) @@ -168,6 +170,7 @@ Module PBMap Procedure MyDebug(msg.s, DbgLevel = 0) If Verbose And MyDebugLevel >= DbgLevel PrintN(msg) + ;Debug msg EndIf EndProcedure @@ -289,21 +292,33 @@ Module PBMap EndProcedure Procedure Quit() - ;Ask main drawing thread to stop and wait for it (nicer than KillThread(PBMap\MainDrawingThread)) + Protected TimeCounter.q + ;Ask main drawing thread to stop and wait for it for 2 seconds LockMutex(PBMap\Drawing\Mutex) PBMap\Drawing\End = #True - UnlockMutex(PBMap\Drawing\Mutex) - Repeat : Until Not IsThread(PBMap\MainDrawingThread) - ;Wait for loading threads to finish nicely + UnlockMutex(PBMap\Drawing\Mutex) + TimeCounter = ElapsedMilliseconds() + Repeat + Delay(100) + If ElapsedMilliseconds() - TimeCounter > 2000 + ;Should not occur + KillThread(PBMap\MainDrawingThread) + EndIf + Until Not IsThread(PBMap\MainDrawingThread) + ;Wait for loading threads to finish nicely. Passed 2 seconds, kills them. + TimeCounter = ElapsedMilliseconds() Repeat ResetList(PBMap\TilesThreads()) While NextElement(PBMap\TilesThreads()) If IsThread(PBMap\TilesThreads()\GetImageThread) = 0 FreeMemory(PBMap\TilesThreads()\Tile) DeleteElement(PBMap\TilesThreads()) + ElseIf ElapsedMilliseconds() - TimeCounter > 2000 + ;Should not occur + KillThread(PBMap\TilesThreads()\GetImageThread) EndIf Wend - Delay(20) + Delay(10) Until ListSize(PBMap\TilesThreads()) = 0 curl_global_cleanup() EndProcedure @@ -434,15 +449,22 @@ Module PBMap EndProcedure Procedure.i GetTileFromHDD(CacheFile.s) - Protected nImage.i + Protected nImage.i + Debug "Loading image " + CacheFile + " ; Size : " + Str(FileSize(CacheFile)) If FileSize(CacheFile) > 0 nImage = LoadImage(#PB_Any, CacheFile) If IsImage(nImage) - MyDebug("Loadimage " + CacheFile + " -> Success !", 3) + Debug "Success loading " + CacheFile + " as nImage " + Str(nImage) + MyDebug("Success loading " + CacheFile + " as nImage " + Str(nImage), 3) ProcedureReturn nImage + Else + Debug "Failed loading " + CacheFile + " as nImage " + Str(nImage) + " -> not an image !" + MyDebug("Failed loading " + CacheFile + " as nImage " + Str(nImage) + " -> not an image !", 3) EndIf + Else + Debug "Failed loading " + CacheFile + " -> Size = 0" + MyDebug("Failed loading " + CacheFile + " -> Size = 0", 3) EndIf - MyDebug("Loadimage " + CacheFile + " -> Failed !", 3) ProcedureReturn -1 EndProcedure @@ -485,7 +507,9 @@ Module PBMap Protected Tile.position ; PBMap\MemCache\Images(*Tile\key)\Mutex = CreateMutex() ; LockMutex(PBMap\MemCache\Images(*Tile\key)\Mutex) +; LockMutex(LoadMutexTest) nImage = GetTileFromHDD(CacheFile) +; UnlockMutex(LoadMutexTest) If nImage = -1 nImage = GetTileFromWeb(*Tile\PBMapZoom, *Tile\PBMapTileX, *Tile\PBMapTileY, CacheFile) If nImage = -1 @@ -502,7 +526,7 @@ Module PBMap MyDebug("With the following key : " + *Tile\key, 3) ;Define this tile image nb *Tile\nImage = nImage -; UnlockMutex(PBMap\MemCache\Images(key)\Mutex) + ; UnlockMutex(PBMap\MemCache\Images(key)\Mutex) EndProcedure Procedure DrawTile(*Tile.Tile) @@ -570,6 +594,7 @@ Module PBMap MyDebug(" Creating get image thread nb " + Str(\GetImageThread), 2) Else MyDebug(" Can't add a new image to the map list", 2) + CallDebugger EndIf EndIf If IsImage(\nImage) @@ -774,7 +799,7 @@ Module PBMap VectorSourceColor(RGBA(0, 0, 0, 80)) MovePathCursor(50,50) DrawVectorText(Str(MapSize(PBMap\MemCache\Images()))) - MovePathCursor(50,60) + MovePathCursor(50,80) DrawVectorText(Str(ListSize(PBMap\TilesThreads()))) StopVectorDrawing() ;Redraw @@ -1191,9 +1216,8 @@ CompilerIf #PB_Compiler_IsMainFile EndIf CompilerEndIf ; IDE Options = PureBasic 5.50 (Windows - x64) -; ExecutableFormat = Console -; CursorPosition = 305 -; FirstLine = 278 +; CursorPosition = 450 +; FirstLine = 444 ; Folding = --------- ; EnableThread ; EnableXP From bb00a6b0395194698acb54c1a33aa2de843f52c6 Mon Sep 17 00:00:00 2001 From: djes Date: Fri, 26 Aug 2016 09:41:26 +0200 Subject: [PATCH 06/62] First version --- PBMap.pb | 255 ++++++++++++++++++++++++++++++++++++------------------- 1 file changed, 169 insertions(+), 86 deletions(-) diff --git a/PBMap.pb b/PBMap.pb index f6f955a..537af4d 100644 --- a/PBMap.pb +++ b/PBMap.pb @@ -26,6 +26,7 @@ UsePNGImageEncoder() DeclareModule PBMap ;-Show debug infos Global Verbose = #False + Global MyDebugLevel = 3 Global Proxy = #False Declare InitPBMap() Declare SetMapServer(ServerURL.s="http://tile.openstreetmap.org/",TileSize.l=256,ZoomMin.l=0,ZoomMax.l=18) @@ -73,6 +74,7 @@ Module PBMap PBMapTileY.i PBMapZoom.i nImage.i + key.s GetImageThread.i EndStructure @@ -95,13 +97,14 @@ Module PBMap EndStructure Structure TileThread + *Tile.Tile GetImageThread.i - *Tile.Tile EndStructure Structure ImgMemCach nImage.i - Usage.i + ;Location.Location + ;Mutex.i EndStructure Structure TileMemCach @@ -153,7 +156,9 @@ Module PBMap Options.option ; EndStructure + ;-Global variables Global PBMap.PBMap, Null.i + Global LoadMutexTest = CreateMutex() ;Shows an error msg and terminates the program Procedure Error(msg.s) @@ -161,10 +166,11 @@ Module PBMap End EndProcedure - ;Send debug infos to stdout - Procedure MyDebug(msg.s) - If Verbose + ;Send debug infos to stdout (allowing mixed debug infos with curl or other libs) + Procedure MyDebug(msg.s, DbgLevel = 0) + If Verbose And MyDebugLevel >= DbgLevel PrintN(msg) + ;Debug msg EndIf EndProcedure @@ -181,8 +187,8 @@ Module PBMap Procedure.i CurlReceiveHTTPToFile(URL$, DestFileName$, ProxyURL$="", ProxyPort$="", ProxyUser$="", ProxyPassword$="") Protected *Buffer, curl.i, Timeout.i, res.i Protected FileHandle.i - MyDebug("ReceiveHTTPToFile from " + URL$ + " " + ProxyURL$ + ProxyPort$ + ProxyUser$) - MyDebug(" to file : " + DestFileName$) + MyDebug("ReceiveHTTPToFile from " + URL$ + " " + ProxyURL$ + ProxyPort$ + ProxyUser$, 3) + MyDebug(" to file : " + DestFileName$, 3) FileHandle = CreateFile(#PB_Any, DestFileName$) If FileHandle And Len(URL$) curl = curl_easy_init() @@ -215,11 +221,11 @@ Module PBMap curl_easy_setopt(curl, #CURLOPT_WRITEFUNCTION, @ReceiveHTTPWriteToFileFunction()) res = curl_easy_perform(curl) If res <> #CURLE_OK - MyDebug("CURL problem") + MyDebug("CURL problem", 3) EndIf curl_easy_cleanup(curl) Else - MyDebug("Can't init CURL") + MyDebug("Can't init CURL", 3) EndIf CloseFile(FileHandle) ProcedureReturn FileSize(DestFileName$) @@ -242,7 +248,7 @@ Module PBMap PBMap\Dirty = #False PBMap\Drawing\Mutex = CreateMutex() PBMap\Drawing\Semaphore = CreateSemaphore() - PBMap\EditMarkerIndex = -1 ;<- You must initialize with No Marker selected + PBMap\EditMarkerIndex = -1 ;Initialised with "no marker selected" PBMap\Font = LoadFont(#PB_Any, "Arial", 20, #PB_Font_Bold) ;-Options PBMap\Options\WheelMouseRelative = #True @@ -286,20 +292,35 @@ Module PBMap EndProcedure Procedure Quit() - ;kill main drawing thread (nicer than KillThread(PBMap\MainDrawingThread)) + Protected TimeCounter.q + ;Ask main drawing thread to stop and wait for it for 2 seconds LockMutex(PBMap\Drawing\Mutex) PBMap\Drawing\End = #True UnlockMutex(PBMap\Drawing\Mutex) - ;wait for loading threads to finish nicely - ResetList(PBMap\TilesThreads()) - While NextElement(PBMap\TilesThreads()) - If IsThread(PBMap\TilesThreads()\GetImageThread) = 0 - FreeMemory(PBMap\TilesThreads()\Tile) - DeleteElement(PBMap\TilesThreads()) - ResetList( PBMap\TilesThreads()) + TimeCounter = ElapsedMilliseconds() + Repeat + Delay(100) + If ElapsedMilliseconds() - TimeCounter > 2000 + ;Should not occur + KillThread(PBMap\MainDrawingThread) EndIf - Wend - curl_global_cleanup() + Until Not IsThread(PBMap\MainDrawingThread) + ;Wait for loading threads to finish nicely. Passed 2 seconds, kills them. + TimeCounter = ElapsedMilliseconds() + Repeat + ResetList(PBMap\TilesThreads()) + While NextElement(PBMap\TilesThreads()) + If IsThread(PBMap\TilesThreads()\GetImageThread) = 0 + FreeMemory(PBMap\TilesThreads()\Tile) + DeleteElement(PBMap\TilesThreads()) + ElseIf ElapsedMilliseconds() - TimeCounter > 2000 + ;Should not occur + KillThread(PBMap\TilesThreads()\GetImageThread) + EndIf + Wend + Delay(10) + Until ListSize(PBMap\TilesThreads()) = 0 + curl_global_cleanup() EndProcedure Macro Min(a,b) @@ -416,28 +437,34 @@ Module PBMap EndIf EndProcedure - Procedure.i GetTileFromMem(Zoom.i, XTile.i, YTile.i) - Protected key.s = "Z" + RSet(Str(Zoom), 4, "0") + "X" + RSet(Str(XTile), 8, "0") + "Y" + RSet(Str(YTile), 8, "0") - MyDebug("Check if we have this image in memory") + Procedure.i GetTileFromMem(key.s) + MyDebug("Check if we have this image in memory", 3) If FindMapElement(PBMap\MemCache\Images(), key) - MyDebug("Key : " + key + " found !") + MyDebug("Key : " + key + " found !", 3) ProcedureReturn PBMap\MemCache\Images()\nImage Else - MyDebug("Key : " + key + " not found !") + MyDebug("Key : " + key + " not found !", 3) ProcedureReturn -1 EndIf EndProcedure Procedure.i GetTileFromHDD(CacheFile.s) - Protected nImage.i + Protected nImage.i + Debug "Loading image " + CacheFile + " ; Size : " + Str(FileSize(CacheFile)) If FileSize(CacheFile) > 0 nImage = LoadImage(#PB_Any, CacheFile) If IsImage(nImage) - MyDebug("Loadimage " + CacheFile + " -> Success !") + Debug "Success loading " + CacheFile + " as nImage " + Str(nImage) + MyDebug("Success loading " + CacheFile + " as nImage " + Str(nImage), 3) ProcedureReturn nImage + Else + Debug "Failed loading " + CacheFile + " as nImage " + Str(nImage) + " -> not an image !" + MyDebug("Failed loading " + CacheFile + " as nImage " + Str(nImage) + " -> not an image !", 3) EndIf + Else + Debug "Failed loading " + CacheFile + " -> Size = 0" + MyDebug("Failed loading " + CacheFile + " -> Size = 0", 3) EndIf - MyDebug("Loadimage " + CacheFile + " -> Failed !") ProcedureReturn -1 EndProcedure @@ -446,29 +473,29 @@ Module PBMap Protected nImage.i = -1 Protected FileHandle.i Protected TileURL.s = PBMap\ServerURL + Str(Zoom) + "/" + Str(XTile) + "/" + Str(YTile) + ".png" - MyDebug("Check if we have this image on Web") + MyDebug("Check if we have this image on Web", 3) If Proxy FileHandle = CurlReceiveHTTPToFile(TileURL, CacheFile, ProxyURL$, ProxyPort$, ProxyUser$, ProxyPassword$) If FileHandle nImage = GetTileFromHDD(CacheFile) Else - MyDebug("File " + TileURL + " not correctly received with Curl and proxy") + MyDebug("File " + TileURL + " not correctly received with Curl and proxy", 3) EndIf Else *Buffer = ReceiveHTTPMemory(TileURL) ;TODO to thread by using #PB_HTTP_Asynchronous If *Buffer nImage = CatchImage(#PB_Any, *Buffer, MemorySize(*Buffer)) If IsImage(nImage) - MyDebug("Load from web " + TileURL + " as Tile nb " + nImage) + MyDebug("Load from web " + TileURL + " as Tile nb " + nImage, 3) SaveImage(nImage, CacheFile, #PB_ImagePlugin_PNG) FreeMemory(*Buffer) Else - MyDebug("Can't catch image " + TileURL) + MyDebug("Can't catch image " + TileURL, 3) nImage = -1 ;ShowMemoryViewer(*Buffer, MemorySize(*Buffer)) EndIf Else - MyDebug("ReceiveHTTPMemory's buffer is empty") + MyDebug("ReceiveHTTPMemory's buffer is empty", 3) EndIf EndIf ProcedureReturn nImage @@ -476,31 +503,37 @@ Module PBMap Procedure GetImageThread(*Tile.Tile) Protected nImage.i = -1 - Protected key.s = "Z" + RSet(Str(*Tile\PBMapZoom), 4, "0") + "X" + RSet(Str(*Tile\PBMapTileX), 8, "0") + "Y" + RSet(Str(*Tile\PBMapTileY), 8, "0") Protected CacheFile.s = PBMap\HDDCachePath + "PBMap_" + Str(*Tile\PBMapZoom) + "_" + Str(*Tile\PBMapTileX) + "_" + Str(*Tile\PBMapTileY) + ".png" - ;Adding the image to the cache if possible - AddMapElement(PBMap\MemCache\Images(), key) + Protected Tile.position +; PBMap\MemCache\Images(*Tile\key)\Mutex = CreateMutex() +; LockMutex(PBMap\MemCache\Images(*Tile\key)\Mutex) +; LockMutex(LoadMutexTest) nImage = GetTileFromHDD(CacheFile) +; UnlockMutex(LoadMutexTest) If nImage = -1 nImage = GetTileFromWeb(*Tile\PBMapZoom, *Tile\PBMapTileX, *Tile\PBMapTileY, CacheFile) + If nImage = -1 + MyDebug("Error GetImageThread procedure, image not loaded - " + *Tile\key, 3) + *Tile\nImage = -1 + ProcedureReturn + EndIf EndIf - If nImage <> -1 - PBMap\MemCache\Images(key)\nImage = nImage - MyDebug("Image nb " + Str(nImage) + " successfully added to mem cache") - MyDebug("With the following key : " + key) - Else - MyDebug("Error GetImageThread procedure, image not loaded - " + key) - nImage = -1 - EndIf + PBMap\MemCache\Images(*Tile\key)\nImage = nImage +; Tile\x=*Tile\PBMapTileX +; Tile\y=*Tile\PBMapTiley +; XY2LatLon(@Tile,@PBMap\MemCache\Images(*Tile\key)\Location) + MyDebug("Image nb " + Str(nImage) + " successfully added to mem cache", 3) + MyDebug("With the following key : " + *Tile\key, 3) ;Define this tile image nb *Tile\nImage = nImage + ; UnlockMutex(PBMap\MemCache\Images(key)\Mutex) EndProcedure Procedure DrawTile(*Tile.Tile) Protected x = *Tile\Position\x Protected y = *Tile\Position\y - MyDebug(" Drawing tile nb " + " X : " + Str(*Tile\PBMapTileX) + " Y : " + Str(*Tile\PBMapTileX)) - MyDebug(" at coords " + Str(x) + "," + Str(y)) + MyDebug(" Drawing tile nb " + " X : " + Str(*Tile\PBMapTileX) + " Y : " + Str(*Tile\PBMapTileX), 2) + MyDebug(" at coords " + Str(x) + "," + Str(y), 2) MovePathCursor(x, y) DrawVectorImage(ImageID(*Tile\nImage)) EndProcedure @@ -509,8 +542,8 @@ Module PBMap Protected x = *Tile\Position\x Protected y = *Tile\Position\y Protected Text$ = "Loading" - MyDebug(" Drawing tile nb " + " X : " + Str(*Tile\PBMapTileX) + " Y : " + Str(*Tile\PBMapTileX)) - MyDebug(" at coords " + Str(x) + "," + Str(y)) + MyDebug(" Drawing tile nb " + " X : " + Str(*Tile\PBMapTileX) + " Y : " + Str(*Tile\PBMapTileX), 2) + MyDebug(" at coords " + Str(x) + "," + Str(y), 2) BeginVectorLayer() ;MovePathCursor(x, y) VectorSourceColor(RGBA(255, 255, 255, 128)) @@ -530,17 +563,18 @@ Module PBMap Protected ty = Int(*Drawing\Position\y) Protected nx = *Drawing\CenterX / PBMap\TileSize ;How many tiles around the point Protected ny = *Drawing\CenterY / PBMap\TileSize - MyDebug("Drawing tiles") + MyDebug("Drawing tiles", 2) For y = - ny - 1 To ny + 1 For x = - nx - 1 To nx + 1 ;Was quiting the loop if a move occured, giving maybe smoother movement ;If PBMap\Moving ; Break 2 ;EndIf + ;Store parameters in only one memory place, and give it to the thread if needed Protected *NewTile.Tile = AllocateMemory(SizeOf(Tile)) If *NewTile With *NewTile - ;Keep a track of tiles (especially to free memory) + ;Keep a track of tiles, and eventually associated threads, to free memory AddElement(PBMap\TilesThreads()) PBMap\TilesThreads()\Tile = *NewTile ;New tile parameters @@ -549,52 +583,99 @@ Module PBMap \PBMapTileX = tx + x \PBMapTileY = ty + y \PBMapZoom = PBMap\Zoom + \key = "Z" + RSet(Str(\PBMapZoom), 4, "0") + "X" + RSet(Str(\PBMapTileX), 8, "0") + "Y" + RSet(Str(\PBMapTileY), 8, "0") ;Unique identifier ;Check if the image exists - \nImage = GetTileFromMem(\PBMapZoom, \PBMapTileX, \PBMapTileY) - If \nImage = -1 - ;If not, load it in the background - \GetImageThread = CreateThread(@GetImageThread(), *NewTile) - PBMap\TilesThreads()\GetImageThread = \GetImageThread - MyDebug(" Creating get image thread nb " + Str(\GetImageThread)) + \nImage = GetTileFromMem(\key) + If \nImage = -1 + ;If not, load it in the background + If AddMapElement(PBMap\MemCache\Images(), \key) ;Add the image to the cache, once in this loop + \GetImageThread = CreateThread(@GetImageThread(), *NewTile) + PBMap\TilesThreads()\GetImageThread = \GetImageThread + MyDebug(" Creating get image thread nb " + Str(\GetImageThread), 2) + Else + MyDebug(" Can't add a new image to the map list", 2) + CallDebugger + EndIf EndIf If IsImage(\nImage) DrawTile(*NewTile) Else - MyDebug("Image missing") + MyDebug("Image missing", 2) DrawLoading(*NewTile) *Drawing\Dirty = #True ;Signals that this image is missing so we should have to redraw EndIf EndWith Else - MyDebug(" Error, can't create a new tile") + MyDebug(" Error, can't create a new tile", 2) Break 2 EndIf Next Next - ;Free tile memory when the loading thread has finished + ;Free tile memory ;TODO : get out this proc from drawtiles in a special "free ressources" task ForEach PBMap\TilesThreads() + ;Check if there's no more loading thread If IsThread(PBMap\TilesThreads()\GetImageThread) = 0 FreeMemory(PBMap\TilesThreads()\Tile) DeleteElement(PBMap\TilesThreads()) EndIf Next +; ;-**** Clean Mem Cache +; ;TODO in development, by now there's many cache problem as the loading thread could be perturbed +; ;GadgetWidth(PBMap\Gadget)/PBMap\TileSize +; Protected MaxNbTile.l +; If GadgetWidth(PBMap\Gadget)>GadgetHeight(PBMap\Gadget) +; MaxNbTile=GadgetWidth(PBMap\Gadget)/PBMap\TileSize +; Else +; MaxNbTile=GadgetHeight(PBMap\Gadget)/PBMap\TileSize +; EndIf +; Protected Scale.d= 40075*Cos(Radian(PBMap\TargetLocation\Latitude))/Pow(2,PBMap\Zoom) +; Protected Limit.d=Scale*(MaxNbTile)*1.5 +; Debug "Cache cleaning" +; ForEach PBMap\MemCache\Images() +; Protected Distance.d = HaversineInKM(@PBMap\MemCache\Images()\Location, @PBMap\TargetLocation) +; Debug "Limit:"+StrD(Limit)+" Distance:"+StrD(Distance) +; If Distance>Limit And IsImage(PBMap\MemCache\Images()\nImage) +; LockMutex(PBMap\MemCache\Images()\Mutex) +; Debug "delete" +; Debug PBMap\MemCache\Images() +; FreeImage(PBMap\MemCache\Images()\nImage) +; UnlockMutex(PBMap\MemCache\Images()\Mutex) +; FreeMutex(PBMap\MemCache\Images()\Mutex) +; DeleteMapElement(PBMap\MemCache\Images()) +; EndIf +; Next + EndProcedure - Procedure Pointer(x.i, y.i, color.l = 0) - VectorSourceColor(color) - MovePathCursor(x, y) - AddPathLine(-8, -16, #PB_Path_Relative) - AddPathCircle(8, 0, 8, 180, 0, #PB_Path_Relative) - AddPathLine(-8, 16, #PB_Path_Relative) - ;FillPath(#PB_Path_Preserve) - ;ClipPath(#PB_Path_Preserve) - AddPathCircle(0, -16, 5, 0, 360, #PB_Path_Relative) - VectorSourceColor(color) - FillPath(#PB_Path_Preserve):VectorSourceColor(color);RGBA(0, 0, 0, 255)) - StrokePath(1) + Procedure DrawPointer(*Drawing.DrawingParameters) + If PBMap\CallBackMainPointer > 0 + ; @Procedure(X.i, Y.i) to DrawPointer (you must use VectorDrawing lib) + CallFunctionFast(PBMap\CallBackMainPointer, *Drawing\CenterX, *Drawing\CenterY) + Else + VectorSourceColor(RGBA($FF, 0, 0, $FF)) + MovePathCursor(*Drawing\CenterX, *Drawing\CenterY) + AddPathLine(-8, -16, #PB_Path_Relative) + AddPathCircle(8, 0, 8, 180, 0, #PB_Path_Relative) + AddPathLine(-8, 16, #PB_Path_Relative) + ;FillPath(#PB_Path_Preserve) + ;ClipPath(#PB_Path_Preserve) + AddPathCircle(0, -16, 5, 0, 360, #PB_Path_Relative) + VectorSourceColor(RGBA($FF, 0, 0, $FF)) + FillPath(#PB_Path_Preserve):VectorSourceColor(RGBA($FF, 0, 0, $FF));RGBA(0, 0, 0, 255)) + StrokePath(1) + EndIf EndProcedure + Procedure DrawScale(*Drawing.DrawingParameters) + ;TODO Add Option and function to display Scale on Map + Protected Scale.d= 40075*Cos(Radian(PBMap\TargetLocation\Latitude))/Pow(2,PBMap\Zoom) + VectorFont(FontID(PBMap\Font), 30) + VectorSourceColor(RGBA(0, 0, 0, 80)) + MovePathCursor(50,50) + DrawVectorText(StrD(Scale)) + EndProcedure + Procedure TrackPointer(x.i, y.i,dist.l) Protected color.l color=RGBA(0, 0, 0, 255) @@ -677,7 +758,7 @@ Module PBMap If PBMap\Marker()\CallBackPointer > 0 CallFunctionFast(PBMap\Marker()\CallBackPointer, Pixel\X, Pixel\Y) Else - Pointer(Pixel\X, Pixel\Y, PBMap\Marker()\color) + DrawPointer(*Drawing) EndIf EndIf EndIf @@ -711,13 +792,16 @@ Module PBMap DrawTiles(@Drawing) DrawTrack(@Drawing) DrawMarker(@Drawing) - ; @Procedure(X.i, Y.i) to DrawPointer (you must use VectorDrawing lib) - If PBMap\CallBackMainPointer > 0 - CallFunctionFast(PBMap\CallBackMainPointer, Drawing\CenterX, Drawing\CenterY) - Else - Pointer(Drawing\CenterX, Drawing\CenterY, RGBA($FF, 0, 0, $FF)) - EndIf - StopVectorDrawing() + DrawPointer(@Drawing) + ;DrawScale(@Drawing) + ;- Display how many images in cache + VectorFont(FontID(PBMap\Font), 30) + VectorSourceColor(RGBA(0, 0, 0, 80)) + MovePathCursor(50,50) + DrawVectorText(Str(MapSize(PBMap\MemCache\Images()))) + MovePathCursor(50,80) + DrawVectorText(Str(ListSize(PBMap\TilesThreads()))) + StopVectorDrawing() ;Redraw ; If something was not correctly drawn, redraw after a while LockMutex(*SharedDrawing\Mutex) ;Be sure that we're not modifying variables while moving (seems not useful, but it is, especially to clean the semaphore) @@ -730,7 +814,7 @@ Module PBMap Repeat : Until TrySemaphore(*SharedDrawing\Semaphore) = 0 EndIf UnlockMutex(*SharedDrawing\Mutex) - Until Drawing\End + Until Drawing\End EndProcedure Procedure Refresh() @@ -949,7 +1033,7 @@ Module PBMap ;New move values PBMap\Position\x - MouseX PBMap\Position\y - MouseY - ;Fill parameters and signal the drawing thread + ;Fill parameters and send a signal to the drawing thread LockMutex(PBMap\Drawing\Mutex) ;PBMap tile position in tile.decimal PBMap\Drawing\Position\x = PBMap\Position\x / PBMap\TileSize @@ -957,9 +1041,9 @@ Module PBMap PBMap\Drawing\PassNb = 1 XY2LatLon(@PBMap\Drawing, @PBMap\TargetLocation) UnlockMutex(PBMap\Drawing\Mutex) + ;Start drawing + SignalSemaphore(PBMap\Drawing\Semaphore) EndIf - ;Start drawing - SignalSemaphore(PBMap\Drawing\Semaphore) ;If CallBackLocation send Location to function If PBMap\CallBackLocation > 0 CallFunctionFast(PBMap\CallBackLocation, @PBMap\TargetLocation) @@ -1131,10 +1215,9 @@ CompilerIf #PB_Compiler_IsMainFile PBMap::Quit() EndIf CompilerEndIf - ; IDE Options = PureBasic 5.42 LTS (Windows - x86) -; CursorPosition = 1120 -; FirstLine = 1077 +; CursorPosition = 478 +; FirstLine = 468 ; Folding = --------- ; EnableUnicode ; EnableThread From f2a3b06f7a6e97902eee3bdedfc433a64427ee71 Mon Sep 17 00:00:00 2001 From: djes Date: Fri, 26 Aug 2016 10:14:55 +0200 Subject: [PATCH 07/62] First changes --- PBMap.pb | 672 +++++++++++++++++++++++-------------------------------- 1 file changed, 281 insertions(+), 391 deletions(-) diff --git a/PBMap.pb b/PBMap.pb index 537af4d..e22d193 100644 --- a/PBMap.pb +++ b/PBMap.pb @@ -12,6 +12,8 @@ ; (see also Proxy Details) ;************************************************************** +#Red = 255 + CompilerIf #PB_Compiler_Thread = #False MessageRequester("Warning !!","You must enable ThreadSafe support in compiler options",#PB_MessageRequester_Ok ) End @@ -25,19 +27,18 @@ UsePNGImageEncoder() DeclareModule PBMap ;-Show debug infos - Global Verbose = #False - Global MyDebugLevel = 3 + #Red = 255 + Global Verbose = 1;#False + ;-Proxy ON/OFF Global Proxy = #False - Declare InitPBMap() - Declare SetMapServer(ServerURL.s="http://tile.openstreetmap.org/",TileSize.l=256,ZoomMin.l=0,ZoomMax.l=18) + Declare InitPBMap(window) Declare MapGadget(Gadget.i, X.i, Y.i, Width.i, Height.i) Declare Event(Event.l) Declare SetLocation(latitude.d, longitude.d, zoom = 15, mode.i = #PB_Absolute) - Declare DrawingThread(Null) + Declare DrawingThread() Declare SetZoom(Zoom.i, mode.i = #PB_Relative) Declare ZoomToArea() - Declare SetCallBackLocation(CallBackLocation.i) - Declare SetCallBackMainPointer(CallBackMainPointer.i) + Declare SetCallBackLocation(*CallBackLocation) Declare LoadGpxFile(file.s); Declare AddMarker(Latitude.d,Longitude.d,color.l=-1, CallBackPointer.i = -1) Declare Quit() @@ -74,7 +75,6 @@ Module PBMap PBMapTileY.i PBMapZoom.i nImage.i - key.s GetImageThread.i EndStructure @@ -97,14 +97,13 @@ Module PBMap EndStructure Structure TileThread - *Tile.Tile GetImageThread.i + *Tile.Tile EndStructure Structure ImgMemCach nImage.i - ;Location.Location - ;Mutex.i + Usage.i EndStructure Structure TileMemCach @@ -117,48 +116,44 @@ Module PBMap CallBackPointer.i ; @Procedure(X.i, Y.i) to DrawPointer (you must use VectorDrawing lib) EndStructure - Structure Option - WheelMouseRelative.i - EndStructure - ;-PBMap Structure Structure PBMap + Window.i ; Parent Window Gadget.i ; Canvas Gadget Id Font.i ; Font to uses when write on the map TargetLocation.Location ; Latitude and Longitude from focus point Drawing.DrawingParameters ; Drawing parameters based on focus point - ; + ; CallBackLocation.i ; @Procedure(latitude.d,lontitude.d) - CallBackMainPointer.i ; @Procedure(X.i, Y.i) to DrawPointer (you must use VectorDrawing lib) - ; + ; Position.PixelPosition ; Actual focus point coords in pixels (global) MoveStartingPoint.PixelPosition ; Start mouse position coords when dragging the map - ; + ; ServerURL.s ; Web URL ex: http://tile.openstreetmap.org/ ZoomMin.i ; Min Zoom supported by server ZoomMax.i ; Max Zoom supported by server Zoom.i ; Current zoom TileSize.i ; Tile size downloaded on the server ex : 256 - ; + ; HDDCachePath.S ; Path where to load and save tiles downloaded from server MemCache.TileMemCach ; Images in memory cache - ; - Moving.i ; + ; + Moving.i Dirty.i ; To signal that drawing need a refresh - ; - MainDrawingThread.i ; - List TilesThreads.TileThread() ; - ; + ; + MainDrawingThread.i + List TilesThreads.TileThread() + TileThreadMutex.i; ;Mutex to protect resources List track.Location() ; To display a GPX track List Marker.Marker() ; To diplay marker - EditMarkerIndex.l ; - ; - Options.option ; + EditMarkerIndex.l + + ImgLoading.i ;Image Loading Tile EndStructure - ;-Global variables + #PB_MAP_REDRAW = #PB_EventType_FirstCustomValue + 1 + Global PBMap.PBMap, Null.i - Global LoadMutexTest = CreateMutex() ;Shows an error msg and terminates the program Procedure Error(msg.s) @@ -166,15 +161,14 @@ Module PBMap End EndProcedure - ;Send debug infos to stdout (allowing mixed debug infos with curl or other libs) - Procedure MyDebug(msg.s, DbgLevel = 0) - If Verbose And MyDebugLevel >= DbgLevel + ;Send debug infos to stdout + Procedure MyDebug(msg.s) + If Verbose PrintN(msg) - ;Debug msg EndIf EndProcedure - ;- *** CURL specific + ;- *** CURL specific *** ; (program has To be compiled in console format for curl debug infos) IncludeFile "libcurl.pbi" ; https://github.com/deseven/pbsamples/tree/master/crossplatform/libcurl @@ -187,8 +181,8 @@ Module PBMap Procedure.i CurlReceiveHTTPToFile(URL$, DestFileName$, ProxyURL$="", ProxyPort$="", ProxyUser$="", ProxyPassword$="") Protected *Buffer, curl.i, Timeout.i, res.i Protected FileHandle.i - MyDebug("ReceiveHTTPToFile from " + URL$ + " " + ProxyURL$ + ProxyPort$ + ProxyUser$, 3) - MyDebug(" to file : " + DestFileName$, 3) + MyDebug("ReceiveHTTPToFile from " + URL$ + " " + ProxyURL$ + ProxyPort$ + ProxyUser$) + MyDebug(" to file : " + DestFileName$) FileHandle = CreateFile(#PB_Any, DestFileName$) If FileHandle And Len(URL$) curl = curl_easy_init() @@ -221,11 +215,11 @@ Module PBMap curl_easy_setopt(curl, #CURLOPT_WRITEFUNCTION, @ReceiveHTTPWriteToFileFunction()) res = curl_easy_perform(curl) If res <> #CURLE_OK - MyDebug("CURL problem", 3) + MyDebug("CURL problem") EndIf curl_easy_cleanup(curl) Else - MyDebug("Can't init CURL", 3) + MyDebug("Can't init CURL") EndIf CloseFile(FileHandle) ProcedureReturn FileSize(DestFileName$) @@ -234,7 +228,7 @@ Module PBMap EndProcedure ;- *** - Procedure InitPBMap() + Procedure InitPBMap(window) Protected Result.i If Verbose OpenConsole() @@ -246,81 +240,75 @@ Module PBMap PBMap\MoveStartingPoint\x = - 1 PBMap\TileSize = 256 PBMap\Dirty = #False + PBMap\TileThreadMutex = CreateMutex() PBMap\Drawing\Mutex = CreateMutex() PBMap\Drawing\Semaphore = CreateSemaphore() - PBMap\EditMarkerIndex = -1 ;Initialised with "no marker selected" + PBMap\EditMarkerIndex = -1 ;<- You must initialize with No Marker selected PBMap\Font = LoadFont(#PB_Any, "Arial", 20, #PB_Font_Bold) - ;-Options - PBMap\Options\WheelMouseRelative = #True - ;-Preferences + PBMap\Window = window + ;- Proxy details ;Use this to create and customize your preferences file for the first time - ; CreatePreferences(GetHomeDirectory() + "PBMap.prefs") - ; ;Or this to modify - ; ;OpenPreferences(GetHomeDirectory() + "PBMap.prefs") - ; ;Or this - ; ;RunProgram("notepad.exe", GetHomeDirectory() + "PBMap.prefs", GetHomeDirectory()) - ; PreferenceGroup("PROXY") - ; WritePreferenceInteger("Proxy", #True) - ; WritePreferenceString("ProxyURL", "myproxy.fr") - ; WritePreferenceString("ProxyPort", "myproxyport") - ; WritePreferenceString("ProxyUser", "myproxyname") - ; WritePreferenceString("ProxyPass", "myproxypass") ;TODO !Warning! !not encoded! - ; ClosePreferences() - OpenPreferences(GetHomeDirectory() + "PBMap.prefs") - PreferenceGroup("PROXY") - Proxy = ReadPreferenceInteger("Proxy", #False) + ; Result = CreatePreferences(GetHomeDirectory() + "PBMap.prefs") + ; If Proxy + ; PreferenceGroup("PROXY") + ; WritePreferenceString("ProxyURL", "myproxy.fr") + ; WritePreferenceString("ProxyPort", "myproxyport") + ; WritePreferenceString("ProxyUser", "myproxyname") + ; EndIf + ; If Result + ; ClosePreferences() + ; EndIf + Result = OpenPreferences(GetHomeDirectory() + "PBMap.prefs") If Proxy + PreferenceGroup("PROXY") Global ProxyURL$ = ReadPreferenceString("ProxyURL", "") ;InputRequester("ProxyServer", "Do you use a Proxy Server? Then enter the full url:", "") Global ProxyPort$ = ReadPreferenceString("ProxyPort", "") ;InputRequester("ProxyPort" , "Do you use a specific port? Then enter it", "") Global ProxyUser$ = ReadPreferenceString("ProxyUser", "") ;InputRequester("ProxyUser" , "Do you use a user name? Then enter it", "") - Global ProxyPassword$ = InputRequester("ProxyPass", "Do you use a password ? Then enter it", "") ;TODO + Global ProxyPassword$ = InputRequester("ProxyPass", "Do you use a password ? Then enter it", "") EndIf - ClosePreferences() - curl_global_init(#CURL_GLOBAL_WIN32) + If Result + ClosePreferences() + EndIf + curl_global_init(#CURL_GLOBAL_WIN32); ;- Main drawing thread launching - PBMap\MainDrawingThread = CreateThread(@DrawingThread(), @PBMap\Drawing) - If PBMap\MainDrawingThread = 0 - Error("MapGadget : can't create main drawing thread.") + + ;PBMap\MainDrawingThread = CreateThread(@DrawingThread(), @PBMap\Drawing) + ;If PBMap\MainDrawingThread = 0 + ; Error("MapGadget : can't create main drawing thread.") + Protected Text$ = "Loading" + PBmap\ImgLoading = CreateImage(#PB_Any,256,256) + If PBmap\ImgLoading + StartVectorDrawing(ImageVectorOutput(PBMap\Imgloading)) + BeginVectorLayer() + VectorSourceColor(RGBA(255, 255, 255, 128)) + AddPathBox(0, 0, 256, 256) + FillPath() + MovePathCursor(0, 0) + VectorFont(FontID(PBMap\Font), 256 / 20) + VectorSourceColor(RGBA(150, 150, 150, 255)) + MovePathCursor(0 + (256 - VectorTextWidth(Text$)) / 2, 0 + (256 - VectorTextHeight(Text$)) / 2) + DrawVectorText(Text$) + EndVectorLayer() + StopVectorDrawing() EndIf - EndProcedure - - Procedure SetMapServer(ServerURL.s="http://tile.openstreetmap.org/",TileSize.l=256,ZoomMin.l=0,ZoomMax.l=18) - PBMap\ServerURL = ServerURL - PBMap\ZoomMin = ZoomMin - PBMap\ZoomMax = ZoomMax - PBMap\TileSize = TileSize + EndProcedure Procedure Quit() - Protected TimeCounter.q - ;Ask main drawing thread to stop and wait for it for 2 seconds - LockMutex(PBMap\Drawing\Mutex) + ;kill main drawing thread (nicer than KillThread(PBMap\MainDrawingThread)) + ;LockMutex(PBMap\Drawing\Mutex) PBMap\Drawing\End = #True - UnlockMutex(PBMap\Drawing\Mutex) - TimeCounter = ElapsedMilliseconds() - Repeat - Delay(100) - If ElapsedMilliseconds() - TimeCounter > 2000 - ;Should not occur - KillThread(PBMap\MainDrawingThread) + ;UnlockMutex(PBMap\Drawing\Mutex) + ;wait for loading threads to finish nicely + ResetList(PBMap\TilesThreads()) + While NextElement(PBMap\TilesThreads()) + If IsThread(PBMap\TilesThreads()\GetImageThread) = 0 + FreeMemory(PBMap\TilesThreads()\Tile) + DeleteElement(PBMap\TilesThreads()) + ResetList( PBMap\TilesThreads()) EndIf - Until Not IsThread(PBMap\MainDrawingThread) - ;Wait for loading threads to finish nicely. Passed 2 seconds, kills them. - TimeCounter = ElapsedMilliseconds() - Repeat - ResetList(PBMap\TilesThreads()) - While NextElement(PBMap\TilesThreads()) - If IsThread(PBMap\TilesThreads()\GetImageThread) = 0 - FreeMemory(PBMap\TilesThreads()\Tile) - DeleteElement(PBMap\TilesThreads()) - ElseIf ElapsedMilliseconds() - TimeCounter > 2000 - ;Should not occur - KillThread(PBMap\TilesThreads()\GetImageThread) - EndIf - Wend - Delay(10) - Until ListSize(PBMap\TilesThreads()) = 0 - curl_global_cleanup() + Wend + curl_global_cleanup() EndProcedure Macro Min(a,b) @@ -339,10 +327,10 @@ Module PBMap Procedure MapGadget(Gadget.i, X.i, Y.i, Width.i, Height.i) If Gadget = #PB_Any - PBMap\Gadget = CanvasGadget(PBMap\Gadget, X, Y, Width, Height, #PB_Canvas_Keyboard) ;#PB_Canvas_Keyboard has to be set for mousewheel to work on windows + PBMap\Gadget = CanvasGadget(PBMap\Gadget, X, Y, Width, Height) Else PBMap\Gadget = Gadget - CanvasGadget(PBMap\Gadget, X, Y, Width, Height, #PB_Canvas_Keyboard) + CanvasGadget(PBMap\Gadget, X, Y, Width, Height) EndIf EndProcedure @@ -400,7 +388,7 @@ Module PBMap x2 = (PBMap\TargetLocation\Longitude+180)*(mapWidth/360) ; convert from degrees To radians latRad = PBMap\TargetLocation\Latitude*#PI/180; - ; get y value + ; get y value mercN = Log(Tan((#PI/4)+(latRad/2))) y2 = (mapHeight/2)-(mapWidth*mercN/(2*#PI)); *Pixel\x=GadgetWidth(PBMap\Gadget)/2 - (x2-x1) @@ -437,65 +425,62 @@ Module PBMap EndIf EndProcedure - Procedure.i GetTileFromMem(key.s) - MyDebug("Check if we have this image in memory", 3) - If FindMapElement(PBMap\MemCache\Images(), key) - MyDebug("Key : " + key + " found !", 3) - ProcedureReturn PBMap\MemCache\Images()\nImage - Else - MyDebug("Key : " + key + " not found !", 3) - ProcedureReturn -1 - EndIf - EndProcedure - Procedure.i GetTileFromHDD(CacheFile.s) - Protected nImage.i - Debug "Loading image " + CacheFile + " ; Size : " + Str(FileSize(CacheFile)) + Protected nImage.i If FileSize(CacheFile) > 0 nImage = LoadImage(#PB_Any, CacheFile) If IsImage(nImage) - Debug "Success loading " + CacheFile + " as nImage " + Str(nImage) - MyDebug("Success loading " + CacheFile + " as nImage " + Str(nImage), 3) + MyDebug("Loadimage " + CacheFile + " -> Success !") ProcedureReturn nImage - Else - Debug "Failed loading " + CacheFile + " as nImage " + Str(nImage) + " -> not an image !" - MyDebug("Failed loading " + CacheFile + " as nImage " + Str(nImage) + " -> not an image !", 3) EndIf - Else - Debug "Failed loading " + CacheFile + " -> Size = 0" - MyDebug("Failed loading " + CacheFile + " -> Size = 0", 3) EndIf + MyDebug("Loadimage " + CacheFile + " -> Failed !") ProcedureReturn -1 EndProcedure + Procedure.i GetTileFromMem(Zoom.i, XTile.i, YTile.i) + Protected key.s = "Z" + RSet(Str(Zoom), 4, "0") + "X" + RSet(Str(XTile), 8, "0") + "Y" + RSet(Str(YTile), 8, "0") + MyDebug("Check if we have this image in memory") + If FindMapElement(PBMap\MemCache\Images(), key) + MyDebug("Key : " + key + " found !") + ProcedureReturn PBMap\MemCache\Images()\nImage + Else + Protected CacheFile.s = PBMap\HDDCachePath + "PBMap_" + Str(Zoom) + "_" + Str(XTile) + "_" + Str(YTile) + ".png" + MyDebug("Key : " + key + " Try HDD!") + ProcedureReturn GetTileFromHDD(CacheFile.s) + EndIf + EndProcedure + Procedure.i GetTileFromWeb(Zoom.i, XTile.i, YTile.i, CacheFile.s) Protected *Buffer Protected nImage.i = -1 Protected FileHandle.i Protected TileURL.s = PBMap\ServerURL + Str(Zoom) + "/" + Str(XTile) + "/" + Str(YTile) + ".png" - MyDebug("Check if we have this image on Web", 3) + MyDebug("Check if we have this image on Web") If Proxy FileHandle = CurlReceiveHTTPToFile(TileURL, CacheFile, ProxyURL$, ProxyPort$, ProxyUser$, ProxyPassword$) If FileHandle nImage = GetTileFromHDD(CacheFile) Else - MyDebug("File " + TileURL + " not correctly received with Curl and proxy", 3) + MyDebug("File " + TileURL + " not correctly received with Curl and proxy") EndIf Else *Buffer = ReceiveHTTPMemory(TileURL) ;TODO to thread by using #PB_HTTP_Asynchronous If *Buffer nImage = CatchImage(#PB_Any, *Buffer, MemorySize(*Buffer)) If IsImage(nImage) - MyDebug("Load from web " + TileURL + " as Tile nb " + nImage, 3) + MyDebug("Load from web " + TileURL + " as Tile nb " + nImage) + Debug "url: " + TileURL + Debug "cache file: " + CacheFile SaveImage(nImage, CacheFile, #PB_ImagePlugin_PNG) FreeMemory(*Buffer) Else - MyDebug("Can't catch image " + TileURL, 3) + MyDebug("Can't catch image " + TileURL) nImage = -1 ;ShowMemoryViewer(*Buffer, MemorySize(*Buffer)) EndIf Else - MyDebug("ReceiveHTTPMemory's buffer is empty", 3) + Debug("ReceiveHTTPMemory's buffer is empty") EndIf EndIf ProcedureReturn nImage @@ -503,37 +488,41 @@ Module PBMap Procedure GetImageThread(*Tile.Tile) Protected nImage.i = -1 + LockMutex(PBMap\TileThreadMutex) + Protected key.s = "Z" + RSet(Str(*Tile\PBMapZoom), 4, "0") + "X" + RSet(Str(*Tile\PBMapTileX), 8, "0") + "Y" + RSet(Str(*Tile\PBMapTileY), 8, "0") Protected CacheFile.s = PBMap\HDDCachePath + "PBMap_" + Str(*Tile\PBMapZoom) + "_" + Str(*Tile\PBMapTileX) + "_" + Str(*Tile\PBMapTileY) + ".png" - Protected Tile.position -; PBMap\MemCache\Images(*Tile\key)\Mutex = CreateMutex() -; LockMutex(PBMap\MemCache\Images(*Tile\key)\Mutex) -; LockMutex(LoadMutexTest) - nImage = GetTileFromHDD(CacheFile) -; UnlockMutex(LoadMutexTest) - If nImage = -1 + ;Adding the image to the cache if possible + + AddMapElement(PBMap\MemCache\Images(), key) + PBMap\MemCache\Images()\nImage= PBMap\ImgLoading + + UnlockMutex(PBMap\TileThreadMutex) + ;nImage = GetTileFromHDD(CacheFile) + ;If nImage = -1 + ; LockMutex(PBMap\TileThreadMutex) nImage = GetTileFromWeb(*Tile\PBMapZoom, *Tile\PBMapTileX, *Tile\PBMapTileY, CacheFile) - If nImage = -1 - MyDebug("Error GetImageThread procedure, image not loaded - " + *Tile\key, 3) - *Tile\nImage = -1 - ProcedureReturn - EndIf + ;UnlockMutex(PBMap\TileThreadMutex) + ;EndIf + If nImage <> -1 + LockMutex(PBMap\TileThreadMutex) + PBMap\MemCache\Images(key)\nImage = nImage + UnlockMutex(PBMap\TileThreadMutex) + MyDebug("Image nb " + Str(nImage) + " successfully added to mem cache") + MyDebug("With the following key : " + key) + Else + MyDebug("Error GetImageThread procedure, image not loaded - " + key) + nImage = -1 EndIf - PBMap\MemCache\Images(*Tile\key)\nImage = nImage -; Tile\x=*Tile\PBMapTileX -; Tile\y=*Tile\PBMapTiley -; XY2LatLon(@Tile,@PBMap\MemCache\Images(*Tile\key)\Location) - MyDebug("Image nb " + Str(nImage) + " successfully added to mem cache", 3) - MyDebug("With the following key : " + *Tile\key, 3) ;Define this tile image nb *Tile\nImage = nImage - ; UnlockMutex(PBMap\MemCache\Images(key)\Mutex) + PostEvent(#PB_Event_Gadget,PBMap\window,PBmap\Gadget,#PB_MAP_REDRAW,*tile) EndProcedure Procedure DrawTile(*Tile.Tile) Protected x = *Tile\Position\x Protected y = *Tile\Position\y - MyDebug(" Drawing tile nb " + " X : " + Str(*Tile\PBMapTileX) + " Y : " + Str(*Tile\PBMapTileX), 2) - MyDebug(" at coords " + Str(x) + "," + Str(y), 2) + MyDebug(" Drawing tile nb " + " X : " + Str(*Tile\PBMapTileX) + " Y : " + Str(*Tile\PBMapTileX)) + MyDebug(" at coords " + Str(x) + "," + Str(y)) MovePathCursor(x, y) DrawVectorImage(ImageID(*Tile\nImage)) EndProcedure @@ -542,140 +531,93 @@ Module PBMap Protected x = *Tile\Position\x Protected y = *Tile\Position\y Protected Text$ = "Loading" - MyDebug(" Drawing tile nb " + " X : " + Str(*Tile\PBMapTileX) + " Y : " + Str(*Tile\PBMapTileX), 2) - MyDebug(" at coords " + Str(x) + "," + Str(y), 2) - BeginVectorLayer() - ;MovePathCursor(x, y) - VectorSourceColor(RGBA(255, 255, 255, 128)) - AddPathBox(x, y, PBMap\TileSize, PBMap\TileSize) - FillPath() - MovePathCursor(x, y) - VectorFont(FontID(PBMap\Font), PBMap\TileSize / 20) - VectorSourceColor(RGBA(150, 150, 150, 255)) - MovePathCursor(x + (PBMap\TileSize - VectorTextWidth(Text$)) / 2, y + (PBMap\TileSize - VectorTextHeight(Text$)) / 2) - DrawVectorText(Text$) - EndVectorLayer() + MyDebug(" Drawing tile nb " + " X : " + Str(*Tile\PBMapTileX) + " Y : " + Str(*Tile\PBMapTileX)) + MyDebug(" at coords " + Str(x) + "," + Str(y)) +; BeginVectorLayer() +; ;MovePathCursor(x, y) +; VectorSourceColor(RGBA(255, 255, 255, 128)) +; AddPathBox(x, y, PBMap\TileSize, PBMap\TileSize) +; FillPath() +; MovePathCursor(x, y) +; VectorFont(FontID(PBMap\Font), PBMap\TileSize / 20) +; VectorSourceColor(RGBA(150, 150, 150, 255)) +; MovePathCursor(x + (PBMap\TileSize - VectorTextWidth(Text$)) / 2, y + (PBMap\TileSize - VectorTextHeight(Text$)) / 2) +; DrawVectorText(Text$) +; EndVectorLayer() EndProcedure Procedure DrawTiles(*Drawing.DrawingParameters) + ;DisableDebugger Protected x.i, y.i Protected tx = Int(*Drawing\Position\x) ;Don't forget the Int() ! Protected ty = Int(*Drawing\Position\y) Protected nx = *Drawing\CenterX / PBMap\TileSize ;How many tiles around the point Protected ny = *Drawing\CenterY / PBMap\TileSize - MyDebug("Drawing tiles", 2) + Protected px,py,img + + MyDebug("Drawing tiles") For y = - ny - 1 To ny + 1 For x = - nx - 1 To nx + 1 - ;Was quiting the loop if a move occured, giving maybe smoother movement - ;If PBMap\Moving - ; Break 2 - ;EndIf - ;Store parameters in only one memory place, and give it to the thread if needed - Protected *NewTile.Tile = AllocateMemory(SizeOf(Tile)) - If *NewTile - With *NewTile - ;Keep a track of tiles, and eventually associated threads, to free memory + px = *Drawing\CenterX + x * PBMap\TileSize - *Drawing\DeltaX + py = *Drawing\CenterY + y * PBMap\TileSize - *Drawing\DeltaY + img = GetTileFromMem(PBMap\Zoom,tx+x,ty+y) + If img <> -1 + MovePathCursor(px,py) + DrawVectorImage(ImageID(img)) + Else + MovePathCursor(px,py) + DrawVectorImage(ImageID(PBMap\ImgLoading)) + + Protected *NewTile.Tile = AllocateMemory(SizeOf(Tile)) + If *NewTile + With *NewTile + ;Keep a track of tiles (especially to free memory) AddElement(PBMap\TilesThreads()) PBMap\TilesThreads()\Tile = *NewTile ;New tile parameters - \Position\x = *Drawing\CenterX + x * PBMap\TileSize - *Drawing\DeltaX - \Position\y = *Drawing\CenterY + y * PBMap\TileSize - *Drawing\DeltaY + \Position\x = px ;*Drawing\CenterX + x * PBMap\TileSize - *Drawing\DeltaX + \Position\y = py ;*Drawing\CenterY + y * PBMap\TileSize - *Drawing\DeltaY \PBMapTileX = tx + x \PBMapTileY = ty + y \PBMapZoom = PBMap\Zoom - \key = "Z" + RSet(Str(\PBMapZoom), 4, "0") + "X" + RSet(Str(\PBMapTileX), 8, "0") + "Y" + RSet(Str(\PBMapTileY), 8, "0") ;Unique identifier - ;Check if the image exists - \nImage = GetTileFromMem(\key) - If \nImage = -1 - ;If not, load it in the background - If AddMapElement(PBMap\MemCache\Images(), \key) ;Add the image to the cache, once in this loop - \GetImageThread = CreateThread(@GetImageThread(), *NewTile) - PBMap\TilesThreads()\GetImageThread = \GetImageThread - MyDebug(" Creating get image thread nb " + Str(\GetImageThread), 2) - Else - MyDebug(" Can't add a new image to the map list", 2) - CallDebugger - EndIf - EndIf - If IsImage(\nImage) - DrawTile(*NewTile) - Else - MyDebug("Image missing", 2) - DrawLoading(*NewTile) - *Drawing\Dirty = #True ;Signals that this image is missing so we should have to redraw - EndIf - EndWith - Else - MyDebug(" Error, can't create a new tile", 2) - Break 2 + \GetImageThread = CreateThread(@GetImageThread(), *NewTile) + PBMap\TilesThreads()\GetImageThread = \GetImageThread + myDebug(" Creating get image thread nb " + Str(\GetImageThread)) + ; DrawLoading(*NewTile) + ;*Drawing\Dirty = #True ;Signals that this image is missing so we should have to redraw + EndWith + Else + MyDebug(" Error, can't create a new tile") + Break 2 + EndIf EndIf Next Next - ;Free tile memory + ;Free tile memory when the loading thread has finished ;TODO : get out this proc from drawtiles in a special "free ressources" task ForEach PBMap\TilesThreads() - ;Check if there's no more loading thread If IsThread(PBMap\TilesThreads()\GetImageThread) = 0 FreeMemory(PBMap\TilesThreads()\Tile) DeleteElement(PBMap\TilesThreads()) EndIf Next -; ;-**** Clean Mem Cache -; ;TODO in development, by now there's many cache problem as the loading thread could be perturbed -; ;GadgetWidth(PBMap\Gadget)/PBMap\TileSize -; Protected MaxNbTile.l -; If GadgetWidth(PBMap\Gadget)>GadgetHeight(PBMap\Gadget) -; MaxNbTile=GadgetWidth(PBMap\Gadget)/PBMap\TileSize -; Else -; MaxNbTile=GadgetHeight(PBMap\Gadget)/PBMap\TileSize -; EndIf -; Protected Scale.d= 40075*Cos(Radian(PBMap\TargetLocation\Latitude))/Pow(2,PBMap\Zoom) -; Protected Limit.d=Scale*(MaxNbTile)*1.5 -; Debug "Cache cleaning" -; ForEach PBMap\MemCache\Images() -; Protected Distance.d = HaversineInKM(@PBMap\MemCache\Images()\Location, @PBMap\TargetLocation) -; Debug "Limit:"+StrD(Limit)+" Distance:"+StrD(Distance) -; If Distance>Limit And IsImage(PBMap\MemCache\Images()\nImage) -; LockMutex(PBMap\MemCache\Images()\Mutex) -; Debug "delete" -; Debug PBMap\MemCache\Images() -; FreeImage(PBMap\MemCache\Images()\nImage) -; UnlockMutex(PBMap\MemCache\Images()\Mutex) -; FreeMutex(PBMap\MemCache\Images()\Mutex) -; DeleteMapElement(PBMap\MemCache\Images()) -; EndIf -; Next - + ;EnableDebugger EndProcedure - Procedure DrawPointer(*Drawing.DrawingParameters) - If PBMap\CallBackMainPointer > 0 - ; @Procedure(X.i, Y.i) to DrawPointer (you must use VectorDrawing lib) - CallFunctionFast(PBMap\CallBackMainPointer, *Drawing\CenterX, *Drawing\CenterY) - Else - VectorSourceColor(RGBA($FF, 0, 0, $FF)) - MovePathCursor(*Drawing\CenterX, *Drawing\CenterY) - AddPathLine(-8, -16, #PB_Path_Relative) - AddPathCircle(8, 0, 8, 180, 0, #PB_Path_Relative) - AddPathLine(-8, 16, #PB_Path_Relative) - ;FillPath(#PB_Path_Preserve) - ;ClipPath(#PB_Path_Preserve) - AddPathCircle(0, -16, 5, 0, 360, #PB_Path_Relative) - VectorSourceColor(RGBA($FF, 0, 0, $FF)) - FillPath(#PB_Path_Preserve):VectorSourceColor(RGBA($FF, 0, 0, $FF));RGBA(0, 0, 0, 255)) - StrokePath(1) - EndIf + Procedure Pointer(x.i, y.i, color.l = #Red) + color=RGBA(255, 0, 0, 255) + VectorSourceColor(color) + MovePathCursor(x, y) + AddPathLine(-8,-16,#PB_Path_Relative) + AddPathCircle(8,0,8,180,0,#PB_Path_Relative) + AddPathLine(-8,16,#PB_Path_Relative) + ;FillPath(#PB_Path_Preserve) + ;ClipPath(#PB_Path_Preserve) + AddPathCircle(0,-16,5,0,360,#PB_Path_Relative) + VectorSourceColor(color) + FillPath(#PB_Path_Preserve):VectorSourceColor(RGBA(0, 0, 0, 255)):StrokePath(1) EndProcedure - Procedure DrawScale(*Drawing.DrawingParameters) - ;TODO Add Option and function to display Scale on Map - Protected Scale.d= 40075*Cos(Radian(PBMap\TargetLocation\Latitude))/Pow(2,PBMap\Zoom) - VectorFont(FontID(PBMap\Font), 30) - VectorSourceColor(RGBA(0, 0, 0, 80)) - MovePathCursor(50,50) - DrawVectorText(StrD(Scale)) - EndProcedure - Procedure TrackPointer(x.i, y.i,dist.l) Protected color.l color=RGBA(0, 0, 0, 255) @@ -701,7 +643,7 @@ Module PBMap Protected km.f, memKm.i If ListSize(PBMap\track())>0 ;Trace Track - LockMutex(PBMap\Drawing\Mutex) + ; LockMutex(PBMap\Drawing\Mutex) ForEach PBMap\track() If *Drawing\TargetLocation\Latitude<>0 And *Drawing\TargetLocation\Longitude<>0 GetPixelCoordFromLocation(@PBMap\track(),@Pixel) @@ -716,7 +658,7 @@ Module PBMap StrokePath(10, #PB_Path_RoundEnd|#PB_Path_RoundCorner) ;Draw Distance ForEach PBMap\track() - ;Distance test + ;-Test Distance If ListIndex(PBMap\track())=0 Location\Latitude=PBMap\track()\Latitude Location\Longitude=PBMap\track()\Longitude @@ -735,7 +677,7 @@ Module PBMap EndIf EndIf Next - UnlockMutex(PBMap\Drawing\Mutex) + ; UnlockMutex(PBMap\Drawing\Mutex) EndIf EndProcedure @@ -758,7 +700,7 @@ Module PBMap If PBMap\Marker()\CallBackPointer > 0 CallFunctionFast(PBMap\Marker()\CallBackPointer, Pixel\X, Pixel\Y) Else - DrawPointer(*Drawing) + Pointer(Pixel\X, Pixel\Y, PBMap\Marker()\color) EndIf EndIf EndIf @@ -767,58 +709,51 @@ Module PBMap ;-*** Main drawing thread ; always running, waiting for a semaphore to start refreshing - Procedure DrawingThread(*SharedDrawing.DrawingParameters) - Protected Drawing.DrawingParameters + Procedure DrawingThread();*SharedDrawing.DrawingParameters) + Protected *Drawing.DrawingParameters = @PBMap\Drawing Protected Px.d, Py.d - Repeat - WaitSemaphore(*SharedDrawing\Semaphore) - MyDebug("--------- Main drawing thread ------------") + ;Repeat + ; WaitSemaphore(*SharedDrawing\Semaphore) + ; MyDebug("--------- Main drawing thread ------------") ;Creates a copy of the structure to work with to avoid multiple mutex locks - LockMutex(*SharedDrawing\Mutex) - CopyStructure(*SharedDrawing, @Drawing, DrawingParameters) - UnlockMutex(*SharedDrawing\Mutex) + ; LockMutex(*SharedDrawing\Mutex) + ; CopyStructure(*SharedDrawing, @Drawing, DrawingParameters) + ; UnlockMutex(*SharedDrawing\Mutex) ;Precalc some values - Drawing\CenterX = GadgetWidth(PBMap\Gadget) / 2 - Drawing\CenterY = GadgetHeight(PBMap\Gadget) / 2 + *Drawing\CenterX = GadgetWidth(PBMap\Gadget) / 2 + *Drawing\CenterY = GadgetHeight(PBMap\Gadget) / 2 ;Pixel shift, aka position in the tile - Px = Drawing\Position\x : Py = Drawing\Position\y - Drawing\DeltaX = Px * PBMap\TileSize - (Int(Px) * PBMap\TileSize) ;Don't forget the Int() ! - Drawing\DeltaY = Py * PBMap\TileSize - (Int(Py) * PBMap\TileSize) - Drawing\TargetLocation\Latitude = PBMap\TargetLocation\Latitude - Drawing\TargetLocation\Longitude = PBMap\TargetLocation\Longitude - Drawing\Dirty = #False + Px = *Drawing\Position\x : Py = *Drawing\Position\y + *Drawing\DeltaX = Px * PBMap\TileSize - (Int(Px) * PBMap\TileSize) ;Don't forget the Int() ! + *Drawing\DeltaY = Py * PBMap\TileSize - (Int(Py) * PBMap\TileSize) + *Drawing\TargetLocation\Latitude = PBMap\TargetLocation\Latitude + *Drawing\TargetLocation\Longitude = PBMap\TargetLocation\Longitude + ;Drawing\Dirty = #False ;Main drawing stuff StartVectorDrawing(CanvasVectorOutput(PBMap\Gadget)) - DrawTiles(@Drawing) - DrawTrack(@Drawing) - DrawMarker(@Drawing) - DrawPointer(@Drawing) - ;DrawScale(@Drawing) - ;- Display how many images in cache - VectorFont(FontID(PBMap\Font), 30) - VectorSourceColor(RGBA(0, 0, 0, 80)) - MovePathCursor(50,50) - DrawVectorText(Str(MapSize(PBMap\MemCache\Images()))) - MovePathCursor(50,80) - DrawVectorText(Str(ListSize(PBMap\TilesThreads()))) - StopVectorDrawing() + DrawTiles(*Drawing) + ;DrawTrack(*Drawing) + ;DrawMarker(*Drawing) + ;Pointer(*Drawing\CenterX, *Drawing\CenterY, #Red) + StopVectorDrawing() ;Redraw ; If something was not correctly drawn, redraw after a while - LockMutex(*SharedDrawing\Mutex) ;Be sure that we're not modifying variables while moving (seems not useful, but it is, especially to clean the semaphore) - If Drawing\Dirty - MyDebug("Something was dirty ! We try again to redraw") - Drawing\PassNb + 1 - SignalSemaphore(*SharedDrawing\Semaphore) - Else - ;Clean the semaphore to avoid multiple unuseful redraws - Repeat : Until TrySemaphore(*SharedDrawing\Semaphore) = 0 - EndIf - UnlockMutex(*SharedDrawing\Mutex) - Until Drawing\End + ; LockMutex(*SharedDrawing\Mutex) ;Be sure that we're not modifying variables while moving (seems not useful, but it is, especially to clean the semaphore) + ; If Drawing\Dirty + ; MyDebug("Something was dirty ! We try again to redraw") + ; Drawing\PassNb + 1 + ; SignalSemaphore(*SharedDrawing\Semaphore) + ; Else + ; ;Clean the semaphore to avoid multiple unuseful redraws + ; Repeat : Until TrySemaphore(*SharedDrawing\Semaphore) = 0 + ; EndIf + ;UnlockMutex(*SharedDrawing\Mutex) + ;Until Drawing\End EndProcedure Procedure Refresh() - SignalSemaphore(PBMap\Drawing\Semaphore) + DrawingThread() + ;SignalSemaphore(PBMap\Drawing\Semaphore) EndProcedure Procedure SetLocation(latitude.d, longitude.d, zoom = 15, Mode.i = #PB_Absolute) @@ -840,7 +775,8 @@ Module PBMap PBMap\Position\y = PBMap\Drawing\Position\y * PBMap\TileSize PBMap\Drawing\PassNb = 1 ;Start drawing - SignalSemaphore(PBMap\Drawing\Semaphore) + ;SignalSemaphore(PBMap\Drawing\Semaphore) + DrawingThread() ;*** If PBMap\CallBackLocation > 0 CallFunctionFast(PBMap\CallBackLocation, @PBMap\TargetLocation) @@ -903,88 +839,49 @@ Module PBMap PBMap\Position\X = PBMap\Drawing\Position\x * PBMap\TileSize PBMap\Position\Y = PBMap\Drawing\Position\y * PBMap\TileSize ;*** Creates a drawing thread and fill parameters - PBMap\Drawing\PassNb = 1 + ;PBMap\Drawing\PassNb = 1 ;Start drawing - SignalSemaphore(PBMap\Drawing\Semaphore) + ;SignalSemaphore(PBMap\Drawing\Semaphore) + DrawingThread() ;*** If PBMap\CallBackLocation > 0 CallFunctionFast(PBMap\CallBackLocation, @PBMap\TargetLocation) EndIf - EndProcedure - - ;Zoom on x, y position relative to the canvas gadget - Procedure SetZoomOnPosition(x, y, zoom) - Protected MouseX.d, MouseY.d - Protected OldPx.d, OldPy.d, OldMx.d, OldMy.d - ;Fast and dirty code - OldPx = PBMap\Position\x : OldPy = PBMap\Position\y - OldMx = OldPx + GadgetWidth(PBMap\Gadget) / 2 - x - OldMy = OldPy + GadgetHeight(PBMap\Gadget) / 2 - y - PBMap\Zoom = PBMap\Zoom + zoom - If PBMap\Zoom > PBMap\ZoomMax : PBMap\Zoom = PBMap\ZoomMax : EndIf - If PBMap\Zoom < PBMap\ZoomMin : PBMap\Zoom = PBMap\ZoomMin : EndIf - ;Centered Zoom - LockMutex(PBMap\Drawing\Mutex) - LatLon2XY(@PBMap\TargetLocation, @PBMap\Drawing) - ;Convert X, Y in tile.decimal into real pixels - PBMap\Position\x = PBMap\Drawing\Position\x * PBMap\TileSize - PBMap\Position\y = PBMap\Drawing\Position\y * PBMap\TileSize - MouseX = PBMap\Position\x + GadgetWidth(PBMap\Gadget) / 2 - x - MouseY = PBMap\Position\y + GadgetHeight(PBMap\Gadget) / 2 - y - ;Cross-multiply to get the new center - PBMap\Position\x = (OldPx * MouseX) / OldMx - PBMap\Position\y = (OldPy * MouseY) / OldMy - ;PBMap tile position in tile.decimal - PBMap\Drawing\Position\x = PBMap\Position\x / PBMap\TileSize - PBMap\Drawing\Position\y = PBMap\Position\y / PBMap\TileSize - PBMap\Drawing\PassNb = 1 - XY2LatLon(@PBMap\Drawing, @PBMap\TargetLocation) - UnlockMutex(PBMap\Drawing\Mutex) - ;Start drawing - SignalSemaphore(PBMap\Drawing\Semaphore) - ;If CallBackLocation send Location to function - If PBMap\CallBackLocation > 0 - CallFunctionFast(PBMap\CallBackLocation, @PBMap\TargetLocation) - EndIf - EndProcedure + EndProcedure Procedure SetCallBackLocation(CallBackLocation.i) PBMap\CallBackLocation = CallBackLocation EndProcedure - Procedure SetCallBackMainPointer(CallBackMainPointer.i) - PBMap\CallBackMainPointer = CallBackMainPointer - EndProcedure - Procedure.d GetLatitude() Protected Value.d - LockMutex(PBMap\Drawing\Mutex) + ; LockMutex(PBMap\Drawing\Mutex) Value = PBMap\TargetLocation\Latitude - UnlockMutex(PBMap\Drawing\Mutex) + ; UnlockMutex(PBMap\Drawing\Mutex) ProcedureReturn Value EndProcedure Procedure.d GetLongitude() Protected Value.d - LockMutex(PBMap\Drawing\Mutex) + ; LockMutex(PBMap\Drawing\Mutex) Value = PBMap\TargetLocation\Longitude - UnlockMutex(PBMap\Drawing\Mutex) + ; UnlockMutex(PBMap\Drawing\Mutex) ProcedureReturn Value EndProcedure Procedure.i GetZoom() Protected Value.d - LockMutex(PBMap\Drawing\Mutex) + ; LockMutex(PBMap\Drawing\Mutex) Value = PBMap\Zoom - UnlockMutex(PBMap\Drawing\Mutex) + ; UnlockMutex(PBMap\Drawing\Mutex) ProcedureReturn Value EndProcedure - Procedure Event(Event.l) Protected Gadget.i Protected MouseX.i, MouseY.i Protected Marker.Position + Protected *Drawing.DrawingParameters If IsGadget(PBMap\Gadget) And GadgetType(PBMap\Gadget) = #PB_GadgetType_Canvas Select Event Case #PB_Event_Gadget ;{ @@ -992,14 +889,6 @@ Module PBMap Select Gadget Case PBMap\Gadget Select EventType() - Case #PB_EventType_MouseWheel - If PBMap\Options\WheelMouseRelative - ;Relative zoom (centered on the mouse) - SetZoomOnPosition(GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseX), GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseY), GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_WheelDelta)) - Else - ;Absolute zoom (centered on the center of the map) - SetZoom(GetGadgetAttribute(PBMap\Gadget,#PB_Canvas_WheelDelta), #PB_Relative) - EndIf Case #PB_EventType_LeftButtonDown ;Check if we select a marker MouseX = PBMap\Position\x - GadgetWidth(PBMap\Gadget) / 2 + GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseX) @@ -1017,12 +906,11 @@ Module PBMap PBMap\MoveStartingPoint\x = GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseX) PBMap\MoveStartingPoint\y = GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseY) Case #PB_EventType_MouseMove - ;If a move has been initiated by a left click If PBMap\MoveStartingPoint\x <> - 1 MouseX = GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseX) - PBMap\MoveStartingPoint\x MouseY = GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseY) - PBMap\MoveStartingPoint\y PBMap\Moving = #True - ;If it's marker move + ;move Marker If PBMap\EditMarkerIndex > -1 SelectElement(PBMap\Marker(), PBMap\EditMarkerIndex) LatLon2XY(@PBMap\Marker()\Location, @Marker) @@ -1033,39 +921,43 @@ Module PBMap ;New move values PBMap\Position\x - MouseX PBMap\Position\y - MouseY - ;Fill parameters and send a signal to the drawing thread - LockMutex(PBMap\Drawing\Mutex) + ;-*** Fill parameters and signal the drawing thread + ; LockMutex(PBMap\Drawing\Mutex) ;PBMap tile position in tile.decimal PBMap\Drawing\Position\x = PBMap\Position\x / PBMap\TileSize PBMap\Drawing\Position\y = PBMap\Position\y / PBMap\TileSize PBMap\Drawing\PassNb = 1 XY2LatLon(@PBMap\Drawing, @PBMap\TargetLocation) - UnlockMutex(PBMap\Drawing\Mutex) - ;Start drawing - SignalSemaphore(PBMap\Drawing\Semaphore) + ;If CallBackLocation send Location to function + If PBMap\CallBackLocation > 0 + CallFunctionFast(PBMap\CallBackLocation, @PBMap\TargetLocation) + EndIf + ; UnlockMutex(PBMap\Drawing\Mutex) EndIf - ;If CallBackLocation send Location to function - If PBMap\CallBackLocation > 0 - CallFunctionFast(PBMap\CallBackLocation, @PBMap\TargetLocation) - EndIf + ;Start drawing + ;SignalSemaphore(PBMap\Drawing\Semaphore) + DrawingThread() + ;- *** PBMap\MoveStartingPoint\x = GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseX) PBMap\MoveStartingPoint\y = GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseY) + ; DrawingThread() EndIf Case #PB_EventType_LeftButtonUp PBMap\Moving = #False PBMap\MoveStartingPoint\x = - 1 - ;Stop marker move If PBMap\EditMarkerIndex > -1 PBMap\EditMarkerIndex = -1 - Else - ;Stop map move - LockMutex(PBMap\Drawing\Mutex) + Else ;Move Map + ;LockMutex(PBMap\Drawing\Mutex) PBMap\Drawing\Position\x = PBMap\Position\x / PBMap\TileSize PBMap\Drawing\Position\y = PBMap\Position\y / PBMap\TileSize MyDebug("PBMap\Drawing\Position\x " + Str(PBMap\Drawing\Position\x) + " ; PBMap\Drawing\Position\y " + Str(PBMap\Drawing\Position\y) ) XY2LatLon(@PBMap\Drawing, @PBMap\TargetLocation) - UnlockMutex(PBMap\Drawing\Mutex) + ; UnlockMutex(PBMap\Drawing\Mutex) + DrawingThread() EndIf + Case #PB_MAP_REDRAW + DrawingThread() EndSelect EndSelect EndSelect @@ -1125,11 +1017,6 @@ CompilerIf #PB_Compiler_IsMainFile FillPath(#PB_Path_Preserve):VectorSourceColor(RGBA(0, 0, 0, 255)):StrokePath(1) EndProcedure - Procedure MainPointer(x.i, y.i) - VectorSourceColor(RGBA(255, 255,255, 255)):AddPathCircle(x, y,32):StrokePath(1) - VectorSourceColor(RGBA(0,0,0, 255)):AddPathCircle(x, y,29):StrokePath(2) - EndProcedure - Procedure ResizeAll() ResizeGadget(#Map,10,10,WindowWidth(#Window_0)-198,WindowHeight(#Window_0)-59) ResizeGadget(#Text_1,WindowWidth(#Window_0)-170,#PB_Ignore,#PB_Ignore,#PB_Ignore) @@ -1150,11 +1037,12 @@ CompilerIf #PB_Compiler_IsMainFile EndProcedure ;- MAIN TEST + OpenConsole() If OpenWindow(#Window_0, 260, 225, 700, 571, "PBMap", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered | #PB_Window_SizeGadget) - LoadFont(0, "Wingdings", 12) + LoadFont(0, "Arial", 12) LoadFont(1, "Arial", 12, #PB_Font_Bold) - + TextGadget(#Text_1, 530, 50, 60, 15, "Movements") ButtonGadget(#Gdt_Left, 550, 100, 30, 30, Chr($E7)) : SetGadgetFont(#Gdt_Left, FontID(0)) ButtonGadget(#Gdt_Right, 610, 100, 30, 30, Chr($E8)) : SetGadgetFont(#Gdt_Right, FontID(0)) @@ -1174,12 +1062,11 @@ CompilerIf #PB_Compiler_IsMainFile Define pfValue.d ;Our main gadget - PBMap::InitPBMap() + PBMap::InitPBMap(#Window_0) PBMap::MapGadget(#Map, 10, 10, 512, 512) PBMap::SetCallBackLocation(@UpdateLocation()) - PBMap::SetCallBackMainPointer(@MainPointer()) ;To change the Main Pointer - PBMap::SetLocation(49.04599, 2.03347, 17) - PBMap::AddMarker(49.0446828398, 2.0349812508, -1, @MyPointer()) + PBMap::SetLocation(-36.8485,174.7633,10) + ;PBMap::AddMarker(49.0446828398, 2.0349812508, -1, @MyPointer()) Repeat Event = WaitWindowEvent() @@ -1202,10 +1089,10 @@ CompilerIf #PB_Compiler_IsMainFile Case #Button_5 PBMap::SetZoom( - 1) Case #Gdt_LoadGpx - PBMap::LoadGpxFile(OpenFileRequester("Choose a file to load", "", "*.gpx", 0)) - PBMap::ZoomToArea() ; <-To center the view, and zoom on the tracks + PBMap::LoadGpxFile(OpenFileRequester("Choisissez un fichier � charger", "", "*.gpx", 0)) + PBMap::ZoomToArea() ; <-To center the view, and to viex all the track Case #Gdt_AddMarker - PBMap:: AddMarker(ValD(GetGadgetText(#String_0)), ValD(GetGadgetText(#String_1)), RGBA(Random(255), Random(255), Random(255),255)) + PBMap:: AddMarker(ValD(GetGadgetText(#String_0)),ValD(GetGadgetText(#String_1)),RGBA(Random(255),Random(255),Random(255),255)) EndSelect Case #PB_Event_SizeWindow ResizeAll() @@ -1214,11 +1101,14 @@ CompilerIf #PB_Compiler_IsMainFile PBMap::Quit() EndIf + + CloseConsole() + CompilerEndIf ; IDE Options = PureBasic 5.42 LTS (Windows - x86) -; CursorPosition = 478 -; FirstLine = 468 -; Folding = --------- +; CursorPosition = 1073 +; FirstLine = 1062 +; Folding = -------- ; EnableUnicode ; EnableThread ; EnableXP \ No newline at end of file From bc94b653b6b6f5ddbb583ab191defb0d31fa736f Mon Sep 17 00:00:00 2001 From: djes Date: Fri, 26 Aug 2016 12:06:18 +0200 Subject: [PATCH 08/62] Latest idle and djes code mixing --- PBMap.pb | 459 ++++++++++++++++++------------------------------------- 1 file changed, 149 insertions(+), 310 deletions(-) diff --git a/PBMap.pb b/PBMap.pb index 95d1dab..403fbbd 100644 --- a/PBMap.pb +++ b/PBMap.pb @@ -77,6 +77,7 @@ Module PBMap PBMapZoom.i nImage.i key.s + CacheFile.s GetImageThread.i EndStructure @@ -119,6 +120,10 @@ Module PBMap CallBackPointer.i ; @Procedure(X.i, Y.i) to DrawPointer (you must use VectorDrawing lib) EndStructure + Structure Option + WheelMouseRelative.i + EndStructure + ;-PBMap Structure Structure PBMap Window.i ; Parent Window @@ -128,6 +133,7 @@ Module PBMap Drawing.DrawingParameters ; Drawing parameters based on focus point ; CallBackLocation.i ; @Procedure(latitude.d,lontitude.d) + CallBackMainPointer.i ; @Procedure(X.i, Y.i) to DrawPointer (you must use VectorDrawing lib) ; Position.PixelPosition ; Actual focus point coords in pixels (global) MoveStartingPoint.PixelPosition ; Start mouse position coords when dragging the map @@ -151,7 +157,9 @@ Module PBMap List Marker.Marker() ; To diplay marker EditMarkerIndex.l - ImgLoading.i ;Image Loading Tile + ImgLoading.i ;Image Loading Tile + + Options.option ; EndStructure #PB_MAP_REDRAW = #PB_EventType_FirstCustomValue + 1 @@ -251,84 +259,69 @@ Module PBMap PBMap\EditMarkerIndex = -1 ;Initialised with "no marker selected" PBMap\Font = LoadFont(#PB_Any, "Arial", 20, #PB_Font_Bold) PBMap\Window = window - ;- Proxy details + PBMap\Options\WheelMouseRelative = #True + ;-Options + ;-Preferences ;Use this to create and customize your preferences file for the first time - ; Result = CreatePreferences(GetHomeDirectory() + "PBMap.prefs") - ; If Proxy - ; PreferenceGroup("PROXY") - ; WritePreferenceString("ProxyURL", "myproxy.fr") - ; WritePreferenceString("ProxyPort", "myproxyport") - ; WritePreferenceString("ProxyUser", "myproxyname") - ; EndIf - ; If Result - ; ClosePreferences() - ; EndIf - Result = OpenPreferences(GetHomeDirectory() + "PBMap.prefs") + ; CreatePreferences(GetHomeDirectory() + "PBMap.prefs") + ; ;Or this to modify + ; ;OpenPreferences(GetHomeDirectory() + "PBMap.prefs") + ; ;Or this + ; ;RunProgram("notepad.exe", GetHomeDirectory() + "PBMap.prefs", GetHomeDirectory()) + ; PreferenceGroup("PROXY") + ; WritePreferenceInteger("Proxy", #True) + ; WritePreferenceString("ProxyURL", "myproxy.fr") + ; WritePreferenceString("ProxyPort", "myproxyport") + ; WritePreferenceString("ProxyUser", "myproxyname") + ; WritePreferenceString("ProxyPass", "myproxypass") ;TODO !Warning! !not encoded! + ; ClosePreferences() + OpenPreferences(GetHomeDirectory() + "PBMap.prefs") + PreferenceGroup("PROXY") + Proxy = ReadPreferenceInteger("Proxy", #False) If Proxy - PreferenceGroup("PROXY") Global ProxyURL$ = ReadPreferenceString("ProxyURL", "") ;InputRequester("ProxyServer", "Do you use a Proxy Server? Then enter the full url:", "") Global ProxyPort$ = ReadPreferenceString("ProxyPort", "") ;InputRequester("ProxyPort" , "Do you use a specific port? Then enter it", "") Global ProxyUser$ = ReadPreferenceString("ProxyUser", "") ;InputRequester("ProxyUser" , "Do you use a user name? Then enter it", "") - Global ProxyPassword$ = InputRequester("ProxyPass", "Do you use a password ? Then enter it", "") - EndIf - If Result - ClosePreferences() + Global ProxyPassword$ = InputRequester("ProxyPass", "Do you use a password ? Then enter it", "") ;TODO EndIf + ClosePreferences() curl_global_init(#CURL_GLOBAL_WIN32); ;- Main drawing thread launching - ;PBMap\MainDrawingThread = CreateThread(@DrawingThread(), @PBMap\Drawing) ;If PBMap\MainDrawingThread = 0 ; Error("MapGadget : can't create main drawing thread.") Protected Text$ = "Loading" PBmap\ImgLoading = CreateImage(#PB_Any,256,256) If PBmap\ImgLoading - StartVectorDrawing(ImageVectorOutput(PBMap\Imgloading)) - BeginVectorLayer() - VectorSourceColor(RGBA(255, 255, 255, 128)) - AddPathBox(0, 0, 256, 256) - FillPath() - MovePathCursor(0, 0) - VectorFont(FontID(PBMap\Font), 256 / 20) - VectorSourceColor(RGBA(150, 150, 150, 255)) - MovePathCursor(0 + (256 - VectorTextWidth(Text$)) / 2, 0 + (256 - VectorTextHeight(Text$)) / 2) - DrawVectorText(Text$) - EndVectorLayer() - StopVectorDrawing() + StartVectorDrawing(ImageVectorOutput(PBMap\Imgloading)) + BeginVectorLayer() + VectorSourceColor(RGBA(255, 255, 255, 128)) + AddPathBox(0, 0, 256, 256) + FillPath() + MovePathCursor(0, 0) + VectorFont(FontID(PBMap\Font), 256 / 20) + VectorSourceColor(RGBA(150, 150, 150, 255)) + MovePathCursor(0 + (256 - VectorTextWidth(Text$)) / 2, 0 + (256 - VectorTextHeight(Text$)) / 2) + DrawVectorText(Text$) + EndVectorLayer() + StopVectorDrawing() EndIf EndProcedure Procedure Quit() -<<<<<<< HEAD - ;kill main drawing thread (nicer than KillThread(PBMap\MainDrawingThread)) - ;LockMutex(PBMap\Drawing\Mutex) PBMap\Drawing\End = #True - ;UnlockMutex(PBMap\Drawing\Mutex) - ;wait for loading threads to finish nicely - ResetList(PBMap\TilesThreads()) - While NextElement(PBMap\TilesThreads()) - If IsThread(PBMap\TilesThreads()\GetImageThread) = 0 - FreeMemory(PBMap\TilesThreads()\Tile) - DeleteElement(PBMap\TilesThreads()) - ResetList( PBMap\TilesThreads()) -======= - Protected TimeCounter.q - ;Ask main drawing thread to stop and wait for it for 2 seconds - LockMutex(PBMap\Drawing\Mutex) - PBMap\Drawing\End = #True - UnlockMutex(PBMap\Drawing\Mutex) - TimeCounter = ElapsedMilliseconds() - Repeat - Delay(100) - If ElapsedMilliseconds() - TimeCounter > 2000 - ;Should not occur - KillThread(PBMap\MainDrawingThread) ->>>>>>> refs/remotes/origin/djes - EndIf - Until Not IsThread(PBMap\MainDrawingThread) +; ;wait for loading threads to finish nicely +; ResetList(PBMap\TilesThreads()) +; While NextElement(PBMap\TilesThreads()) +; If IsThread(PBMap\TilesThreads()\GetImageThread) = 0 +; FreeMemory(PBMap\TilesThreads()\Tile) +; DeleteElement(PBMap\TilesThreads()) +; ResetList( PBMap\TilesThreads()) +; EndIf +; Wend ;Wait for loading threads to finish nicely. Passed 2 seconds, kills them. - TimeCounter = ElapsedMilliseconds() + Protected TimeCounter = ElapsedMilliseconds() Repeat ResetList(PBMap\TilesThreads()) While NextElement(PBMap\TilesThreads()) @@ -459,20 +452,6 @@ Module PBMap EndIf EndProcedure -<<<<<<< HEAD -======= - Procedure.i GetTileFromMem(key.s) - MyDebug("Check if we have this image in memory", 3) - If FindMapElement(PBMap\MemCache\Images(), key) - MyDebug("Key : " + key + " found !", 3) - ProcedureReturn PBMap\MemCache\Images()\nImage - Else - MyDebug("Key : " + key + " not found !", 3) - ProcedureReturn -1 - EndIf - EndProcedure - ->>>>>>> refs/remotes/origin/djes Procedure.i GetTileFromHDD(CacheFile.s) Protected nImage.i Debug "Loading image " + CacheFile + " ; Size : " + Str(FileSize(CacheFile)) @@ -487,25 +466,36 @@ Module PBMap MyDebug("Failed loading " + CacheFile + " as nImage " + Str(nImage) + " -> not an image !", 3) EndIf Else - Debug "Failed loading " + CacheFile + " -> Size = 0" - MyDebug("Failed loading " + CacheFile + " -> Size = 0", 3) + Debug "Failed loading " + CacheFile + " -> Size <= 0" + MyDebug("Failed loading " + CacheFile + " -> Size <= 0", 3) EndIf ProcedureReturn -1 EndProcedure - Procedure.i GetTileFromMem(Zoom.i, XTile.i, YTile.i) - Protected key.s = "Z" + RSet(Str(Zoom), 4, "0") + "X" + RSet(Str(XTile), 8, "0") + "Y" + RSet(Str(YTile), 8, "0") - MyDebug("Check if we have this image in memory") + ; Procedure.i GetTileFromMem(Zoom.i, XTile.i, YTile.i) +; Protected key.s = "Z" + RSet(Str(Zoom), 4, "0") + "X" + RSet(Str(XTile), 8, "0") + "Y" + RSet(Str(YTile), 8, "0") +; MyDebug("Check if we have this image in memory") +; If FindMapElement(PBMap\MemCache\Images(), key) +; MyDebug("Key : " + key + " found !") +; ProcedureReturn PBMap\MemCache\Images()\nImage +; Else +; Protected CacheFile.s = PBMap\HDDCachePath + "PBMap_" + Str(Zoom) + "_" + Str(XTile) + "_" + Str(YTile) + ".png" +; MyDebug("Key : " + key + " Try HDD!") +; ProcedureReturn GetTileFromHDD(CacheFile.s) +; EndIf +; EndProcedure + + Procedure.i GetLocalTile(key.s, CacheFile.s) + MyDebug("Check if we have this image in memory", 3) If FindMapElement(PBMap\MemCache\Images(), key) - MyDebug("Key : " + key + " found !") + MyDebug("Key : " + key + " found !", 3) ProcedureReturn PBMap\MemCache\Images()\nImage Else - Protected CacheFile.s = PBMap\HDDCachePath + "PBMap_" + Str(Zoom) + "_" + Str(XTile) + "_" + Str(YTile) + ".png" MyDebug("Key : " + key + " Try HDD!") ProcedureReturn GetTileFromHDD(CacheFile.s) EndIf EndProcedure - + Procedure.i GetTileFromWeb(Zoom.i, XTile.i, YTile.i, CacheFile.s) Protected *Buffer Protected nImage.i = -1 @@ -524,13 +514,9 @@ Module PBMap If *Buffer nImage = CatchImage(#PB_Any, *Buffer, MemorySize(*Buffer)) If IsImage(nImage) -<<<<<<< HEAD - MyDebug("Load from web " + TileURL + " as Tile nb " + nImage) + MyDebug("Load from web " + TileURL + " as Tile nb " + nImage, 3) Debug "url: " + TileURL Debug "cache file: " + CacheFile -======= - MyDebug("Load from web " + TileURL + " as Tile nb " + nImage, 3) ->>>>>>> refs/remotes/origin/djes SaveImage(nImage, CacheFile, #PB_ImagePlugin_PNG) FreeMemory(*Buffer) Else @@ -539,11 +525,8 @@ Module PBMap ;ShowMemoryViewer(*Buffer, MemorySize(*Buffer)) EndIf Else -<<<<<<< HEAD Debug("ReceiveHTTPMemory's buffer is empty") -======= MyDebug("ReceiveHTTPMemory's buffer is empty", 3) ->>>>>>> refs/remotes/origin/djes EndIf EndIf ProcedureReturn nImage @@ -551,61 +534,23 @@ Module PBMap Procedure GetImageThread(*Tile.Tile) Protected nImage.i = -1 -<<<<<<< HEAD - LockMutex(PBMap\TileThreadMutex) - Protected key.s = "Z" + RSet(Str(*Tile\PBMapZoom), 4, "0") + "X" + RSet(Str(*Tile\PBMapTileX), 8, "0") + "Y" + RSet(Str(*Tile\PBMapTileY), 8, "0") - Protected CacheFile.s = PBMap\HDDCachePath + "PBMap_" + Str(*Tile\PBMapZoom) + "_" + Str(*Tile\PBMapTileX) + "_" + Str(*Tile\PBMapTileY) + ".png" - ;Adding the image to the cache if possible - - AddMapElement(PBMap\MemCache\Images(), key) - PBMap\MemCache\Images()\nImage= PBMap\ImgLoading - - UnlockMutex(PBMap\TileThreadMutex) ;nImage = GetTileFromHDD(CacheFile) ;If nImage = -1 - ; LockMutex(PBMap\TileThreadMutex) - nImage = GetTileFromWeb(*Tile\PBMapZoom, *Tile\PBMapTileX, *Tile\PBMapTileY, CacheFile) - ;UnlockMutex(PBMap\TileThreadMutex) + nImage = GetTileFromWeb(*Tile\PBMapZoom, *Tile\PBMapTileX, *Tile\PBMapTileY, *Tile\CacheFile) ;EndIf If nImage <> -1 LockMutex(PBMap\TileThreadMutex) - PBMap\MemCache\Images(key)\nImage = nImage + PBMap\MemCache\Images(*Tile\key)\nImage = nImage UnlockMutex(PBMap\TileThreadMutex) MyDebug("Image nb " + Str(nImage) + " successfully added to mem cache") - MyDebug("With the following key : " + key) + MyDebug("With the following key : " + *Tile\key) Else - MyDebug("Error GetImageThread procedure, image not loaded - " + key) + MyDebug("Error GetImageThread procedure, image not loaded - " + *Tile\key) nImage = -1 EndIf ;Define this tile image nb *Tile\nImage = nImage PostEvent(#PB_Event_Gadget,PBMap\window,PBmap\Gadget,#PB_MAP_REDRAW,*tile) -======= - Protected CacheFile.s = PBMap\HDDCachePath + "PBMap_" + Str(*Tile\PBMapZoom) + "_" + Str(*Tile\PBMapTileX) + "_" + Str(*Tile\PBMapTileY) + ".png" - Protected Tile.position -; PBMap\MemCache\Images(*Tile\key)\Mutex = CreateMutex() -; LockMutex(PBMap\MemCache\Images(*Tile\key)\Mutex) -; LockMutex(LoadMutexTest) - nImage = GetTileFromHDD(CacheFile) -; UnlockMutex(LoadMutexTest) - If nImage = -1 - nImage = GetTileFromWeb(*Tile\PBMapZoom, *Tile\PBMapTileX, *Tile\PBMapTileY, CacheFile) - If nImage = -1 - MyDebug("Error GetImageThread procedure, image not loaded - " + *Tile\key, 3) - *Tile\nImage = -1 - ProcedureReturn - EndIf - EndIf - PBMap\MemCache\Images(*Tile\key)\nImage = nImage -; Tile\x=*Tile\PBMapTileX -; Tile\y=*Tile\PBMapTiley -; XY2LatLon(@Tile,@PBMap\MemCache\Images(*Tile\key)\Location) - MyDebug("Image nb " + Str(nImage) + " successfully added to mem cache", 3) - MyDebug("With the following key : " + *Tile\key, 3) - ;Define this tile image nb - *Tile\nImage = nImage - ; UnlockMutex(PBMap\MemCache\Images(key)\Mutex) ->>>>>>> refs/remotes/origin/djes EndProcedure Procedure DrawTile(*Tile.Tile) @@ -621,35 +566,8 @@ Module PBMap Protected x = *Tile\Position\x Protected y = *Tile\Position\y Protected Text$ = "Loading" -<<<<<<< HEAD - MyDebug(" Drawing tile nb " + " X : " + Str(*Tile\PBMapTileX) + " Y : " + Str(*Tile\PBMapTileX)) - MyDebug(" at coords " + Str(x) + "," + Str(y)) -; BeginVectorLayer() -; ;MovePathCursor(x, y) -; VectorSourceColor(RGBA(255, 255, 255, 128)) -; AddPathBox(x, y, PBMap\TileSize, PBMap\TileSize) -; FillPath() -; MovePathCursor(x, y) -; VectorFont(FontID(PBMap\Font), PBMap\TileSize / 20) -; VectorSourceColor(RGBA(150, 150, 150, 255)) -; MovePathCursor(x + (PBMap\TileSize - VectorTextWidth(Text$)) / 2, y + (PBMap\TileSize - VectorTextHeight(Text$)) / 2) -; DrawVectorText(Text$) -; EndVectorLayer() -======= MyDebug(" Drawing tile nb " + " X : " + Str(*Tile\PBMapTileX) + " Y : " + Str(*Tile\PBMapTileX), 2) - MyDebug(" at coords " + Str(x) + "," + Str(y), 2) - BeginVectorLayer() - ;MovePathCursor(x, y) - VectorSourceColor(RGBA(255, 255, 255, 128)) - AddPathBox(x, y, PBMap\TileSize, PBMap\TileSize) - FillPath() - MovePathCursor(x, y) - VectorFont(FontID(PBMap\Font), PBMap\TileSize / 20) - VectorSourceColor(RGBA(150, 150, 150, 255)) - MovePathCursor(x + (PBMap\TileSize - VectorTextWidth(Text$)) / 2, y + (PBMap\TileSize - VectorTextHeight(Text$)) / 2) - DrawVectorText(Text$) - EndVectorLayer() ->>>>>>> refs/remotes/origin/djes + MyDebug(" at coords " + Str(x) + "," + Str(y)) EndProcedure Procedure DrawTiles(*Drawing.DrawingParameters) @@ -659,89 +577,53 @@ Module PBMap Protected ty = Int(*Drawing\Position\y) Protected nx = *Drawing\CenterX / PBMap\TileSize ;How many tiles around the point Protected ny = *Drawing\CenterY / PBMap\TileSize -<<<<<<< HEAD - Protected px,py,img - + + Protected px, py, img, key.s, CacheFile.s MyDebug("Drawing tiles") For y = - ny - 1 To ny + 1 For x = - nx - 1 To nx + 1 px = *Drawing\CenterX + x * PBMap\TileSize - *Drawing\DeltaX py = *Drawing\CenterY + y * PBMap\TileSize - *Drawing\DeltaY - img = GetTileFromMem(PBMap\Zoom,tx+x,ty+y) + CacheFile = PBMap\HDDCachePath + "PBMap_" + Str(PBMap\Zoom) + "_" + Str(tx + x) + "_" + Str(ty + y) + ".png" + key = "Z" + RSet(Str(PBMap\Zoom), 4, "0") + "X" + RSet(Str(tx + x), 8, "0") + "Y" + RSet(Str(ty + y), 8, "0") ;Unique identifier + img = GetLocalTile(key, CacheFile) If img <> -1 - MovePathCursor(px,py) - DrawVectorImage(ImageID(img)) + MovePathCursor(px, py) + DrawVectorImage(ImageID(img)) Else - MovePathCursor(px,py) + MovePathCursor(px, py) DrawVectorImage(ImageID(PBMap\ImgLoading)) - Protected *NewTile.Tile = AllocateMemory(SizeOf(Tile)) If *NewTile - With *NewTile - ;Keep a track of tiles (especially to free memory) -======= - MyDebug("Drawing tiles", 2) - For y = - ny - 1 To ny + 1 - For x = - nx - 1 To nx + 1 - ;Was quiting the loop if a move occured, giving maybe smoother movement - ;If PBMap\Moving - ; Break 2 - ;EndIf - ;Store parameters in only one memory place, and give it to the thread if needed - Protected *NewTile.Tile = AllocateMemory(SizeOf(Tile)) - If *NewTile - With *NewTile - ;Keep a track of tiles, and eventually associated threads, to free memory ->>>>>>> refs/remotes/origin/djes - AddElement(PBMap\TilesThreads()) - PBMap\TilesThreads()\Tile = *NewTile - ;New tile parameters - \Position\x = px ;*Drawing\CenterX + x * PBMap\TileSize - *Drawing\DeltaX - \Position\y = py ;*Drawing\CenterY + y * PBMap\TileSize - *Drawing\DeltaY - \PBMapTileX = tx + x - \PBMapTileY = ty + y - \PBMapZoom = PBMap\Zoom -<<<<<<< HEAD - \GetImageThread = CreateThread(@GetImageThread(), *NewTile) - PBMap\TilesThreads()\GetImageThread = \GetImageThread - myDebug(" Creating get image thread nb " + Str(\GetImageThread)) - ; DrawLoading(*NewTile) - ;*Drawing\Dirty = #True ;Signals that this image is missing so we should have to redraw - EndWith - Else - MyDebug(" Error, can't create a new tile") - Break 2 - EndIf -======= - \key = "Z" + RSet(Str(\PBMapZoom), 4, "0") + "X" + RSet(Str(\PBMapTileX), 8, "0") + "Y" + RSet(Str(\PBMapTileY), 8, "0") ;Unique identifier - ;Check if the image exists - \nImage = GetTileFromMem(\key) - If \nImage = -1 - ;If not, load it in the background - If AddMapElement(PBMap\MemCache\Images(), \key) ;Add the image to the cache, once in this loop - \GetImageThread = CreateThread(@GetImageThread(), *NewTile) - PBMap\TilesThreads()\GetImageThread = \GetImageThread - MyDebug(" Creating get image thread nb " + Str(\GetImageThread), 2) - Else - MyDebug(" Can't add a new image to the map list", 2) - CallDebugger - EndIf - EndIf - If IsImage(\nImage) - DrawTile(*NewTile) - Else - MyDebug("Image missing", 2) - DrawLoading(*NewTile) - *Drawing\Dirty = #True ;Signals that this image is missing so we should have to redraw - EndIf - EndWith - Else - MyDebug(" Error, can't create a new tile", 2) - Break 2 ->>>>>>> refs/remotes/origin/djes - EndIf - Next - Next + With *NewTile + ;Keep a track of tiles (especially to free memory) + AddElement(PBMap\TilesThreads()) + PBMap\TilesThreads()\Tile = *NewTile + ;New tile parameters + \Position\x = px ;*Drawing\CenterX + x * PBMap\TileSize - *Drawing\DeltaX + \Position\y = py ;*Drawing\CenterY + y * PBMap\TileSize - *Drawing\DeltaY + \PBMapTileX = tx + x + \PBMapTileY = ty + y + \PBMapZoom = PBMap\Zoom + \key = key + \CacheFile = CacheFile + LockMutex(PBMap\TileThreadMutex) + AddMapElement(PBMap\MemCache\Images(), \key) ;Add the image to the cache, once in this loop + PBMap\MemCache\Images()\nImage = PBMap\ImgLoading + UnlockMutex(PBMap\TileThreadMutex) + \GetImageThread = CreateThread(@GetImageThread(), *NewTile) + PBMap\TilesThreads()\GetImageThread = \GetImageThread + myDebug(" Creating get image thread nb " + Str(\GetImageThread)) + ; DrawLoading(*NewTile) + ;*Drawing\Dirty = #True ;Signals that this image is missing so we should have to redraw + EndWith + Else + MyDebug(" Error, can't create a new tile") + Break 2 + EndIf + EndIf + Next + Next ;Free tile memory ;TODO : get out this proc from drawtiles in a special "free ressources" task ForEach PBMap\TilesThreads() @@ -751,23 +633,22 @@ Module PBMap DeleteElement(PBMap\TilesThreads()) EndIf Next -<<<<<<< HEAD ;EnableDebugger EndProcedure - Procedure Pointer(x.i, y.i, color.l = #Red) - color=RGBA(255, 0, 0, 255) - VectorSourceColor(color) - MovePathCursor(x, y) - AddPathLine(-8,-16,#PB_Path_Relative) - AddPathCircle(8,0,8,180,0,#PB_Path_Relative) - AddPathLine(-8,16,#PB_Path_Relative) - ;FillPath(#PB_Path_Preserve) - ;ClipPath(#PB_Path_Preserve) - AddPathCircle(0,-16,5,0,360,#PB_Path_Relative) - VectorSourceColor(color) - FillPath(#PB_Path_Preserve):VectorSourceColor(RGBA(0, 0, 0, 255)):StrokePath(1) -======= +; Procedure Pointer(x.i, y.i, color.l = #Red) +; color=RGBA(255, 0, 0, 255) +; VectorSourceColor(color) +; MovePathCursor(x, y) +; AddPathLine(-8,-16,#PB_Path_Relative) +; AddPathCircle(8,0,8,180,0,#PB_Path_Relative) +; AddPathLine(-8,16,#PB_Path_Relative) +; ;FillPath(#PB_Path_Preserve) +; ;ClipPath(#PB_Path_Preserve) +; AddPathCircle(0,-16,5,0,360,#PB_Path_Relative) +; VectorSourceColor(color) +; FillPath(#PB_Path_Preserve):VectorSourceColor(RGBA(0, 0, 0, 255)):StrokePath(1) +; EndProcedure ; ;-**** Clean Mem Cache ; ;TODO in development, by now there's many cache problem as the loading thread could be perturbed ; ;GadgetWidth(PBMap\Gadget)/PBMap\TileSize @@ -794,7 +675,6 @@ Module PBMap ; EndIf ; Next - EndProcedure Procedure DrawPointer(*Drawing.DrawingParameters) If PBMap\CallBackMainPointer > 0 @@ -813,7 +693,6 @@ Module PBMap FillPath(#PB_Path_Preserve):VectorSourceColor(RGBA($FF, 0, 0, $FF));RGBA(0, 0, 0, 255)) StrokePath(1) EndIf ->>>>>>> refs/remotes/origin/djes EndProcedure Procedure DrawScale(*Drawing.DrawingParameters) @@ -938,12 +817,21 @@ Module PBMap ;Drawing\Dirty = #False ;Main drawing stuff StartVectorDrawing(CanvasVectorOutput(PBMap\Gadget)) -<<<<<<< HEAD DrawTiles(*Drawing) + DrawTrack(*Drawing) + DrawMarker(*Drawing) + DrawPointer(*Drawing) ;DrawTrack(*Drawing) ;DrawMarker(*Drawing) ;Pointer(*Drawing\CenterX, *Drawing\CenterY, #Red) - StopVectorDrawing() + ;- Display how many images in cache + VectorFont(FontID(PBMap\Font), 30) + VectorSourceColor(RGBA(0, 0, 0, 80)) + MovePathCursor(50,50) + DrawVectorText(Str(MapSize(PBMap\MemCache\Images()))) + MovePathCursor(50,80) + DrawVectorText(Str(ListSize(PBMap\TilesThreads()))) + StopVectorDrawing() ;Redraw ; If something was not correctly drawn, redraw after a while ; LockMutex(*SharedDrawing\Mutex) ;Be sure that we're not modifying variables while moving (seems not useful, but it is, especially to clean the semaphore) @@ -957,34 +845,6 @@ Module PBMap ; EndIf ;UnlockMutex(*SharedDrawing\Mutex) ;Until Drawing\End -======= - DrawTiles(@Drawing) - DrawTrack(@Drawing) - DrawMarker(@Drawing) - DrawPointer(@Drawing) - ;DrawScale(@Drawing) - ;- Display how many images in cache - VectorFont(FontID(PBMap\Font), 30) - VectorSourceColor(RGBA(0, 0, 0, 80)) - MovePathCursor(50,50) - DrawVectorText(Str(MapSize(PBMap\MemCache\Images()))) - MovePathCursor(50,80) - DrawVectorText(Str(ListSize(PBMap\TilesThreads()))) - StopVectorDrawing() - ;Redraw - ; If something was not correctly drawn, redraw after a while - LockMutex(*SharedDrawing\Mutex) ;Be sure that we're not modifying variables while moving (seems not useful, but it is, especially to clean the semaphore) - If Drawing\Dirty - MyDebug("Something was dirty ! We try again to redraw") - Drawing\PassNb + 1 - SignalSemaphore(*SharedDrawing\Semaphore) - Else - ;Clean the semaphore to avoid multiple unuseful redraws - Repeat : Until TrySemaphore(*SharedDrawing\Semaphore) = 0 - EndIf - UnlockMutex(*SharedDrawing\Mutex) - Until Drawing\End ->>>>>>> refs/remotes/origin/djes EndProcedure Procedure Refresh() @@ -1089,6 +949,10 @@ Module PBMap PBMap\CallBackLocation = CallBackLocation EndProcedure + Procedure SetCallBackMainPointer(CallBackMainPointer.i) + PBMap\CallBackMainPointer = CallBackMainPointer + EndProcedure + Procedure.d GetLatitude() Protected Value.d ; LockMutex(PBMap\Drawing\Mutex) @@ -1157,19 +1021,16 @@ Module PBMap ;New move values PBMap\Position\x - MouseX PBMap\Position\y - MouseY -<<<<<<< HEAD + ;-*** Fill parameters and signal the drawing thread ; LockMutex(PBMap\Drawing\Mutex) -======= - ;Fill parameters and send a signal to the drawing thread - LockMutex(PBMap\Drawing\Mutex) ->>>>>>> refs/remotes/origin/djes + ;PBMap tile position in tile.decimal PBMap\Drawing\Position\x = PBMap\Position\x / PBMap\TileSize PBMap\Drawing\Position\y = PBMap\Position\y / PBMap\TileSize PBMap\Drawing\PassNb = 1 XY2LatLon(@PBMap\Drawing, @PBMap\TargetLocation) -<<<<<<< HEAD + ;If CallBackLocation send Location to function If PBMap\CallBackLocation > 0 CallFunctionFast(PBMap\CallBackLocation, @PBMap\TargetLocation) @@ -1180,16 +1041,6 @@ Module PBMap ;SignalSemaphore(PBMap\Drawing\Semaphore) DrawingThread() ;- *** -======= - UnlockMutex(PBMap\Drawing\Mutex) - ;Start drawing - SignalSemaphore(PBMap\Drawing\Semaphore) - EndIf - ;If CallBackLocation send Location to function - If PBMap\CallBackLocation > 0 - CallFunctionFast(PBMap\CallBackLocation, @PBMap\TargetLocation) - EndIf ->>>>>>> refs/remotes/origin/djes PBMap\MoveStartingPoint\x = GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseX) PBMap\MoveStartingPoint\y = GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseY) ; DrawingThread() @@ -1357,24 +1208,12 @@ CompilerIf #PB_Compiler_IsMainFile CloseConsole() CompilerEndIf -<<<<<<< HEAD + ; IDE Options = PureBasic 5.42 LTS (Windows - x86) -; CursorPosition = 1073 -; FirstLine = 1062 -; Folding = -------- -; EnableUnicode -======= -; IDE Options = PureBasic 5.50 (Windows - x64) -; CursorPosition = 450 -; FirstLine = 444 +; ExecutableFormat = Console +; CursorPosition = 333 +; FirstLine = 331 ; Folding = --------- ->>>>>>> refs/remotes/origin/djes +; EnableUnicode ; EnableThread -; EnableXP -; EnableUnicode -; IDE Options = PureBasic 5.42 LTS (Windows - x86) -; CursorPosition = 30 -; FirstLine = 21 -; Folding = --------- -; EnableUnicode ; EnableXP \ No newline at end of file From 71b4c66856526c3899872d887a37616349aa6f64 Mon Sep 17 00:00:00 2001 From: djes Date: Fri, 26 Aug 2016 12:40:07 +0200 Subject: [PATCH 09/62] Code cleaning --- PBMap.pb | 222 ++++++++++++++++--------------------------------------- 1 file changed, 62 insertions(+), 160 deletions(-) diff --git a/PBMap.pb b/PBMap.pb index 403fbbd..0bc78e5 100644 --- a/PBMap.pb +++ b/PBMap.pb @@ -28,7 +28,7 @@ UsePNGImageEncoder() DeclareModule PBMap #Red = 255 ;-Show debug infos - Global Verbose = 1 + Global Verbose = 0 Global MyDebugLevel = 3 ;-Proxy ON/OFF Global Proxy = #False @@ -36,7 +36,7 @@ DeclareModule PBMap Declare MapGadget(Gadget.i, X.i, Y.i, Width.i, Height.i) Declare Event(Event.l) Declare SetLocation(latitude.d, longitude.d, zoom = 15, mode.i = #PB_Absolute) - Declare DrawingThread() + Declare Drawing() Declare SetZoom(Zoom.i, mode.i = #PB_Relative) Declare ZoomToArea() Declare SetCallBackLocation(*CallBackLocation) @@ -241,6 +241,25 @@ Module PBMap EndProcedure ;- *** + Procedure LoadingImageCreation() + Protected Text$ = "Loading" + PBmap\ImgLoading = CreateImage(#PB_Any, 256, 256) + If PBmap\ImgLoading + StartVectorDrawing(ImageVectorOutput(PBMap\Imgloading)) + BeginVectorLayer() + VectorSourceColor(RGBA(255, 255, 255, 128)) + AddPathBox(0, 0, 256, 256) + FillPath() + MovePathCursor(0, 0) + VectorFont(FontID(PBMap\Font), 256 / 20) + VectorSourceColor(RGBA(150, 150, 150, 255)) + MovePathCursor(0 + (256 - VectorTextWidth(Text$)) / 2, 0 + (256 - VectorTextHeight(Text$)) / 2) + DrawVectorText(Text$) + EndVectorLayer() + StopVectorDrawing() + EndIf + EndProcedure + Procedure InitPBMap(window) Protected Result.i If Verbose @@ -260,7 +279,6 @@ Module PBMap PBMap\Font = LoadFont(#PB_Any, "Arial", 20, #PB_Font_Bold) PBMap\Window = window PBMap\Options\WheelMouseRelative = #True - ;-Options ;-Preferences ;Use this to create and customize your preferences file for the first time ; CreatePreferences(GetHomeDirectory() + "PBMap.prefs") @@ -285,41 +303,12 @@ Module PBMap Global ProxyPassword$ = InputRequester("ProxyPass", "Do you use a password ? Then enter it", "") ;TODO EndIf ClosePreferences() - curl_global_init(#CURL_GLOBAL_WIN32); - ;- Main drawing thread launching - ;PBMap\MainDrawingThread = CreateThread(@DrawingThread(), @PBMap\Drawing) - ;If PBMap\MainDrawingThread = 0 - ; Error("MapGadget : can't create main drawing thread.") - Protected Text$ = "Loading" - PBmap\ImgLoading = CreateImage(#PB_Any,256,256) - If PBmap\ImgLoading - StartVectorDrawing(ImageVectorOutput(PBMap\Imgloading)) - BeginVectorLayer() - VectorSourceColor(RGBA(255, 255, 255, 128)) - AddPathBox(0, 0, 256, 256) - FillPath() - MovePathCursor(0, 0) - VectorFont(FontID(PBMap\Font), 256 / 20) - VectorSourceColor(RGBA(150, 150, 150, 255)) - MovePathCursor(0 + (256 - VectorTextWidth(Text$)) / 2, 0 + (256 - VectorTextHeight(Text$)) / 2) - DrawVectorText(Text$) - EndVectorLayer() - StopVectorDrawing() - EndIf - + curl_global_init(#CURL_GLOBAL_WIN32) + LoadingImageCreation() EndProcedure Procedure Quit() PBMap\Drawing\End = #True -; ;wait for loading threads to finish nicely -; ResetList(PBMap\TilesThreads()) -; While NextElement(PBMap\TilesThreads()) -; If IsThread(PBMap\TilesThreads()\GetImageThread) = 0 -; FreeMemory(PBMap\TilesThreads()\Tile) -; DeleteElement(PBMap\TilesThreads()) -; ResetList( PBMap\TilesThreads()) -; EndIf -; Wend ;Wait for loading threads to finish nicely. Passed 2 seconds, kills them. Protected TimeCounter = ElapsedMilliseconds() Repeat @@ -472,19 +461,6 @@ Module PBMap ProcedureReturn -1 EndProcedure - ; Procedure.i GetTileFromMem(Zoom.i, XTile.i, YTile.i) -; Protected key.s = "Z" + RSet(Str(Zoom), 4, "0") + "X" + RSet(Str(XTile), 8, "0") + "Y" + RSet(Str(YTile), 8, "0") -; MyDebug("Check if we have this image in memory") -; If FindMapElement(PBMap\MemCache\Images(), key) -; MyDebug("Key : " + key + " found !") -; ProcedureReturn PBMap\MemCache\Images()\nImage -; Else -; Protected CacheFile.s = PBMap\HDDCachePath + "PBMap_" + Str(Zoom) + "_" + Str(XTile) + "_" + Str(YTile) + ".png" -; MyDebug("Key : " + key + " Try HDD!") -; ProcedureReturn GetTileFromHDD(CacheFile.s) -; EndIf -; EndProcedure - Procedure.i GetLocalTile(key.s, CacheFile.s) MyDebug("Check if we have this image in memory", 3) If FindMapElement(PBMap\MemCache\Images(), key) @@ -534,10 +510,7 @@ Module PBMap Procedure GetImageThread(*Tile.Tile) Protected nImage.i = -1 - ;nImage = GetTileFromHDD(CacheFile) - ;If nImage = -1 nImage = GetTileFromWeb(*Tile\PBMapZoom, *Tile\PBMapTileX, *Tile\PBMapTileY, *Tile\CacheFile) - ;EndIf If nImage <> -1 LockMutex(PBMap\TileThreadMutex) PBMap\MemCache\Images(*Tile\key)\nImage = nImage @@ -550,7 +523,7 @@ Module PBMap EndIf ;Define this tile image nb *Tile\nImage = nImage - PostEvent(#PB_Event_Gadget,PBMap\window,PBmap\Gadget,#PB_MAP_REDRAW,*tile) + PostEvent(#PB_Event_Gadget, PBMap\window,PBmap\Gadget, #PB_MAP_REDRAW, *Tile) EndProcedure Procedure DrawTile(*Tile.Tile) @@ -577,7 +550,6 @@ Module PBMap Protected ty = Int(*Drawing\Position\y) Protected nx = *Drawing\CenterX / PBMap\TileSize ;How many tiles around the point Protected ny = *Drawing\CenterY / PBMap\TileSize - Protected px, py, img, key.s, CacheFile.s MyDebug("Drawing tiles") For y = - ny - 1 To ny + 1 @@ -614,8 +586,6 @@ Module PBMap \GetImageThread = CreateThread(@GetImageThread(), *NewTile) PBMap\TilesThreads()\GetImageThread = \GetImageThread myDebug(" Creating get image thread nb " + Str(\GetImageThread)) - ; DrawLoading(*NewTile) - ;*Drawing\Dirty = #True ;Signals that this image is missing so we should have to redraw EndWith Else MyDebug(" Error, can't create a new tile") @@ -625,7 +595,7 @@ Module PBMap Next Next ;Free tile memory - ;TODO : get out this proc from drawtiles in a special "free ressources" task + ;TODO : maybe get out this proc from drawtiles in a special "free ressources" task ForEach PBMap\TilesThreads() ;Check if there's no more loading thread If IsThread(PBMap\TilesThreads()\GetImageThread) = 0 @@ -636,19 +606,6 @@ Module PBMap ;EnableDebugger EndProcedure -; Procedure Pointer(x.i, y.i, color.l = #Red) -; color=RGBA(255, 0, 0, 255) -; VectorSourceColor(color) -; MovePathCursor(x, y) -; AddPathLine(-8,-16,#PB_Path_Relative) -; AddPathCircle(8,0,8,180,0,#PB_Path_Relative) -; AddPathLine(-8,16,#PB_Path_Relative) -; ;FillPath(#PB_Path_Preserve) -; ;ClipPath(#PB_Path_Preserve) -; AddPathCircle(0,-16,5,0,360,#PB_Path_Relative) -; VectorSourceColor(color) -; FillPath(#PB_Path_Preserve):VectorSourceColor(RGBA(0, 0, 0, 255)):StrokePath(1) -; EndProcedure ; ;-**** Clean Mem Cache ; ;TODO in development, by now there's many cache problem as the loading thread could be perturbed ; ;GadgetWidth(PBMap\Gadget)/PBMap\TileSize @@ -675,7 +632,6 @@ Module PBMap ; EndIf ; Next - Procedure DrawPointer(*Drawing.DrawingParameters) If PBMap\CallBackMainPointer > 0 ; @Procedure(X.i, Y.i) to DrawPointer (you must use VectorDrawing lib) @@ -729,7 +685,6 @@ Module PBMap Protected km.f, memKm.i If ListSize(PBMap\track())>0 ;Trace Track - ; LockMutex(PBMap\Drawing\Mutex) ForEach PBMap\track() If *Drawing\TargetLocation\Latitude<>0 And *Drawing\TargetLocation\Longitude<>0 GetPixelCoordFromLocation(@PBMap\track(),@Pixel) @@ -763,7 +718,6 @@ Module PBMap EndIf EndIf Next - ; UnlockMutex(PBMap\Drawing\Mutex) EndIf EndProcedure @@ -793,63 +747,37 @@ Module PBMap Next EndProcedure - ;-*** Main drawing thread - ; always running, waiting for a semaphore to start refreshing - Procedure DrawingThread();*SharedDrawing.DrawingParameters) + ;-*** Main drawing + Procedure Drawing() Protected *Drawing.DrawingParameters = @PBMap\Drawing Protected Px.d, Py.d - ;Repeat - ; WaitSemaphore(*SharedDrawing\Semaphore) - ; MyDebug("--------- Main drawing thread ------------") - ;Creates a copy of the structure to work with to avoid multiple mutex locks - ; LockMutex(*SharedDrawing\Mutex) - ; CopyStructure(*SharedDrawing, @Drawing, DrawingParameters) - ; UnlockMutex(*SharedDrawing\Mutex) - ;Precalc some values - *Drawing\CenterX = GadgetWidth(PBMap\Gadget) / 2 - *Drawing\CenterY = GadgetHeight(PBMap\Gadget) / 2 - ;Pixel shift, aka position in the tile - Px = *Drawing\Position\x : Py = *Drawing\Position\y - *Drawing\DeltaX = Px * PBMap\TileSize - (Int(Px) * PBMap\TileSize) ;Don't forget the Int() ! - *Drawing\DeltaY = Py * PBMap\TileSize - (Int(Py) * PBMap\TileSize) - *Drawing\TargetLocation\Latitude = PBMap\TargetLocation\Latitude - *Drawing\TargetLocation\Longitude = PBMap\TargetLocation\Longitude - ;Drawing\Dirty = #False - ;Main drawing stuff - StartVectorDrawing(CanvasVectorOutput(PBMap\Gadget)) - DrawTiles(*Drawing) - DrawTrack(*Drawing) - DrawMarker(*Drawing) - DrawPointer(*Drawing) - ;DrawTrack(*Drawing) - ;DrawMarker(*Drawing) - ;Pointer(*Drawing\CenterX, *Drawing\CenterY, #Red) - ;- Display how many images in cache - VectorFont(FontID(PBMap\Font), 30) - VectorSourceColor(RGBA(0, 0, 0, 80)) - MovePathCursor(50,50) - DrawVectorText(Str(MapSize(PBMap\MemCache\Images()))) - MovePathCursor(50,80) - DrawVectorText(Str(ListSize(PBMap\TilesThreads()))) - StopVectorDrawing() - ;Redraw - ; If something was not correctly drawn, redraw after a while - ; LockMutex(*SharedDrawing\Mutex) ;Be sure that we're not modifying variables while moving (seems not useful, but it is, especially to clean the semaphore) - ; If Drawing\Dirty - ; MyDebug("Something was dirty ! We try again to redraw") - ; Drawing\PassNb + 1 - ; SignalSemaphore(*SharedDrawing\Semaphore) - ; Else - ; ;Clean the semaphore to avoid multiple unuseful redraws - ; Repeat : Until TrySemaphore(*SharedDrawing\Semaphore) = 0 - ; EndIf - ;UnlockMutex(*SharedDrawing\Mutex) - ;Until Drawing\End + ;Precalc some values + *Drawing\CenterX = GadgetWidth(PBMap\Gadget) / 2 + *Drawing\CenterY = GadgetHeight(PBMap\Gadget) / 2 + ;Pixel shift, aka position in the tile + Px = *Drawing\Position\x : Py = *Drawing\Position\y + *Drawing\DeltaX = Px * PBMap\TileSize - (Int(Px) * PBMap\TileSize) ;Don't forget the Int() ! + *Drawing\DeltaY = Py * PBMap\TileSize - (Int(Py) * PBMap\TileSize) + *Drawing\TargetLocation\Latitude = PBMap\TargetLocation\Latitude + *Drawing\TargetLocation\Longitude = PBMap\TargetLocation\Longitude + ;Main drawing stuff + StartVectorDrawing(CanvasVectorOutput(PBMap\Gadget)) + DrawTiles(*Drawing) + DrawTrack(*Drawing) + DrawMarker(*Drawing) + DrawPointer(*Drawing) + ;- Display how many images in cache + VectorFont(FontID(PBMap\Font), 30) + VectorSourceColor(RGBA(0, 0, 0, 80)) + MovePathCursor(50,50) + DrawVectorText(Str(MapSize(PBMap\MemCache\Images()))) + MovePathCursor(50,80) + DrawVectorText(Str(ListSize(PBMap\TilesThreads()))) + StopVectorDrawing() EndProcedure Procedure Refresh() - DrawingThread() - ;SignalSemaphore(PBMap\Drawing\Semaphore) + Drawing() EndProcedure Procedure SetLocation(latitude.d, longitude.d, zoom = 15, Mode.i = #PB_Absolute) @@ -870,10 +798,7 @@ Module PBMap PBMap\Position\x = PBMap\Drawing\Position\x * PBMap\TileSize PBMap\Position\y = PBMap\Drawing\Position\y * PBMap\TileSize PBMap\Drawing\PassNb = 1 - ;Start drawing - ;SignalSemaphore(PBMap\Drawing\Semaphore) - DrawingThread() - ;*** + Drawing() If PBMap\CallBackLocation > 0 CallFunctionFast(PBMap\CallBackLocation, @PBMap\TargetLocation) EndIf @@ -934,12 +859,8 @@ Module PBMap ;Convert X, Y in tile.decimal into real pixels PBMap\Position\X = PBMap\Drawing\Position\x * PBMap\TileSize PBMap\Position\Y = PBMap\Drawing\Position\y * PBMap\TileSize - ;*** Creates a drawing thread and fill parameters - ;PBMap\Drawing\PassNb = 1 - ;Start drawing - ;SignalSemaphore(PBMap\Drawing\Semaphore) - DrawingThread() - ;*** + ;First drawing + Drawing() If PBMap\CallBackLocation > 0 CallFunctionFast(PBMap\CallBackLocation, @PBMap\TargetLocation) EndIf @@ -955,25 +876,19 @@ Module PBMap Procedure.d GetLatitude() Protected Value.d - ; LockMutex(PBMap\Drawing\Mutex) Value = PBMap\TargetLocation\Latitude - ; UnlockMutex(PBMap\Drawing\Mutex) ProcedureReturn Value EndProcedure Procedure.d GetLongitude() Protected Value.d - ; LockMutex(PBMap\Drawing\Mutex) Value = PBMap\TargetLocation\Longitude - ; UnlockMutex(PBMap\Drawing\Mutex) ProcedureReturn Value EndProcedure Procedure.i GetZoom() Protected Value.d - ; LockMutex(PBMap\Drawing\Mutex) Value = PBMap\Zoom - ; UnlockMutex(PBMap\Drawing\Mutex) ProcedureReturn Value EndProcedure @@ -1010,7 +925,7 @@ Module PBMap MouseX = GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseX) - PBMap\MoveStartingPoint\x MouseY = GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseY) - PBMap\MoveStartingPoint\y PBMap\Moving = #True - ;move Marker + ;Move marker If PBMap\EditMarkerIndex > -1 SelectElement(PBMap\Marker(), PBMap\EditMarkerIndex) LatLon2XY(@PBMap\Marker()\Location, @Marker) @@ -1021,29 +936,19 @@ Module PBMap ;New move values PBMap\Position\x - MouseX PBMap\Position\y - MouseY - - ;-*** Fill parameters and signal the drawing thread - ; LockMutex(PBMap\Drawing\Mutex) - ;PBMap tile position in tile.decimal PBMap\Drawing\Position\x = PBMap\Position\x / PBMap\TileSize PBMap\Drawing\Position\y = PBMap\Position\y / PBMap\TileSize PBMap\Drawing\PassNb = 1 XY2LatLon(@PBMap\Drawing, @PBMap\TargetLocation) - ;If CallBackLocation send Location to function If PBMap\CallBackLocation > 0 CallFunctionFast(PBMap\CallBackLocation, @PBMap\TargetLocation) EndIf - ; UnlockMutex(PBMap\Drawing\Mutex) EndIf - ;Start drawing - ;SignalSemaphore(PBMap\Drawing\Semaphore) - DrawingThread() - ;- *** + Drawing() PBMap\MoveStartingPoint\x = GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseX) PBMap\MoveStartingPoint\y = GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseY) - ; DrawingThread() EndIf Case #PB_EventType_LeftButtonUp PBMap\Moving = #False @@ -1051,16 +956,14 @@ Module PBMap If PBMap\EditMarkerIndex > -1 PBMap\EditMarkerIndex = -1 Else ;Move Map - ;LockMutex(PBMap\Drawing\Mutex) PBMap\Drawing\Position\x = PBMap\Position\x / PBMap\TileSize PBMap\Drawing\Position\y = PBMap\Position\y / PBMap\TileSize MyDebug("PBMap\Drawing\Position\x " + Str(PBMap\Drawing\Position\x) + " ; PBMap\Drawing\Position\y " + Str(PBMap\Drawing\Position\y) ) XY2LatLon(@PBMap\Drawing, @PBMap\TargetLocation) - ; UnlockMutex(PBMap\Drawing\Mutex) - DrawingThread() + Drawing() EndIf Case #PB_MAP_REDRAW - DrawingThread() + Drawing() EndSelect EndSelect EndSelect @@ -1140,7 +1043,6 @@ CompilerIf #PB_Compiler_IsMainFile EndProcedure ;- MAIN TEST - OpenConsole() If OpenWindow(#Window_0, 260, 225, 700, 571, "PBMap", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered | #PB_Window_SizeGadget) LoadFont(0, "Arial", 12) @@ -1210,10 +1112,10 @@ CompilerIf #PB_Compiler_IsMainFile CompilerEndIf ; IDE Options = PureBasic 5.42 LTS (Windows - x86) -; ExecutableFormat = Console -; CursorPosition = 333 -; FirstLine = 331 +; CursorPosition = 272 +; FirstLine = 262 ; Folding = --------- ; EnableUnicode ; EnableThread -; EnableXP \ No newline at end of file +; EnableXP +; DisableDebugger \ No newline at end of file From bd805db44a8665a05f2de83d7b2ca16e3c14e8ae Mon Sep 17 00:00:00 2001 From: djes Date: Fri, 26 Aug 2016 14:00:16 +0200 Subject: [PATCH 10/62] Re-added wheelmouse support and other fixes --- PBMap.pb | 77 +++++++++++++++++++++++++++++++++++++++++++++++--------- 1 file changed, 65 insertions(+), 12 deletions(-) diff --git a/PBMap.pb b/PBMap.pb index 0bc78e5..53b6e38 100644 --- a/PBMap.pb +++ b/PBMap.pb @@ -33,6 +33,7 @@ DeclareModule PBMap ;-Proxy ON/OFF Global Proxy = #False Declare InitPBMap(window) + Declare SetMapServer(ServerURL.s = "http://tile.openstreetmap.org/", TileSize = 256, ZoomMin = 0, ZoomMax = 18) Declare MapGadget(Gadget.i, X.i, Y.i, Width.i, Height.i) Declare Event(Event.l) Declare SetLocation(latitude.d, longitude.d, zoom = 15, mode.i = #PB_Absolute) @@ -40,6 +41,7 @@ DeclareModule PBMap Declare SetZoom(Zoom.i, mode.i = #PB_Relative) Declare ZoomToArea() Declare SetCallBackLocation(*CallBackLocation) + Declare SetCallBackMainPointer(CallBackMainPointer.i) Declare LoadGpxFile(file.s); Declare AddMarker(Latitude.d,Longitude.d,color.l=-1, CallBackPointer.i = -1) Declare Quit() @@ -87,13 +89,11 @@ Module PBMap PBMapTileX.i PBMapTileY.i PBMapZoom.i - Mutex.i TargetLocation.Location CenterX.i CenterY.i DeltaX.i DeltaY.i - Semaphore.i Dirty.i PassNB.i End.i @@ -273,8 +273,6 @@ Module PBMap PBMap\TileSize = 256 PBMap\Dirty = #False PBMap\TileThreadMutex = CreateMutex() - PBMap\Drawing\Mutex = CreateMutex() - PBMap\Drawing\Semaphore = CreateSemaphore() PBMap\EditMarkerIndex = -1 ;Initialised with "no marker selected" PBMap\Font = LoadFont(#PB_Any, "Arial", 20, #PB_Font_Bold) PBMap\Window = window @@ -307,6 +305,13 @@ Module PBMap LoadingImageCreation() EndProcedure + Procedure SetMapServer(ServerURL.s = "http://tile.openstreetmap.org/", TileSize = 256, ZoomMin = 0, ZoomMax = 18) + PBMap\ServerURL = ServerURL + PBMap\ZoomMin = ZoomMin + PBMap\ZoomMax = ZoomMax + PBMap\TileSize = TileSize + EndProcedure + Procedure Quit() PBMap\Drawing\End = #True ;Wait for loading threads to finish nicely. Passed 2 seconds, kills them. @@ -343,10 +348,10 @@ Module PBMap Procedure MapGadget(Gadget.i, X.i, Y.i, Width.i, Height.i) If Gadget = #PB_Any - PBMap\Gadget = CanvasGadget(PBMap\Gadget, X, Y, Width, Height) + PBMap\Gadget = CanvasGadget(PBMap\Gadget, X, Y, Width, Height, #PB_Canvas_Keyboard) ;#PB_Canvas_Keyboard has to be set for mousewheel to work on windows Else PBMap\Gadget = Gadget - CanvasGadget(PBMap\Gadget, X, Y, Width, Height) + CanvasGadget(PBMap\Gadget, X, Y, Width, Height, #PB_Canvas_Keyboard) EndIf EndProcedure @@ -874,6 +879,40 @@ Module PBMap PBMap\CallBackMainPointer = CallBackMainPointer EndProcedure + ;Zoom on x, y position relative to the canvas gadget + Procedure SetZoomOnPosition(x, y, zoom) + Protected MouseX.d, MouseY.d + Protected OldPx.d, OldPy.d, OldMx.d, OldMy.d + ;Fast and dirty code + OldPx = PBMap\Position\x : OldPy = PBMap\Position\y + OldMx = OldPx + GadgetWidth(PBMap\Gadget) / 2 - x + OldMy = OldPy + GadgetHeight(PBMap\Gadget) / 2 - y + PBMap\Zoom = PBMap\Zoom + zoom + If PBMap\Zoom > PBMap\ZoomMax : PBMap\Zoom = PBMap\ZoomMax : EndIf + If PBMap\Zoom < PBMap\ZoomMin : PBMap\Zoom = PBMap\ZoomMin : EndIf + ;Centered Zoom + LatLon2XY(@PBMap\TargetLocation, @PBMap\Drawing) + ;Convert X, Y in tile.decimal into real pixels + PBMap\Position\x = PBMap\Drawing\Position\x * PBMap\TileSize + PBMap\Position\y = PBMap\Drawing\Position\y * PBMap\TileSize + MouseX = PBMap\Position\x + GadgetWidth(PBMap\Gadget) / 2 - x + MouseY = PBMap\Position\y + GadgetHeight(PBMap\Gadget) / 2 - y + ;Cross-multiply to get the new center + PBMap\Position\x = (OldPx * MouseX) / OldMx + PBMap\Position\y = (OldPy * MouseY) / OldMy + ;PBMap tile position in tile.decimal + PBMap\Drawing\Position\x = PBMap\Position\x / PBMap\TileSize + PBMap\Drawing\Position\y = PBMap\Position\y / PBMap\TileSize + PBMap\Drawing\PassNb = 1 + XY2LatLon(@PBMap\Drawing, @PBMap\TargetLocation) + ;Start drawing + Drawing() + ;If CallBackLocation send Location to function + If PBMap\CallBackLocation > 0 + CallFunctionFast(PBMap\CallBackLocation, @PBMap\TargetLocation) + EndIf + EndProcedure + Procedure.d GetLatitude() Protected Value.d Value = PBMap\TargetLocation\Latitude @@ -903,7 +942,15 @@ Module PBMap Gadget = EventGadget() Select Gadget Case PBMap\Gadget - Select EventType() + Select EventType() + Case #PB_EventType_MouseWheel + If PBMap\Options\WheelMouseRelative + ;Relative zoom (centered on the mouse) + SetZoomOnPosition(GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseX), GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseY), GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_WheelDelta)) + Else + ;Absolute zoom (centered on the center of the map) + SetZoom(GetGadgetAttribute(PBMap\Gadget,#PB_Canvas_WheelDelta), #PB_Relative) + EndIf Case #PB_EventType_LeftButtonDown ;Check if we select a marker MouseX = PBMap\Position\x - GadgetWidth(PBMap\Gadget) / 2 + GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseX) @@ -1023,6 +1070,11 @@ CompilerIf #PB_Compiler_IsMainFile FillPath(#PB_Path_Preserve):VectorSourceColor(RGBA(0, 0, 0, 255)):StrokePath(1) EndProcedure + Procedure MainPointer(x.i, y.i) + VectorSourceColor(RGBA(255, 255,255, 255)) : AddPathCircle(x, y,32) : StrokePath(1) + VectorSourceColor(RGBA(0, 0, 0, 255)) : AddPathCircle(x, y, 29):StrokePath(2) + EndProcedure + Procedure ResizeAll() ResizeGadget(#Map,10,10,WindowWidth(#Window_0)-198,WindowHeight(#Window_0)-59) ResizeGadget(#Text_1,WindowWidth(#Window_0)-170,#PB_Ignore,#PB_Ignore,#PB_Ignore) @@ -1069,6 +1121,7 @@ CompilerIf #PB_Compiler_IsMainFile ;Our main gadget PBMap::InitPBMap(#Window_0) PBMap::MapGadget(#Map, 10, 10, 512, 512) + PBMap::SetCallBackMainPointer(@MainPointer()) ;To change the Main Pointer PBMap::SetCallBackLocation(@UpdateLocation()) PBMap::SetLocation(-36.8485,174.7633,10) ;PBMap::AddMarker(49.0446828398, 2.0349812508, -1, @MyPointer()) @@ -1094,10 +1147,10 @@ CompilerIf #PB_Compiler_IsMainFile Case #Button_5 PBMap::SetZoom( - 1) Case #Gdt_LoadGpx - PBMap::LoadGpxFile(OpenFileRequester("Choisissez un fichier � charger", "", "*.gpx", 0)) - PBMap::ZoomToArea() ; <-To center the view, and to viex all the track + PBMap::LoadGpxFile(OpenFileRequester("Choose a file to load", "", "*.gpx", 0)) + PBMap::ZoomToArea() ; <-To center the view, and zoom on the tracks Case #Gdt_AddMarker - PBMap:: AddMarker(ValD(GetGadgetText(#String_0)),ValD(GetGadgetText(#String_1)),RGBA(Random(255),Random(255),Random(255),255)) + PBMap:: AddMarker(ValD(GetGadgetText(#String_0)), ValD(GetGadgetText(#String_1)), RGBA(Random(255), Random(255), Random(255),255)) EndSelect Case #PB_Event_SizeWindow ResizeAll() @@ -1112,8 +1165,8 @@ CompilerIf #PB_Compiler_IsMainFile CompilerEndIf ; IDE Options = PureBasic 5.42 LTS (Windows - x86) -; CursorPosition = 272 -; FirstLine = 262 +; CursorPosition = 362 +; FirstLine = 339 ; Folding = --------- ; EnableUnicode ; EnableThread From eca7a01c84b0ef899343fc7c0dd63fc9281932be Mon Sep 17 00:00:00 2001 From: djes Date: Mon, 29 Aug 2016 09:31:18 +0200 Subject: [PATCH 11/62] New key, cache fix, layering, scale --- PBMap.pb | 188 ++++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 130 insertions(+), 58 deletions(-) diff --git a/PBMap.pb b/PBMap.pb index 53b6e38..a3e75e3 100644 --- a/PBMap.pb +++ b/PBMap.pb @@ -2,7 +2,7 @@ ; Program: PBMap ; Description: Permits the use of tiled maps like ; OpenStreetMap in a handy PureBASIC module -; Author: Thyphoon And Djes +; Author: Thyphoon, Djes And Idle ; Date: Mai 17, 2016 ; License: Free, unrestricted, credit appreciated ; but not required. @@ -12,7 +12,7 @@ ; (see also Proxy Details) ;************************************************************** -#Red = 255 +;#Red = 255 CompilerIf #PB_Compiler_Thread = #False MessageRequester("Warning !!","You must enable ThreadSafe support in compiler options",#PB_MessageRequester_Ok ) @@ -28,10 +28,14 @@ UsePNGImageEncoder() DeclareModule PBMap #Red = 255 ;-Show debug infos - Global Verbose = 0 + Global Verbose = 1 Global MyDebugLevel = 3 ;-Proxy ON/OFF Global Proxy = #False + + #SCALE_NAUTICAL = 1 + #SCALE_KM = 0 + Declare InitPBMap(window) Declare SetMapServer(ServerURL.s = "http://tile.openstreetmap.org/", TileSize = 256, ZoomMin = 0, ZoomMax = 18) Declare MapGadget(Gadget.i, X.i, Y.i, Width.i, Height.i) @@ -42,6 +46,7 @@ DeclareModule PBMap Declare ZoomToArea() Declare SetCallBackLocation(*CallBackLocation) Declare SetCallBackMainPointer(CallBackMainPointer.i) + Declare SetMapScaleUnit(ScaleUnit=PBMAP::#SCALE_KM) Declare LoadGpxFile(file.s); Declare AddMarker(Latitude.d,Longitude.d,color.l=-1, CallBackPointer.i = -1) Declare Quit() @@ -50,6 +55,7 @@ DeclareModule PBMap Declare.d GetLatitude() Declare.d GetLongitude() Declare.i GetZoom() + EndDeclareModule Module PBMap @@ -81,6 +87,7 @@ Module PBMap key.s CacheFile.s GetImageThread.i + layer.i EndStructure Structure DrawingParameters @@ -111,7 +118,7 @@ Module PBMap EndStructure Structure TileMemCach - Map Images.ImgMemCach() + Map Images.ImgMemCach(4096) EndStructure Structure Marker @@ -122,6 +129,7 @@ Module PBMap Structure Option WheelMouseRelative.i + ScaleUnit.i ; Scale unit to use for measurements EndStructure ;-PBMap Structure @@ -138,7 +146,9 @@ Module PBMap Position.PixelPosition ; Actual focus point coords in pixels (global) MoveStartingPoint.PixelPosition ; Start mouse position coords when dragging the map ; - ServerURL.s ; Web URL ex: http://tile.openstreetmap.org/ + Array ServerURL.s(0) ; Web URL ex: http://tile.openstreetmap.org/ + NumberOfMapLayers.i ; The number of map tile layers; + ZoomMin.i ; Min Zoom supported by server ZoomMax.i ; Max Zoom supported by server Zoom.i ; Current zoom @@ -266,7 +276,6 @@ Module PBMap OpenConsole() EndIf PBMap\HDDCachePath = GetTemporaryDirectory() - PBMap\ServerURL = "http://tile.openstreetmap.org/" PBMap\ZoomMin = 0 PBMap\ZoomMax = 18 PBMap\MoveStartingPoint\x = - 1 @@ -277,6 +286,8 @@ Module PBMap PBMap\Font = LoadFont(#PB_Any, "Arial", 20, #PB_Font_Bold) PBMap\Window = window PBMap\Options\WheelMouseRelative = #True + SetMapServer("http://tile.openstreetmap.org/") + ;-Preferences ;Use this to create and customize your preferences file for the first time ; CreatePreferences(GetHomeDirectory() + "PBMap.prefs") @@ -306,11 +317,14 @@ Module PBMap EndProcedure Procedure SetMapServer(ServerURL.s = "http://tile.openstreetmap.org/", TileSize = 256, ZoomMin = 0, ZoomMax = 18) - PBMap\ServerURL = ServerURL + PBMAP\NumberOfMapLayers + 1 + ReDim PBMap\ServerURL(PBMAP\NumberOfMapLayers) + PBMap\ServerURL(PBMAP\NumberOfMapLayers-1) = ServerURL PBMap\ZoomMin = ZoomMin PBMap\ZoomMax = ZoomMax PBMap\TileSize = TileSize EndProcedure + Procedure Quit() PBMap\Drawing\End = #True @@ -448,40 +462,46 @@ Module PBMap Procedure.i GetTileFromHDD(CacheFile.s) Protected nImage.i - Debug "Loading image " + CacheFile + " ; Size : " + Str(FileSize(CacheFile)) + ; Debug "Loading image " + CacheFile + " ; Size : " + Str(FileSize(CacheFile)) If FileSize(CacheFile) > 0 nImage = LoadImage(#PB_Any, CacheFile) If IsImage(nImage) - Debug "Success loading " + CacheFile + " as nImage " + Str(nImage) + ;Debug "Success loading " + CacheFile + " as nImage " + Str(nImage) MyDebug("Success loading " + CacheFile + " as nImage " + Str(nImage), 3) ProcedureReturn nImage Else - Debug "Failed loading " + CacheFile + " as nImage " + Str(nImage) + " -> not an image !" + ; Debug "Failed loading " + CacheFile + " as nImage " + Str(nImage) + " -> not an image !" MyDebug("Failed loading " + CacheFile + " as nImage " + Str(nImage) + " -> not an image !", 3) EndIf Else - Debug "Failed loading " + CacheFile + " -> Size <= 0" + ; Debug "Failed loading " + CacheFile + " -> Size <= 0" MyDebug("Failed loading " + CacheFile + " -> Size <= 0", 3) EndIf ProcedureReturn -1 EndProcedure Procedure.i GetLocalTile(key.s, CacheFile.s) + Protected timg MyDebug("Check if we have this image in memory", 3) If FindMapElement(PBMap\MemCache\Images(), key) MyDebug("Key : " + key + " found !", 3) ProcedureReturn PBMap\MemCache\Images()\nImage Else MyDebug("Key : " + key + " Try HDD!") - ProcedureReturn GetTileFromHDD(CacheFile.s) + timg = GetTileFromHDD(CacheFile.s) + If timg <> -1 + AddMapElement(PBMap\MemCache\Images(),key) + PBMap\MemCache\Images()\nImage = timg + EndIf + ProcedureReturn timg EndIf EndProcedure - Procedure.i GetTileFromWeb(Zoom.i, XTile.i, YTile.i, CacheFile.s) + Procedure.i GetTileFromWeb(Zoom.i, XTile.i, YTile.i, CacheFile.s,layer.i) Protected *Buffer Protected nImage.i = -1 - Protected FileHandle.i - Protected TileURL.s = PBMap\ServerURL + Str(Zoom) + "/" + Str(XTile) + "/" + Str(YTile) + ".png" + Protected FileHandle.i,timg + Protected TileURL.s = PBMap\ServerURL(layer) + Str(Zoom) + "/" + Str(XTile) + "/" + Str(YTile) + ".png" MyDebug("Check if we have this image on Web", 3) If Proxy FileHandle = CurlReceiveHTTPToFile(TileURL, CacheFile, ProxyURL$, ProxyPort$, ProxyUser$, ProxyPassword$) @@ -496,17 +516,26 @@ Module PBMap nImage = CatchImage(#PB_Any, *Buffer, MemorySize(*Buffer)) If IsImage(nImage) MyDebug("Load from web " + TileURL + " as Tile nb " + nImage, 3) - Debug "url: " + TileURL - Debug "cache file: " + CacheFile - SaveImage(nImage, CacheFile, #PB_ImagePlugin_PNG) - FreeMemory(*Buffer) + ; Debug "url: " + TileURL + ; Debug "cache file: " + CacheFile + ; timg = LoadImage(#PB_Any,CacheFile) + ; If timg + ; StartDrawing(ImageOutput(timg)) + ; DrawImage(ImageID(nimage)) + ; StopDrawing() + ; SaveImage(timg, CacheFile, #PB_ImagePlugin_PNG) + ; FreeImage(timg) + ; Else + SaveImage(nImage, CacheFile, #PB_ImagePlugin_PNG) + FreeMemory(*Buffer) + ; EndIf Else MyDebug("Can't catch image " + TileURL, 3) nImage = -1 ;ShowMemoryViewer(*Buffer, MemorySize(*Buffer)) EndIf Else - Debug("ReceiveHTTPMemory's buffer is empty") + ; Debug("ReceiveHTTPMemory's buffer is empty") MyDebug("ReceiveHTTPMemory's buffer is empty", 3) EndIf EndIf @@ -515,20 +544,20 @@ Module PBMap Procedure GetImageThread(*Tile.Tile) Protected nImage.i = -1 - nImage = GetTileFromWeb(*Tile\PBMapZoom, *Tile\PBMapTileX, *Tile\PBMapTileY, *Tile\CacheFile) + nImage = GetTileFromWeb(*Tile\PBMapZoom, *Tile\PBMapTileX, *Tile\PBMapTileY, *Tile\CacheFile,*tile\layer) If nImage <> -1 LockMutex(PBMap\TileThreadMutex) PBMap\MemCache\Images(*Tile\key)\nImage = nImage UnlockMutex(PBMap\TileThreadMutex) MyDebug("Image nb " + Str(nImage) + " successfully added to mem cache") MyDebug("With the following key : " + *Tile\key) - Else + *Tile\nImage = nImage + PostEvent(#PB_Event_Gadget, PBMap\window,PBmap\Gadget, #PB_MAP_REDRAW, *Tile) + Else MyDebug("Error GetImageThread procedure, image not loaded - " + *Tile\key) - nImage = -1 - EndIf - ;Define this tile image nb - *Tile\nImage = nImage - PostEvent(#PB_Event_Gadget, PBMap\window,PBmap\Gadget, #PB_MAP_REDRAW, *Tile) + ;nImage = -1 + EndIf + EndProcedure Procedure DrawTile(*Tile.Tile) @@ -548,42 +577,52 @@ Module PBMap MyDebug(" at coords " + Str(x) + "," + Str(y)) EndProcedure - Procedure DrawTiles(*Drawing.DrawingParameters) + Procedure DrawTiles(*Drawing.DrawingParameters,layer.i,alpha.i=255) ;DisableDebugger - Protected x.i, y.i + Protected x.i, y.i,kq.q Protected tx = Int(*Drawing\Position\x) ;Don't forget the Int() ! Protected ty = Int(*Drawing\Position\y) Protected nx = *Drawing\CenterX / PBMap\TileSize ;How many tiles around the point Protected ny = *Drawing\CenterY / PBMap\TileSize - Protected px, py, img, key.s, CacheFile.s + Protected px, py, img, tilex,tiley, key.s, CacheFile.s MyDebug("Drawing tiles") For y = - ny - 1 To ny + 1 For x = - nx - 1 To nx + 1 px = *Drawing\CenterX + x * PBMap\TileSize - *Drawing\DeltaX py = *Drawing\CenterY + y * PBMap\TileSize - *Drawing\DeltaY - CacheFile = PBMap\HDDCachePath + "PBMap_" + Str(PBMap\Zoom) + "_" + Str(tx + x) + "_" + Str(ty + y) + ".png" - key = "Z" + RSet(Str(PBMap\Zoom), 4, "0") + "X" + RSet(Str(tx + x), 8, "0") + "Y" + RSet(Str(ty + y), 8, "0") ;Unique identifier + tilex = ((tx+x) % (1<< PBMap\Zoom)) + tiley = ty+y + kq = layer | (pbmap\zoom << 8) | (tilex << 16) | (tiley << 36) + key = Str(kq) + CacheFile = PBMap\HDDCachePath + key + ".png" + + img = GetLocalTile(key, CacheFile) If img <> -1 MovePathCursor(px, py) - DrawVectorImage(ImageID(img)) + DrawVectorImage(ImageID(img),alpha) Else MovePathCursor(px, py) - DrawVectorImage(ImageID(PBMap\ImgLoading)) + DrawVectorImage(ImageID(PBMap\ImgLoading),alpha) Protected *NewTile.Tile = AllocateMemory(SizeOf(Tile)) If *NewTile With *NewTile ;Keep a track of tiles (especially to free memory) + ;TODO : not sure if it really needs a mutex here, i'm still trying to find where the white tile issue is coming from + ;a tile download is either getting clobbered or timing out or getting kicked and it results in a corrupted png file on linux + LockMutex(PBMap\TileThreadMutex) AddElement(PBMap\TilesThreads()) PBMap\TilesThreads()\Tile = *NewTile + UnlockMutex(PBMap\TileThreadMutex) ;New tile parameters - \Position\x = px ;*Drawing\CenterX + x * PBMap\TileSize - *Drawing\DeltaX - \Position\y = py ;*Drawing\CenterY + y * PBMap\TileSize - *Drawing\DeltaY - \PBMapTileX = tx + x - \PBMapTileY = ty + y + \Position\x = px + \Position\y = py + \PBMapTileX = tilex + \PBMapTileY = tiley \PBMapZoom = PBMap\Zoom \key = key \CacheFile = CacheFile + \layer = layer LockMutex(PBMap\TileThreadMutex) AddMapElement(PBMap\MemCache\Images(), \key) ;Add the image to the cache, once in this loop PBMap\MemCache\Images()\nImage = PBMap\ImgLoading @@ -596,9 +635,13 @@ Module PBMap MyDebug(" Error, can't create a new tile") Break 2 EndIf - EndIf + EndIf + Next - Next + + Next + + ;Free tile memory ;TODO : maybe get out this proc from drawtiles in a special "free ressources" task ForEach PBMap\TilesThreads() @@ -656,15 +699,29 @@ Module PBMap EndIf EndProcedure - Procedure DrawScale(*Drawing.DrawingParameters) + Procedure DrawScale(*Drawing.DrawingParameters,x,y,alpha=80) ;TODO Add Option and function to display Scale on Map - Protected Scale.d= 40075*Cos(Radian(PBMap\TargetLocation\Latitude))/Pow(2,PBMap\Zoom) - VectorFont(FontID(PBMap\Font), 30) - VectorSourceColor(RGBA(0, 0, 0, 80)) - MovePathCursor(50,50) - DrawVectorText(StrD(Scale)) + Protected sunit.s + Protected Scale.d= 40075*Cos(Radian(PBMap\TargetLocation\Latitude))/Pow(2,PBMap\Zoom) / 2 + + Select PBMap\Options\ScaleUnit + Case #SCALE_Nautical + Scale * 0.539957 + sunit = " Nm" + Case #SCALE_KM; + sunit = " Km" + EndSelect + + VectorFont(FontID(PBMap\Font), 10) + VectorSourceColor(RGBA(0, 0, 0,alpha)) + MovePathCursor(x,y) + DrawVectorText(StrD(Scale,3)+sunit) + MovePathCursor(x,y+12) + AddPathLine(x+128,y+10) + StrokePath(1) + EndProcedure - + Procedure TrackPointer(x.i, y.i,dist.l) Protected color.l color=RGBA(0, 0, 0, 255) @@ -755,7 +812,7 @@ Module PBMap ;-*** Main drawing Procedure Drawing() Protected *Drawing.DrawingParameters = @PBMap\Drawing - Protected Px.d, Py.d + Protected Px.d, Py.d,a ;Precalc some values *Drawing\CenterX = GadgetWidth(PBMap\Gadget) / 2 *Drawing\CenterY = GadgetHeight(PBMap\Gadget) / 2 @@ -767,7 +824,11 @@ Module PBMap *Drawing\TargetLocation\Longitude = PBMap\TargetLocation\Longitude ;Main drawing stuff StartVectorDrawing(CanvasVectorOutput(PBMap\Gadget)) - DrawTiles(*Drawing) + ;TODO add in layers of tiles ;this way we can cache them as 0 base 1.n layers + ;such as for openseamap tiles which are overlaid. not that efficent from here though. + For a = 0 To PBMap\NumberOfMapLayers-1 + DrawTiles(*Drawing,a) + Next DrawTrack(*Drawing) DrawMarker(*Drawing) DrawPointer(*Drawing) @@ -778,6 +839,10 @@ Module PBMap DrawVectorText(Str(MapSize(PBMap\MemCache\Images()))) MovePathCursor(50,80) DrawVectorText(Str(ListSize(PBMap\TilesThreads()))) + + ;If PBMap\Options\ShowScale + DrawScale(*Drawing,10,GadgetHeight(PBMAP\Gadget)-20,192) + ;EndIf StopVectorDrawing() EndProcedure @@ -854,7 +919,7 @@ Module PBMap Procedure SetZoom(Zoom.i, mode.i = #PB_Relative) Select mode Case #PB_Relative - PBMap\Zoom = PBMap\Zoom + zoom + PBMap\Zoom = PBMap\Zoom + zoom Case #PB_Absolute PBMap\Zoom = zoom EndSelect @@ -879,6 +944,11 @@ Module PBMap PBMap\CallBackMainPointer = CallBackMainPointer EndProcedure + Procedure SetMapScaleUnit(ScaleUnit.i = PBMAP::#SCALE_KM) + PBMap\Options\ScaleUnit = ScaleUnit + Drawing() + EndProcedure + ;Zoom on x, y position relative to the canvas gadget Procedure SetZoomOnPosition(x, y, zoom) Protected MouseX.d, MouseY.d @@ -1094,6 +1164,7 @@ CompilerIf #PB_Compiler_IsMainFile PBMap::Refresh() EndProcedure + OpenConsole() ;- MAIN TEST If OpenWindow(#Window_0, 260, 225, 700, 571, "PBMap", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered | #PB_Window_SizeGadget) @@ -1123,7 +1194,9 @@ CompilerIf #PB_Compiler_IsMainFile PBMap::MapGadget(#Map, 10, 10, 512, 512) PBMap::SetCallBackMainPointer(@MainPointer()) ;To change the Main Pointer PBMap::SetCallBackLocation(@UpdateLocation()) - PBMap::SetLocation(-36.8485,174.7633,10) + PBMap::SetLocation(-36.81148,175.08634,12) + PBMap::SetMapServer("http://t1.openseamap.org/seamark/") ;add a special osm overlay map + PBMAP::SetMapScaleUnit(PBMAP::#SCALE_NAUTICAL) ;PBMap::AddMarker(49.0446828398, 2.0349812508, -1, @MyPointer()) Repeat @@ -1163,12 +1236,11 @@ CompilerIf #PB_Compiler_IsMainFile CloseConsole() CompilerEndIf - -; IDE Options = PureBasic 5.42 LTS (Windows - x86) -; CursorPosition = 362 -; FirstLine = 339 -; Folding = --------- -; EnableUnicode +; IDE Options = PureBasic 5.50 (Windows - x64) +; CursorPosition = 1219 +; FirstLine = 1193 +; Folding = ---------- ; EnableThread ; EnableXP -; DisableDebugger \ No newline at end of file +; DisableDebugger +; EnableUnicode \ No newline at end of file From 31d763455fdf061e0a4a63c70b3f02e898e23fd7 Mon Sep 17 00:00:00 2001 From: djes Date: Mon, 29 Aug 2016 11:52:31 +0200 Subject: [PATCH 12/62] Code cleaning, event handling work --- PBMap.pb | 418 +++++++++++++++++++++++++++---------------------------- 1 file changed, 202 insertions(+), 216 deletions(-) diff --git a/PBMap.pb b/PBMap.pb index a3e75e3..021903e 100644 --- a/PBMap.pb +++ b/PBMap.pb @@ -31,7 +31,7 @@ DeclareModule PBMap Global Verbose = 1 Global MyDebugLevel = 3 ;-Proxy ON/OFF - Global Proxy = #False + Global Proxy = #True #SCALE_NAUTICAL = 1 #SCALE_KM = 0 @@ -39,7 +39,6 @@ DeclareModule PBMap Declare InitPBMap(window) Declare SetMapServer(ServerURL.s = "http://tile.openstreetmap.org/", TileSize = 256, ZoomMin = 0, ZoomMax = 18) Declare MapGadget(Gadget.i, X.i, Y.i, Width.i, Height.i) - Declare Event(Event.l) Declare SetLocation(latitude.d, longitude.d, zoom = 15, mode.i = #PB_Absolute) Declare Drawing() Declare SetZoom(Zoom.i, mode.i = #PB_Relative) @@ -55,7 +54,6 @@ DeclareModule PBMap Declare.d GetLatitude() Declare.d GetLongitude() Declare.i GetZoom() - EndDeclareModule Module PBMap @@ -87,7 +85,7 @@ Module PBMap key.s CacheFile.s GetImageThread.i - layer.i + Layer.i EndStructure Structure DrawingParameters @@ -173,6 +171,7 @@ Module PBMap EndStructure #PB_MAP_REDRAW = #PB_EventType_FirstCustomValue + 1 + #PB_MAP_RETRY = #PB_EventType_FirstCustomValue + 2 ;-Global variables Global PBMap.PBMap, Null.i @@ -204,8 +203,8 @@ Module PBMap Procedure.i CurlReceiveHTTPToFile(URL$, DestFileName$, ProxyURL$="", ProxyPort$="", ProxyUser$="", ProxyPassword$="") Protected *Buffer, curl.i, Timeout.i, res.i Protected FileHandle.i - MyDebug("ReceiveHTTPToFile from " + URL$ + " " + ProxyURL$ + ProxyPort$ + ProxyUser$, 3) - MyDebug(" to file : " + DestFileName$, 3) + MyDebug("CurlReceiveHTTPToFile from " + URL$ + " " + ProxyURL$ + " " + ProxyPort$ + " " + ProxyUser$, 4) + MyDebug(" to file : " + DestFileName$, 4) FileHandle = CreateFile(#PB_Any, DestFileName$) If FileHandle And Len(URL$) curl = curl_easy_init() @@ -238,11 +237,11 @@ Module PBMap curl_easy_setopt(curl, #CURLOPT_WRITEFUNCTION, @ReceiveHTTPWriteToFileFunction()) res = curl_easy_perform(curl) If res <> #CURLE_OK - MyDebug("CURL problem", 3) + MyDebug("CURL problem", 4) EndIf curl_easy_cleanup(curl) Else - MyDebug("Can't init CURL", 3) + MyDebug("Can't init CURL", 4) EndIf CloseFile(FileHandle) ProcedureReturn FileSize(DestFileName$) @@ -270,7 +269,7 @@ Module PBMap EndIf EndProcedure - Procedure InitPBMap(window) + Procedure InitPBMap(Window) Protected Result.i If Verbose OpenConsole() @@ -284,7 +283,7 @@ Module PBMap PBMap\TileThreadMutex = CreateMutex() PBMap\EditMarkerIndex = -1 ;Initialised with "no marker selected" PBMap\Font = LoadFont(#PB_Any, "Arial", 20, #PB_Font_Bold) - PBMap\Window = window + PBMap\Window = Window PBMap\Options\WheelMouseRelative = #True SetMapServer("http://tile.openstreetmap.org/") @@ -324,7 +323,6 @@ Module PBMap PBMap\ZoomMax = ZoomMax PBMap\TileSize = TileSize EndProcedure - Procedure Quit() PBMap\Drawing\End = #True @@ -359,16 +357,7 @@ Module PBMap Result = Sqr( (x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2)) ProcedureReturn Result EndProcedure - - Procedure MapGadget(Gadget.i, X.i, Y.i, Width.i, Height.i) - If Gadget = #PB_Any - PBMap\Gadget = CanvasGadget(PBMap\Gadget, X, Y, Width, Height, #PB_Canvas_Keyboard) ;#PB_Canvas_Keyboard has to be set for mousewheel to work on windows - Else - PBMap\Gadget = Gadget - CanvasGadget(PBMap\Gadget, X, Y, Width, Height, #PB_Canvas_Keyboard) - EndIf - EndProcedure - + ;*** Converts coords to tile.decimal ;Warning, structures used in parameters are not tested Procedure LatLon2XY(*Location.Location, *Coords.Position) @@ -460,83 +449,92 @@ Module PBMap EndIf EndProcedure + Procedure LoadErrorHandler() + MessageRequester("Error", "") + EndProcedure + Procedure.i GetTileFromHDD(CacheFile.s) Protected nImage.i - ; Debug "Loading image " + CacheFile + " ; Size : " + Str(FileSize(CacheFile)) If FileSize(CacheFile) > 0 + OnErrorCall(@LoadErrorHandler()) nImage = LoadImage(#PB_Any, CacheFile) + OnErrorDefault() If IsImage(nImage) - ;Debug "Success loading " + CacheFile + " as nImage " + Str(nImage) MyDebug("Success loading " + CacheFile + " as nImage " + Str(nImage), 3) ProcedureReturn nImage Else - ; Debug "Failed loading " + CacheFile + " as nImage " + Str(nImage) + " -> not an image !" + MyDebug("Failed loading " + CacheFile + " as nImage " + Str(nImage) + " -> not an image !", 3) MyDebug("Failed loading " + CacheFile + " as nImage " + Str(nImage) + " -> not an image !", 3) EndIf Else - ; Debug "Failed loading " + CacheFile + " -> Size <= 0" MyDebug("Failed loading " + CacheFile + " -> Size <= 0", 3) EndIf ProcedureReturn -1 EndProcedure Procedure.i GetLocalTile(key.s, CacheFile.s) - Protected timg - MyDebug("Check if we have this image in memory", 3) + Protected timg = -1 If FindMapElement(PBMap\MemCache\Images(), key) - MyDebug("Key : " + key + " found !", 3) + MyDebug("Key : " + key + " found in memory cache!", 3) ProcedureReturn PBMap\MemCache\Images()\nImage Else - MyDebug("Key : " + key + " Try HDD!") + MyDebug("Trying to load from HDD " + CacheFile) timg = GetTileFromHDD(CacheFile.s) - If timg <> -1 - AddMapElement(PBMap\MemCache\Images(),key) - PBMap\MemCache\Images()\nImage = timg - EndIf - ProcedureReturn timg + If timg <> -1 + MyDebug("Key : " + key + " found on HDD") + LockMutex(PBMap\TileThreadMutex) + AddMapElement(PBMap\MemCache\Images(), key) + PBMap\MemCache\Images()\nImage = timg + UnlockMutex(PBMap\TileThreadMutex) + Else + MyDebug("Key : " + key + " not found") + EndIf + ProcedureReturn timg EndIf EndProcedure - Procedure.i GetTileFromWeb(Zoom.i, XTile.i, YTile.i, CacheFile.s,layer.i) + Procedure.i GetTileFromWeb(Zoom.i, XTile.i, YTile.i, CacheFile.s, Layer.i) Protected *Buffer Protected nImage.i = -1 - Protected FileHandle.i,timg - Protected TileURL.s = PBMap\ServerURL(layer) + Str(Zoom) + "/" + Str(XTile) + "/" + Str(YTile) + ".png" - MyDebug("Check if we have this image on Web", 3) + Protected FileSize.i, timg + Protected TileURL.s = PBMap\ServerURL(Layer) + Str(Zoom) + "/" + Str(XTile) + "/" + Str(YTile) + ".png" If Proxy - FileHandle = CurlReceiveHTTPToFile(TileURL, CacheFile, ProxyURL$, ProxyPort$, ProxyUser$, ProxyPassword$) - If FileHandle + FileSize = CurlReceiveHTTPToFile(TileURL, CacheFile, ProxyURL$, ProxyPort$, ProxyUser$, ProxyPassword$) + If FileSize > 0 + MyDebug("Loaded from web " + TileURL + " as CacheFile " + CacheFile, 3) nImage = GetTileFromHDD(CacheFile) Else - MyDebug("File " + TileURL + " not correctly received with Curl and proxy", 3) + MyDebug("Problem loading from web " + TileURL, 3) EndIf Else *Buffer = ReceiveHTTPMemory(TileURL) ;TODO to thread by using #PB_HTTP_Asynchronous If *Buffer nImage = CatchImage(#PB_Any, *Buffer, MemorySize(*Buffer)) If IsImage(nImage) - MyDebug("Load from web " + TileURL + " as Tile nb " + nImage, 3) - ; Debug "url: " + TileURL - ; Debug "cache file: " + CacheFile - ; timg = LoadImage(#PB_Any,CacheFile) - ; If timg - ; StartDrawing(ImageOutput(timg)) - ; DrawImage(ImageID(nimage)) - ; StopDrawing() - ; SaveImage(timg, CacheFile, #PB_ImagePlugin_PNG) - ; FreeImage(timg) - ; Else - SaveImage(nImage, CacheFile, #PB_ImagePlugin_PNG) - FreeMemory(*Buffer) - ; EndIf + ; Debug "url: " + TileURL + ; Debug "cache file: " + CacheFile + ; timg = LoadImage(#PB_Any,CacheFile) + ; If timg + ; StartDrawing(ImageOutput(timg)) + ; DrawImage(ImageID(nimage)) + ; StopDrawing() + ; SaveImage(timg, CacheFile, #PB_ImagePlugin_PNG) + ; FreeImage(timg) + ; Else + If SaveImage(nImage, CacheFile, #PB_ImagePlugin_PNG) + MyDebug("Loaded from web " + TileURL + " as CacheFile " + CacheFile, 3) + Else + MyDebug("Loaded from web " + TileURL + " but cannot save to CacheFile " + CacheFile, 3) + EndIf + FreeMemory(*Buffer) + ; EndIf Else - MyDebug("Can't catch image " + TileURL, 3) + MyDebug("Can't catch image loaded from web " + TileURL, 3) nImage = -1 ;ShowMemoryViewer(*Buffer, MemorySize(*Buffer)) EndIf Else - ; Debug("ReceiveHTTPMemory's buffer is empty") - MyDebug("ReceiveHTTPMemory's buffer is empty", 3) + MyDebug(" Problem loading from web " + TileURL, 3) EndIf EndIf ProcedureReturn nImage @@ -544,20 +542,19 @@ Module PBMap Procedure GetImageThread(*Tile.Tile) Protected nImage.i = -1 - nImage = GetTileFromWeb(*Tile\PBMapZoom, *Tile\PBMapTileX, *Tile\PBMapTileY, *Tile\CacheFile,*tile\layer) + nImage = GetTileFromWeb(*Tile\PBMapZoom, *Tile\PBMapTileX, *Tile\PBMapTileY, *Tile\CacheFile, *Tile\Layer) If nImage <> -1 LockMutex(PBMap\TileThreadMutex) + AddMapElement(PBMap\MemCache\Images(), *Tile\key) ;Add the image to the cache, once PBMap\MemCache\Images(*Tile\key)\nImage = nImage UnlockMutex(PBMap\TileThreadMutex) - MyDebug("Image nb " + Str(nImage) + " successfully added to mem cache") - MyDebug("With the following key : " + *Tile\key) + MyDebug("Image key : " + *Tile\key + " added in memory cache!", 3) *Tile\nImage = nImage - PostEvent(#PB_Event_Gadget, PBMap\window,PBmap\Gadget, #PB_MAP_REDRAW, *Tile) - Else - MyDebug("Error GetImageThread procedure, image not loaded - " + *Tile\key) - ;nImage = -1 - EndIf - + PostEvent(#PB_Event_Gadget, PBMap\Window, PBmap\Gadget, #PB_MAP_REDRAW, *Tile) ;If image is loaded from web, redraw + Else + PostEvent(#PB_Event_Gadget, PBMap\Window, PBmap\Gadget, #PB_MAP_RETRY, *Tile) ;If image is not loaded, retry + EndIf + EndProcedure Procedure DrawTile(*Tile.Tile) @@ -577,10 +574,10 @@ Module PBMap MyDebug(" at coords " + Str(x) + "," + Str(y)) EndProcedure - Procedure DrawTiles(*Drawing.DrawingParameters,layer.i,alpha.i=255) + Procedure DrawTiles(*Drawing.DrawingParameters, Layer.i, alpha.i=255) ;DisableDebugger Protected x.i, y.i,kq.q - Protected tx = Int(*Drawing\Position\x) ;Don't forget the Int() ! + Protected tx = Int(*Drawing\Position\x) ;Don't forget the Int() ! Protected ty = Int(*Drawing\Position\y) Protected nx = *Drawing\CenterX / PBMap\TileSize ;How many tiles around the point Protected ny = *Drawing\CenterY / PBMap\TileSize @@ -588,61 +585,53 @@ Module PBMap MyDebug("Drawing tiles") For y = - ny - 1 To ny + 1 For x = - nx - 1 To nx + 1 - px = *Drawing\CenterX + x * PBMap\TileSize - *Drawing\DeltaX - py = *Drawing\CenterY + y * PBMap\TileSize - *Drawing\DeltaY - tilex = ((tx+x) % (1<< PBMap\Zoom)) - tiley = ty+y - kq = layer | (pbmap\zoom << 8) | (tilex << 16) | (tiley << 36) - key = Str(kq) - CacheFile = PBMap\HDDCachePath + key + ".png" - - - img = GetLocalTile(key, CacheFile) - If img <> -1 - MovePathCursor(px, py) - DrawVectorImage(ImageID(img),alpha) - Else - MovePathCursor(px, py) - DrawVectorImage(ImageID(PBMap\ImgLoading),alpha) - Protected *NewTile.Tile = AllocateMemory(SizeOf(Tile)) - If *NewTile - With *NewTile - ;Keep a track of tiles (especially to free memory) - ;TODO : not sure if it really needs a mutex here, i'm still trying to find where the white tile issue is coming from - ;a tile download is either getting clobbered or timing out or getting kicked and it results in a corrupted png file on linux - LockMutex(PBMap\TileThreadMutex) - AddElement(PBMap\TilesThreads()) - PBMap\TilesThreads()\Tile = *NewTile - UnlockMutex(PBMap\TileThreadMutex) - ;New tile parameters - \Position\x = px - \Position\y = py - \PBMapTileX = tilex - \PBMapTileY = tiley - \PBMapZoom = PBMap\Zoom - \key = key - \CacheFile = CacheFile - \layer = layer - LockMutex(PBMap\TileThreadMutex) - AddMapElement(PBMap\MemCache\Images(), \key) ;Add the image to the cache, once in this loop - PBMap\MemCache\Images()\nImage = PBMap\ImgLoading - UnlockMutex(PBMap\TileThreadMutex) - \GetImageThread = CreateThread(@GetImageThread(), *NewTile) - PBMap\TilesThreads()\GetImageThread = \GetImageThread - myDebug(" Creating get image thread nb " + Str(\GetImageThread)) - EndWith - Else - MyDebug(" Error, can't create a new tile") - Break 2 - EndIf - EndIf - - Next - - Next + px = *Drawing\CenterX + x * PBMap\TileSize - *Drawing\DeltaX + py = *Drawing\CenterY + y * PBMap\TileSize - *Drawing\DeltaY + tilex = ((tx+x) % (1<< PBMap\Zoom)) + tiley = ty+y + kq = Layer | (pbmap\zoom << 8) | (tilex << 16) | (tiley << 36) + key = Str(kq) + CacheFile = PBMap\HDDCachePath + key + ".png" + + img = GetLocalTile(key, CacheFile) + If img <> -1 + MovePathCursor(px, py) + DrawVectorImage(ImageID(img), alpha) + Else + MovePathCursor(px, py) + DrawVectorImage(ImageID(PBMap\ImgLoading), alpha) + Protected *NewTile.Tile = AllocateMemory(SizeOf(Tile)) + If *NewTile + With *NewTile + ;Keep a track of tiles (especially to free memory) + ;TODO : not sure if it really needs a mutex here, i'm still trying to find where the white tile issue is coming from + ;a tile download is either getting clobbered or timing out or getting kicked and it results in a corrupted png file on linux + LockMutex(PBMap\TileThreadMutex) + AddElement(PBMap\TilesThreads()) + PBMap\TilesThreads()\Tile = *NewTile + UnlockMutex(PBMap\TileThreadMutex) + ;New tile parameters + \Position\x = px + \Position\y = py + \PBMapTileX = tilex + \PBMapTileY = tiley + \PBMapZoom = PBMap\Zoom + \key = key + \CacheFile = CacheFile + \Layer = Layer + \GetImageThread = CreateThread(@GetImageThread(), *NewTile) + PBMap\TilesThreads()\GetImageThread = \GetImageThread + myDebug(" Creating get image thread nb " + Str(\GetImageThread)) + EndWith + Else + MyDebug(" Error, can't create a new tile") + Break 2 + EndIf + EndIf + Next + Next - - ;Free tile memory + ;Free tile memory ;TODO : maybe get out this proc from drawtiles in a special "free ressources" task ForEach PBMap\TilesThreads() ;Check if there's no more loading thread @@ -651,7 +640,7 @@ Module PBMap DeleteElement(PBMap\TilesThreads()) EndIf Next - ;EnableDebugger + EndProcedure ; ;-**** Clean Mem Cache @@ -1001,95 +990,94 @@ Module PBMap ProcedureReturn Value EndProcedure - Procedure Event(Event.l) - Protected Gadget.i + Procedure Events() +; Protected Gadget.i Protected MouseX.i, MouseY.i Protected Marker.Position Protected *Drawing.DrawingParameters - If IsGadget(PBMap\Gadget) And GadgetType(PBMap\Gadget) = #PB_GadgetType_Canvas - Select Event - Case #PB_Event_Gadget ;{ - Gadget = EventGadget() - Select Gadget - Case PBMap\Gadget - Select EventType() - Case #PB_EventType_MouseWheel - If PBMap\Options\WheelMouseRelative - ;Relative zoom (centered on the mouse) - SetZoomOnPosition(GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseX), GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseY), GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_WheelDelta)) - Else - ;Absolute zoom (centered on the center of the map) - SetZoom(GetGadgetAttribute(PBMap\Gadget,#PB_Canvas_WheelDelta), #PB_Relative) - EndIf - Case #PB_EventType_LeftButtonDown - ;Check if we select a marker - MouseX = PBMap\Position\x - GadgetWidth(PBMap\Gadget) / 2 + GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseX) - MouseY = PBMap\Position\y - GadgetHeight(PBMap\Gadget) / 2 + GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseY) - ForEach PBMap\Marker() - LatLon2XY(@PBMap\Marker()\Location, @Marker) - Marker\x * PBMap\TileSize - Marker\y * PBMap\TileSize - If Distance(Marker\x, Marker\y, MouseX, MouseY) < 8 - PBMap\EditMarkerIndex = ListIndex(PBMap\Marker()) - Break - EndIf - Next - ;Mem cursor Coord - PBMap\MoveStartingPoint\x = GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseX) - PBMap\MoveStartingPoint\y = GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseY) - Case #PB_EventType_MouseMove - If PBMap\MoveStartingPoint\x <> - 1 - MouseX = GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseX) - PBMap\MoveStartingPoint\x - MouseY = GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseY) - PBMap\MoveStartingPoint\y - PBMap\Moving = #True - ;Move marker - If PBMap\EditMarkerIndex > -1 - SelectElement(PBMap\Marker(), PBMap\EditMarkerIndex) - LatLon2XY(@PBMap\Marker()\Location, @Marker) - Marker\x + MouseX / PBMap\TileSize - Marker\y + MouseY / PBMap\TileSize - XY2LatLon(@Marker, @PBMap\Marker()\Location) - Else - ;New move values - PBMap\Position\x - MouseX - PBMap\Position\y - MouseY - ;PBMap tile position in tile.decimal - PBMap\Drawing\Position\x = PBMap\Position\x / PBMap\TileSize - PBMap\Drawing\Position\y = PBMap\Position\y / PBMap\TileSize - PBMap\Drawing\PassNb = 1 - XY2LatLon(@PBMap\Drawing, @PBMap\TargetLocation) - ;If CallBackLocation send Location to function - If PBMap\CallBackLocation > 0 - CallFunctionFast(PBMap\CallBackLocation, @PBMap\TargetLocation) - EndIf - EndIf - Drawing() - PBMap\MoveStartingPoint\x = GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseX) - PBMap\MoveStartingPoint\y = GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseY) - EndIf - Case #PB_EventType_LeftButtonUp - PBMap\Moving = #False - PBMap\MoveStartingPoint\x = - 1 - If PBMap\EditMarkerIndex > -1 - PBMap\EditMarkerIndex = -1 - Else ;Move Map - PBMap\Drawing\Position\x = PBMap\Position\x / PBMap\TileSize - PBMap\Drawing\Position\y = PBMap\Position\y / PBMap\TileSize - MyDebug("PBMap\Drawing\Position\x " + Str(PBMap\Drawing\Position\x) + " ; PBMap\Drawing\Position\y " + Str(PBMap\Drawing\Position\y) ) - XY2LatLon(@PBMap\Drawing, @PBMap\TargetLocation) - Drawing() - EndIf - Case #PB_MAP_REDRAW - Drawing() - EndSelect - EndSelect - EndSelect - Else - MessageRequester("Module PBMap", "You must use PBMapGadget before", #PB_MessageRequester_Ok ) - End - EndIf + Select EventType() + Case #PB_EventType_MouseWheel + If PBMap\Options\WheelMouseRelative + ;Relative zoom (centered on the mouse) + SetZoomOnPosition(GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseX), GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseY), GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_WheelDelta)) + Else + ;Absolute zoom (centered on the center of the map) + SetZoom(GetGadgetAttribute(PBMap\Gadget,#PB_Canvas_WheelDelta), #PB_Relative) + EndIf + Case #PB_EventType_LeftButtonDown + ;Check if we select a marker + MouseX = PBMap\Position\x - GadgetWidth(PBMap\Gadget) / 2 + GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseX) + MouseY = PBMap\Position\y - GadgetHeight(PBMap\Gadget) / 2 + GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseY) + ForEach PBMap\Marker() + LatLon2XY(@PBMap\Marker()\Location, @Marker) + Marker\x * PBMap\TileSize + Marker\y * PBMap\TileSize + If Distance(Marker\x, Marker\y, MouseX, MouseY) < 8 + PBMap\EditMarkerIndex = ListIndex(PBMap\Marker()) + Break + EndIf + Next + ;Mem cursor Coord + PBMap\MoveStartingPoint\x = GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseX) + PBMap\MoveStartingPoint\y = GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseY) + Case #PB_EventType_MouseMove + If PBMap\MoveStartingPoint\x <> - 1 + MouseX = GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseX) - PBMap\MoveStartingPoint\x + MouseY = GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseY) - PBMap\MoveStartingPoint\y + PBMap\Moving = #True + ;Move marker + If PBMap\EditMarkerIndex > -1 + SelectElement(PBMap\Marker(), PBMap\EditMarkerIndex) + LatLon2XY(@PBMap\Marker()\Location, @Marker) + Marker\x + MouseX / PBMap\TileSize + Marker\y + MouseY / PBMap\TileSize + XY2LatLon(@Marker, @PBMap\Marker()\Location) + Else + ;New move values + PBMap\Position\x - MouseX + PBMap\Position\y - MouseY + ;PBMap tile position in tile.decimal + PBMap\Drawing\Position\x = PBMap\Position\x / PBMap\TileSize + PBMap\Drawing\Position\y = PBMap\Position\y / PBMap\TileSize + PBMap\Drawing\PassNb = 1 + XY2LatLon(@PBMap\Drawing, @PBMap\TargetLocation) + ;If CallBackLocation send Location to function + If PBMap\CallBackLocation > 0 + CallFunctionFast(PBMap\CallBackLocation, @PBMap\TargetLocation) + EndIf + EndIf + Drawing() + PBMap\MoveStartingPoint\x = GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseX) + PBMap\MoveStartingPoint\y = GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseY) + EndIf + Case #PB_EventType_LeftButtonUp + PBMap\Moving = #False + PBMap\MoveStartingPoint\x = - 1 + If PBMap\EditMarkerIndex > -1 + PBMap\EditMarkerIndex = -1 + Else ;Move Map + PBMap\Drawing\Position\x = PBMap\Position\x / PBMap\TileSize + PBMap\Drawing\Position\y = PBMap\Position\y / PBMap\TileSize + MyDebug("PBMap\Drawing\Position\x " + Str(PBMap\Drawing\Position\x) + " ; PBMap\Drawing\Position\y " + Str(PBMap\Drawing\Position\y) ) + XY2LatLon(@PBMap\Drawing, @PBMap\TargetLocation) + Drawing() + EndIf + Case #PB_MAP_REDRAW + Drawing() + EndSelect EndProcedure + + Procedure MapGadget(Gadget.i, X.i, Y.i, Width.i, Height.i) + If Gadget = #PB_Any + PBMap\Gadget = CanvasGadget(PBMap\Gadget, X, Y, Width, Height, #PB_Canvas_Keyboard) ;#PB_Canvas_Keyboard has to be set for mousewheel to work on windows + Else + PBMap\Gadget = Gadget + CanvasGadget(PBMap\Gadget, X, Y, Width, Height, #PB_Canvas_Keyboard) + EndIf + BindGadgetEvent(PBMap\Gadget, @Events()) + EndProcedure + EndModule ;-Exemple @@ -1172,10 +1160,10 @@ CompilerIf #PB_Compiler_IsMainFile LoadFont(1, "Arial", 12, #PB_Font_Bold) TextGadget(#Text_1, 530, 50, 60, 15, "Movements") - ButtonGadget(#Gdt_Left, 550, 100, 30, 30, Chr($E7)) : SetGadgetFont(#Gdt_Left, FontID(0)) - ButtonGadget(#Gdt_Right, 610, 100, 30, 30, Chr($E8)) : SetGadgetFont(#Gdt_Right, FontID(0)) - ButtonGadget(#Gdt_Up, 580, 070, 30, 30, Chr($E9)) : SetGadgetFont(#Gdt_Up, FontID(0)) - ButtonGadget(#Gdt_Down, 580, 130, 30, 30, Chr($EA)) : SetGadgetFont(#Gdt_Down, FontID(0)) + ButtonGadget(#Gdt_Left, 550, 100, 30, 30, Chr($25C4)) : SetGadgetFont(#Gdt_Left, FontID(0)) + ButtonGadget(#Gdt_Right, 610, 100, 30, 30, Chr($25BA)) : SetGadgetFont(#Gdt_Right, FontID(0)) + ButtonGadget(#Gdt_Up, 580, 070, 30, 30, Chr($25B2)) : SetGadgetFont(#Gdt_Up, FontID(0)) + ButtonGadget(#Gdt_Down, 580, 130, 30, 30, Chr($25BC)) : SetGadgetFont(#Gdt_Down, FontID(0)) TextGadget(#Text_2, 530, 160, 60, 15, "Zoom") ButtonGadget(#Button_4, 550, 180, 50, 30, " + ") : SetGadgetFont(#Button_4, FontID(1)) ButtonGadget(#Button_5, 600, 180, 50, 30, " - ") : SetGadgetFont(#Button_5, FontID(1)) @@ -1201,7 +1189,6 @@ CompilerIf #PB_Compiler_IsMainFile Repeat Event = WaitWindowEvent() - PBMap::Event(Event) Select Event Case #PB_Event_CloseWindow : Quit = 1 Case #PB_Event_Gadget ;{ @@ -1237,10 +1224,9 @@ CompilerIf #PB_Compiler_IsMainFile CompilerEndIf ; IDE Options = PureBasic 5.50 (Windows - x64) -; CursorPosition = 1219 -; FirstLine = 1193 +; CursorPosition = 452 +; FirstLine = 442 ; Folding = ---------- ; EnableThread ; EnableXP -; DisableDebugger ; EnableUnicode \ No newline at end of file From afab1a76d1e4977ae5eb17312fe0096534f67523 Mon Sep 17 00:00:00 2001 From: djes Date: Mon, 29 Aug 2016 14:03:34 +0200 Subject: [PATCH 13/62] Debuging.... --- PBMap.pb | 138 +++++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 125 insertions(+), 13 deletions(-) diff --git a/PBMap.pb b/PBMap.pb index 021903e..e9a60c7 100644 --- a/PBMap.pb +++ b/PBMap.pb @@ -30,8 +30,8 @@ DeclareModule PBMap ;-Show debug infos Global Verbose = 1 Global MyDebugLevel = 3 - ;-Proxy ON/OFF - Global Proxy = #True + ;-Proxy ON/OFF + Global Proxy = #False #SCALE_NAUTICAL = 1 #SCALE_KM = 0 @@ -449,16 +449,16 @@ Module PBMap EndIf EndProcedure - Procedure LoadErrorHandler() - MessageRequester("Error", "") - EndProcedure +; Procedure LoadErrorHandler() +; MessageRequester("Error", "") +; EndProcedure Procedure.i GetTileFromHDD(CacheFile.s) Protected nImage.i If FileSize(CacheFile) > 0 - OnErrorCall(@LoadErrorHandler()) + ; OnErrorCall(@LoadErrorHandler()) nImage = LoadImage(#PB_Any, CacheFile) - OnErrorDefault() + ; OnErrorDefault() If IsImage(nImage) MyDebug("Success loading " + CacheFile + " as nImage " + Str(nImage), 3) ProcedureReturn nImage @@ -991,7 +991,6 @@ Module PBMap EndProcedure Procedure Events() -; Protected Gadget.i Protected MouseX.i, MouseY.i Protected Marker.Position Protected *Drawing.DrawingParameters @@ -1063,10 +1062,116 @@ Module PBMap XY2LatLon(@PBMap\Drawing, @PBMap\TargetLocation) Drawing() EndIf - Case #PB_MAP_REDRAW - Drawing() + Case #PB_MAP_REDRAW + Debug "Redraw" + Drawing() + Case #PB_MAP_RETRY + Debug "Reload" + Drawing() EndSelect EndProcedure + +; Procedure Event_MouseWheel() +; Protected MouseX.i, MouseY.i +; Protected Marker.Position +; Protected *Drawing.DrawingParameters +; +; If PBMap\Options\WheelMouseRelative +; ;Relative zoom (centered on the mouse) +; SetZoomOnPosition(GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseX), GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseY), GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_WheelDelta)) +; Else +; ;Absolute zoom (centered on the center of the map) +; SetZoom(GetGadgetAttribute(PBMap\Gadget,#PB_Canvas_WheelDelta), #PB_Relative) +; EndIf +; +; EndProcedure +; Procedure Event_LeftButtonDown() +; Protected MouseX.i, MouseY.i +; Protected Marker.Position +; Protected *Drawing.DrawingParameters +; +; ;Check if we select a marker +; MouseX = PBMap\Position\x - GadgetWidth(PBMap\Gadget) / 2 + GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseX) +; MouseY = PBMap\Position\y - GadgetHeight(PBMap\Gadget) / 2 + GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseY) +; ForEach PBMap\Marker() +; LatLon2XY(@PBMap\Marker()\Location, @Marker) +; Marker\x * PBMap\TileSize +; Marker\y * PBMap\TileSize +; If Distance(Marker\x, Marker\y, MouseX, MouseY) < 8 +; PBMap\EditMarkerIndex = ListIndex(PBMap\Marker()) +; Break +; EndIf +; Next +; ;Mem cursor Coord +; PBMap\MoveStartingPoint\x = GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseX) +; PBMap\MoveStartingPoint\y = GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseY) +; +; +; EndProcedure +; Procedure Event_MouseMove() +; Protected MouseX.i, MouseY.i +; Protected Marker.Position +; Protected *Drawing.DrawingParameters +; If PBMap\MoveStartingPoint\x <> - 1 +; MouseX = GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseX) - PBMap\MoveStartingPoint\x +; MouseY = GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseY) - PBMap\MoveStartingPoint\y +; PBMap\Moving = #True +; ;Move marker +; If PBMap\EditMarkerIndex > -1 +; SelectElement(PBMap\Marker(), PBMap\EditMarkerIndex) +; LatLon2XY(@PBMap\Marker()\Location, @Marker) +; Marker\x + MouseX / PBMap\TileSize +; Marker\y + MouseY / PBMap\TileSize +; XY2LatLon(@Marker, @PBMap\Marker()\Location) +; Else +; ;New move values +; PBMap\Position\x - MouseX +; PBMap\Position\y - MouseY +; ;PBMap tile position in tile.decimal +; PBMap\Drawing\Position\x = PBMap\Position\x / PBMap\TileSize +; PBMap\Drawing\Position\y = PBMap\Position\y / PBMap\TileSize +; PBMap\Drawing\PassNb = 1 +; XY2LatLon(@PBMap\Drawing, @PBMap\TargetLocation) +; ;If CallBackLocation send Location to function +; If PBMap\CallBackLocation > 0 +; CallFunctionFast(PBMap\CallBackLocation, @PBMap\TargetLocation) +; EndIf +; EndIf +; Drawing() +; PBMap\MoveStartingPoint\x = GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseX) +; PBMap\MoveStartingPoint\y = GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseY) +; EndIf +; +; EndProcedure +; Procedure Event_LeftButtonUp() +; Protected MouseX.i, MouseY.i +; Protected Marker.Position +; Protected *Drawing.DrawingParameters +; +; PBMap\Moving = #False +; PBMap\MoveStartingPoint\x = - 1 +; If PBMap\EditMarkerIndex > -1 +; PBMap\EditMarkerIndex = -1 +; Else ;Move Map +; PBMap\Drawing\Position\x = PBMap\Position\x / PBMap\TileSize +; PBMap\Drawing\Position\y = PBMap\Position\y / PBMap\TileSize +; MyDebug("PBMap\Drawing\Position\x " + Str(PBMap\Drawing\Position\x) + " ; PBMap\Drawing\Position\y " + Str(PBMap\Drawing\Position\y) ) +; XY2LatLon(@PBMap\Drawing, @PBMap\TargetLocation) +; Drawing() +; EndIf +; +; EndProcedure +; +; Procedure Event_Redraw() +; Debug "Redraw" +; Drawing() +; EndProcedure; + +; Procedure Event_Retry() +; Debug "Reload" +; Delay(2000) +; Drawing() +; EndProcedure Procedure MapGadget(Gadget.i, X.i, Y.i, Width.i, Height.i) If Gadget = #PB_Any @@ -1076,6 +1181,13 @@ Module PBMap CanvasGadget(PBMap\Gadget, X, Y, Width, Height, #PB_Canvas_Keyboard) EndIf BindGadgetEvent(PBMap\Gadget, @Events()) + ;BindGadgetEvent(PBMap\Gadget, @Event_MouseWheel(), #PB_EventType_MouseWheel) + ;BindGadgetEvent(PBMap\Gadget, @Event_LeftButtonDown(), #PB_EventType_LeftButtonDown) + ;BindGadgetEvent(PBMap\Gadget, @Event_MouseMove(), #PB_EventType_MouseMove) + ;BindGadgetEvent(PBMap\Gadget, @Event_LeftButtonUp(), #PB_EventType_LeftButtonUp) + ;BindGadgetEvent(PBMap\Gadget, Event_Redraw(), #PB_MAP_REDRAW) + ;BindGadgetEvent(PBMap\Gadget, @Event_Retry(), #PB_MAP_RETRY) + EndProcedure EndModule @@ -1224,9 +1336,9 @@ CompilerIf #PB_Compiler_IsMainFile CompilerEndIf ; IDE Options = PureBasic 5.50 (Windows - x64) -; CursorPosition = 452 -; FirstLine = 442 -; Folding = ---------- +; CursorPosition = 1183 +; FirstLine = 1033 +; Folding = --------- ; EnableThread ; EnableXP ; EnableUnicode \ No newline at end of file From 612fb30bab13822e982e51d75133239ec25260aa Mon Sep 17 00:00:00 2001 From: djes Date: Mon, 29 Aug 2016 15:49:44 +0200 Subject: [PATCH 14/62] Cleanup --- PBMap.pb | 21 +++++---------------- 1 file changed, 5 insertions(+), 16 deletions(-) diff --git a/PBMap.pb b/PBMap.pb index e9a60c7..70d2aa8 100644 --- a/PBMap.pb +++ b/PBMap.pb @@ -1072,10 +1072,6 @@ Module PBMap EndProcedure ; Procedure Event_MouseWheel() -; Protected MouseX.i, MouseY.i -; Protected Marker.Position -; Protected *Drawing.DrawingParameters -; ; If PBMap\Options\WheelMouseRelative ; ;Relative zoom (centered on the mouse) ; SetZoomOnPosition(GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseX), GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseY), GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_WheelDelta)) @@ -1083,12 +1079,10 @@ Module PBMap ; ;Absolute zoom (centered on the center of the map) ; SetZoom(GetGadgetAttribute(PBMap\Gadget,#PB_Canvas_WheelDelta), #PB_Relative) ; EndIf -; ; EndProcedure + ; Procedure Event_LeftButtonDown() -; Protected MouseX.i, MouseY.i ; Protected Marker.Position -; Protected *Drawing.DrawingParameters ; ; ;Check if we select a marker ; MouseX = PBMap\Position\x - GadgetWidth(PBMap\Gadget) / 2 + GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseX) @@ -1105,13 +1099,11 @@ Module PBMap ; ;Mem cursor Coord ; PBMap\MoveStartingPoint\x = GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseX) ; PBMap\MoveStartingPoint\y = GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseY) -; -; ; EndProcedure + ; Procedure Event_MouseMove() ; Protected MouseX.i, MouseY.i ; Protected Marker.Position -; Protected *Drawing.DrawingParameters ; If PBMap\MoveStartingPoint\x <> - 1 ; MouseX = GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseX) - PBMap\MoveStartingPoint\x ; MouseY = GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseY) - PBMap\MoveStartingPoint\y @@ -1141,13 +1133,11 @@ Module PBMap ; PBMap\MoveStartingPoint\x = GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseX) ; PBMap\MoveStartingPoint\y = GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseY) ; EndIf -; ; EndProcedure + ; Procedure Event_LeftButtonUp() ; Protected MouseX.i, MouseY.i ; Protected Marker.Position -; Protected *Drawing.DrawingParameters -; ; PBMap\Moving = #False ; PBMap\MoveStartingPoint\x = - 1 ; If PBMap\EditMarkerIndex > -1 @@ -1159,7 +1149,6 @@ Module PBMap ; XY2LatLon(@PBMap\Drawing, @PBMap\TargetLocation) ; Drawing() ; EndIf -; ; EndProcedure ; ; Procedure Event_Redraw() @@ -1336,8 +1325,8 @@ CompilerIf #PB_Compiler_IsMainFile CompilerEndIf ; IDE Options = PureBasic 5.50 (Windows - x64) -; CursorPosition = 1183 -; FirstLine = 1033 +; CursorPosition = 1197 +; FirstLine = 1154 ; Folding = --------- ; EnableThread ; EnableXP From e25a66206b2db0e75180c77b0ac8eb784c9dab45 Mon Sep 17 00:00:00 2001 From: djes Date: Mon, 29 Aug 2016 16:47:48 +0200 Subject: [PATCH 15/62] Drawing based on timer --- PBMap.pb | 159 ++++++++++++++----------------------------------------- 1 file changed, 40 insertions(+), 119 deletions(-) diff --git a/PBMap.pb b/PBMap.pb index 70d2aa8..6eb29e4 100644 --- a/PBMap.pb +++ b/PBMap.pb @@ -135,6 +135,7 @@ Module PBMap Window.i ; Parent Window Gadget.i ; Canvas Gadget Id Font.i ; Font to uses when write on the map + Timer.i TargetLocation.Location ; Latitude and Longitude from focus point Drawing.DrawingParameters ; Drawing parameters based on focus point ; @@ -155,6 +156,7 @@ Module PBMap HDDCachePath.S ; Path where to load and save tiles downloaded from server MemCache.TileMemCach ; Images in memory cache ; + Redraw.i Moving.i Dirty.i ; To signal that drawing need a refresh ; @@ -284,6 +286,7 @@ Module PBMap PBMap\EditMarkerIndex = -1 ;Initialised with "no marker selected" PBMap\Font = LoadFont(#PB_Any, "Arial", 20, #PB_Font_Bold) PBMap\Window = Window + PBMap\Timer = 1 PBMap\Options\WheelMouseRelative = #True SetMapServer("http://tile.openstreetmap.org/") @@ -550,9 +553,11 @@ Module PBMap UnlockMutex(PBMap\TileThreadMutex) MyDebug("Image key : " + *Tile\key + " added in memory cache!", 3) *Tile\nImage = nImage - PostEvent(#PB_Event_Gadget, PBMap\Window, PBmap\Gadget, #PB_MAP_REDRAW, *Tile) ;If image is loaded from web, redraw + PBMap\Dirty = #True +; PostEvent(#PB_Event_Gadget, PBMap\Window, PBmap\Gadget, #PB_MAP_REDRAW, *Tile) ;If image is loaded from web, redraw Else - PostEvent(#PB_Event_Gadget, PBMap\Window, PBmap\Gadget, #PB_MAP_RETRY, *Tile) ;If image is not loaded, retry + PBMap\Dirty = #True +; PostEvent(#PB_Event_Gadget, PBMap\Window, PBmap\Gadget, #PB_MAP_RETRY, *Tile) ;If image is not loaded, retry EndIf EndProcedure @@ -585,6 +590,9 @@ Module PBMap MyDebug("Drawing tiles") For y = - ny - 1 To ny + 1 For x = - nx - 1 To nx + 1 +; If PBMap\Moving ;If drawing was threaded, this would exit the loop when the user is moving +; Break 2 +; EndIf px = *Drawing\CenterX + x * PBMap\TileSize - *Drawing\DeltaX py = *Drawing\CenterY + y * PBMap\TileSize - *Drawing\DeltaY tilex = ((tx+x) % (1<< PBMap\Zoom)) @@ -708,7 +716,6 @@ Module PBMap MovePathCursor(x,y+12) AddPathLine(x+128,y+10) StrokePath(1) - EndProcedure Procedure TrackPointer(x.i, y.i,dist.l) @@ -802,6 +809,8 @@ Module PBMap Procedure Drawing() Protected *Drawing.DrawingParameters = @PBMap\Drawing Protected Px.d, Py.d,a + PBMap\Dirty = #False + PBMap\Redraw = #False ;Precalc some values *Drawing\CenterX = GadgetWidth(PBMap\Gadget) / 2 *Drawing\CenterY = GadgetHeight(PBMap\Gadget) / 2 @@ -828,11 +837,15 @@ Module PBMap DrawVectorText(Str(MapSize(PBMap\MemCache\Images()))) MovePathCursor(50,80) DrawVectorText(Str(ListSize(PBMap\TilesThreads()))) - ;If PBMap\Options\ShowScale - DrawScale(*Drawing,10,GadgetHeight(PBMAP\Gadget)-20,192) + DrawScale(*Drawing,10,GadgetHeight(PBMAP\Gadget)-20,192) ;EndIf - StopVectorDrawing() + StopVectorDrawing() + ;If there was a problem while drawing, redraw + If PBMap\Dirty + PBMap\Redraw = #True + ;PostEvent(#PB_Event_Gadget, PBMap\Window, PBmap\Gadget, #PB_MAP_REDRAW) + EndIf EndProcedure Procedure Refresh() @@ -990,11 +1003,10 @@ Module PBMap ProcedureReturn Value EndProcedure - Procedure Events() + Procedure CanvasEvents() Protected MouseX.i, MouseY.i Protected Marker.Position - Protected *Drawing.DrawingParameters - + PBMap\Moving = #False Select EventType() Case #PB_EventType_MouseWheel If PBMap\Options\WheelMouseRelative @@ -1021,10 +1033,10 @@ Module PBMap PBMap\MoveStartingPoint\x = GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseX) PBMap\MoveStartingPoint\y = GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseY) Case #PB_EventType_MouseMove + PBMap\Moving = #True If PBMap\MoveStartingPoint\x <> - 1 MouseX = GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseX) - PBMap\MoveStartingPoint\x MouseY = GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseY) - PBMap\MoveStartingPoint\y - PBMap\Moving = #True ;Move marker If PBMap\EditMarkerIndex > -1 SelectElement(PBMap\Marker(), PBMap\EditMarkerIndex) @@ -1046,12 +1058,11 @@ Module PBMap CallFunctionFast(PBMap\CallBackLocation, @PBMap\TargetLocation) EndIf EndIf - Drawing() + PBMap\Redraw = #True PBMap\MoveStartingPoint\x = GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseX) PBMap\MoveStartingPoint\y = GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseY) EndIf Case #PB_EventType_LeftButtonUp - PBMap\Moving = #False PBMap\MoveStartingPoint\x = - 1 If PBMap\EditMarkerIndex > -1 PBMap\EditMarkerIndex = -1 @@ -1060,108 +1071,23 @@ Module PBMap PBMap\Drawing\Position\y = PBMap\Position\y / PBMap\TileSize MyDebug("PBMap\Drawing\Position\x " + Str(PBMap\Drawing\Position\x) + " ; PBMap\Drawing\Position\y " + Str(PBMap\Drawing\Position\y) ) XY2LatLon(@PBMap\Drawing, @PBMap\TargetLocation) - Drawing() + PBMap\Redraw = #True EndIf - Case #PB_MAP_REDRAW + Case #PB_MAP_REDRAW Debug "Redraw" - Drawing() - Case #PB_MAP_RETRY - Debug "Reload" - Drawing() + PBMap\Redraw = #True + Case #PB_MAP_RETRY + Debug "Reload" + PBMap\Redraw = #True EndSelect EndProcedure -; Procedure Event_MouseWheel() -; If PBMap\Options\WheelMouseRelative -; ;Relative zoom (centered on the mouse) -; SetZoomOnPosition(GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseX), GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseY), GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_WheelDelta)) -; Else -; ;Absolute zoom (centered on the center of the map) -; SetZoom(GetGadgetAttribute(PBMap\Gadget,#PB_Canvas_WheelDelta), #PB_Relative) -; EndIf -; EndProcedure + Procedure TimerEvents() + If EventTimer() = PBMap\Timer And PBMap\Redraw + Drawing() + EndIf + EndProcedure -; Procedure Event_LeftButtonDown() -; Protected Marker.Position -; -; ;Check if we select a marker -; MouseX = PBMap\Position\x - GadgetWidth(PBMap\Gadget) / 2 + GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseX) -; MouseY = PBMap\Position\y - GadgetHeight(PBMap\Gadget) / 2 + GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseY) -; ForEach PBMap\Marker() -; LatLon2XY(@PBMap\Marker()\Location, @Marker) -; Marker\x * PBMap\TileSize -; Marker\y * PBMap\TileSize -; If Distance(Marker\x, Marker\y, MouseX, MouseY) < 8 -; PBMap\EditMarkerIndex = ListIndex(PBMap\Marker()) -; Break -; EndIf -; Next -; ;Mem cursor Coord -; PBMap\MoveStartingPoint\x = GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseX) -; PBMap\MoveStartingPoint\y = GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseY) -; EndProcedure - -; Procedure Event_MouseMove() -; Protected MouseX.i, MouseY.i -; Protected Marker.Position -; If PBMap\MoveStartingPoint\x <> - 1 -; MouseX = GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseX) - PBMap\MoveStartingPoint\x -; MouseY = GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseY) - PBMap\MoveStartingPoint\y -; PBMap\Moving = #True -; ;Move marker -; If PBMap\EditMarkerIndex > -1 -; SelectElement(PBMap\Marker(), PBMap\EditMarkerIndex) -; LatLon2XY(@PBMap\Marker()\Location, @Marker) -; Marker\x + MouseX / PBMap\TileSize -; Marker\y + MouseY / PBMap\TileSize -; XY2LatLon(@Marker, @PBMap\Marker()\Location) -; Else -; ;New move values -; PBMap\Position\x - MouseX -; PBMap\Position\y - MouseY -; ;PBMap tile position in tile.decimal -; PBMap\Drawing\Position\x = PBMap\Position\x / PBMap\TileSize -; PBMap\Drawing\Position\y = PBMap\Position\y / PBMap\TileSize -; PBMap\Drawing\PassNb = 1 -; XY2LatLon(@PBMap\Drawing, @PBMap\TargetLocation) -; ;If CallBackLocation send Location to function -; If PBMap\CallBackLocation > 0 -; CallFunctionFast(PBMap\CallBackLocation, @PBMap\TargetLocation) -; EndIf -; EndIf -; Drawing() -; PBMap\MoveStartingPoint\x = GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseX) -; PBMap\MoveStartingPoint\y = GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseY) -; EndIf -; EndProcedure - -; Procedure Event_LeftButtonUp() -; Protected MouseX.i, MouseY.i -; Protected Marker.Position -; PBMap\Moving = #False -; PBMap\MoveStartingPoint\x = - 1 -; If PBMap\EditMarkerIndex > -1 -; PBMap\EditMarkerIndex = -1 -; Else ;Move Map -; PBMap\Drawing\Position\x = PBMap\Position\x / PBMap\TileSize -; PBMap\Drawing\Position\y = PBMap\Position\y / PBMap\TileSize -; MyDebug("PBMap\Drawing\Position\x " + Str(PBMap\Drawing\Position\x) + " ; PBMap\Drawing\Position\y " + Str(PBMap\Drawing\Position\y) ) -; XY2LatLon(@PBMap\Drawing, @PBMap\TargetLocation) -; Drawing() -; EndIf -; EndProcedure -; -; Procedure Event_Redraw() -; Debug "Redraw" -; Drawing() -; EndProcedure; - -; Procedure Event_Retry() -; Debug "Reload" -; Delay(2000) -; Drawing() -; EndProcedure - Procedure MapGadget(Gadget.i, X.i, Y.i, Width.i, Height.i) If Gadget = #PB_Any PBMap\Gadget = CanvasGadget(PBMap\Gadget, X, Y, Width, Height, #PB_Canvas_Keyboard) ;#PB_Canvas_Keyboard has to be set for mousewheel to work on windows @@ -1169,14 +1095,9 @@ Module PBMap PBMap\Gadget = Gadget CanvasGadget(PBMap\Gadget, X, Y, Width, Height, #PB_Canvas_Keyboard) EndIf - BindGadgetEvent(PBMap\Gadget, @Events()) - ;BindGadgetEvent(PBMap\Gadget, @Event_MouseWheel(), #PB_EventType_MouseWheel) - ;BindGadgetEvent(PBMap\Gadget, @Event_LeftButtonDown(), #PB_EventType_LeftButtonDown) - ;BindGadgetEvent(PBMap\Gadget, @Event_MouseMove(), #PB_EventType_MouseMove) - ;BindGadgetEvent(PBMap\Gadget, @Event_LeftButtonUp(), #PB_EventType_LeftButtonUp) - ;BindGadgetEvent(PBMap\Gadget, Event_Redraw(), #PB_MAP_REDRAW) - ;BindGadgetEvent(PBMap\Gadget, @Event_Retry(), #PB_MAP_RETRY) - + BindGadgetEvent(PBMap\Gadget, @CanvasEvents()) + AddWindowTimer(PBMap\Window, PBMap\Timer, 20) + BindEvent(#PB_Event_Timer, @TimerEvents()) EndProcedure EndModule @@ -1325,9 +1246,9 @@ CompilerIf #PB_Compiler_IsMainFile CompilerEndIf ; IDE Options = PureBasic 5.50 (Windows - x64) -; CursorPosition = 1197 -; FirstLine = 1154 -; Folding = --------- +; CursorPosition = 603 +; FirstLine = 563 +; Folding = ---------- ; EnableThread ; EnableXP ; EnableUnicode \ No newline at end of file From ff2bcc0f5912bdfefcdf1b0e4d1f82b913b91000 Mon Sep 17 00:00:00 2001 From: djes Date: Mon, 29 Aug 2016 17:10:35 +0200 Subject: [PATCH 16/62] Redraw bugfix --- PBMap.pb | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/PBMap.pb b/PBMap.pb index 6eb29e4..c3def8b 100644 --- a/PBMap.pb +++ b/PBMap.pb @@ -842,10 +842,10 @@ Module PBMap ;EndIf StopVectorDrawing() ;If there was a problem while drawing, redraw - If PBMap\Dirty - PBMap\Redraw = #True - ;PostEvent(#PB_Event_Gadget, PBMap\Window, PBmap\Gadget, #PB_MAP_REDRAW) - EndIf +; If PBMap\Dirty +; PBMap\Redraw = #True +; ;PostEvent(#PB_Event_Gadget, PBMap\Window, PBmap\Gadget, #PB_MAP_REDRAW) +; EndIf EndProcedure Procedure Refresh() @@ -1083,7 +1083,7 @@ Module PBMap EndProcedure Procedure TimerEvents() - If EventTimer() = PBMap\Timer And PBMap\Redraw + If EventTimer() = PBMap\Timer And (PBMap\Redraw Or PBMap\Dirty) Drawing() EndIf EndProcedure @@ -1246,8 +1246,8 @@ CompilerIf #PB_Compiler_IsMainFile CompilerEndIf ; IDE Options = PureBasic 5.50 (Windows - x64) -; CursorPosition = 603 -; FirstLine = 563 +; CursorPosition = 840 +; FirstLine = 819 ; Folding = ---------- ; EnableThread ; EnableXP From c815fbf6f2112052acd2c190508e80e65c64702e Mon Sep 17 00:00:00 2001 From: djes Date: Tue, 30 Aug 2016 10:35:41 +0200 Subject: [PATCH 17/62] Complete rework of tile loading/thread --- PBMap.pb | 342 +++++++++++++++++++++++++++++-------------------------- 1 file changed, 183 insertions(+), 159 deletions(-) diff --git a/PBMap.pb b/PBMap.pb index c3def8b..6f0fc52 100644 --- a/PBMap.pb +++ b/PBMap.pb @@ -85,6 +85,7 @@ Module PBMap key.s CacheFile.s GetImageThread.i + RetryNb.i Layer.i EndStructure @@ -111,6 +112,7 @@ Module PBMap Structure ImgMemCach nImage.i + *Tile.Tile ;Location.Location ;Mutex.i EndStructure @@ -138,13 +140,13 @@ Module PBMap Timer.i TargetLocation.Location ; Latitude and Longitude from focus point Drawing.DrawingParameters ; Drawing parameters based on focus point - ; + ; CallBackLocation.i ; @Procedure(latitude.d,lontitude.d) CallBackMainPointer.i ; @Procedure(X.i, Y.i) to DrawPointer (you must use VectorDrawing lib) - ; + ; Position.PixelPosition ; Actual focus point coords in pixels (global) MoveStartingPoint.PixelPosition ; Start mouse position coords when dragging the map - ; + ; Array ServerURL.s(0) ; Web URL ex: http://tile.openstreetmap.org/ NumberOfMapLayers.i ; The number of map tile layers; @@ -152,16 +154,17 @@ Module PBMap ZoomMax.i ; Max Zoom supported by server Zoom.i ; Current zoom TileSize.i ; Tile size downloaded on the server ex : 256 - ; + ; HDDCachePath.S ; Path where to load and save tiles downloaded from server MemCache.TileMemCach ; Images in memory cache - ; + ; + OnStage.i Redraw.i Moving.i Dirty.i ; To signal that drawing need a refresh - ; + ; MainDrawingThread.i - List TilesThreads.TileThread() + ;List TilesThreads.TileThread() TileThreadMutex.i; ;Mutex to protect resources List track.Location() ; To display a GPX track List Marker.Marker() ; To diplay marker @@ -289,7 +292,7 @@ Module PBMap PBMap\Timer = 1 PBMap\Options\WheelMouseRelative = #True SetMapServer("http://tile.openstreetmap.org/") - + ;-Preferences ;Use this to create and customize your preferences file for the first time ; CreatePreferences(GetHomeDirectory() + "PBMap.prefs") @@ -332,18 +335,21 @@ Module PBMap ;Wait for loading threads to finish nicely. Passed 2 seconds, kills them. Protected TimeCounter = ElapsedMilliseconds() Repeat - ResetList(PBMap\TilesThreads()) - While NextElement(PBMap\TilesThreads()) - If IsThread(PBMap\TilesThreads()\GetImageThread) = 0 - FreeMemory(PBMap\TilesThreads()\Tile) - DeleteElement(PBMap\TilesThreads()) - ElseIf ElapsedMilliseconds() - TimeCounter > 2000 - ;Should not occur - KillThread(PBMap\TilesThreads()\GetImageThread) + ForEach PBMap\MemCache\Images() + If PBMap\MemCache\Images()\Tile <> 0 + If IsThread(PBMap\MemCache\Images()\Tile\GetImageThread) + PBMap\MemCache\Images()\Tile\RetryNb = 0 + If ElapsedMilliseconds() - TimeCounter > 2000 + ;Should not occur + KillThread(PBMap\MemCache\Images()\Tile\GetImageThread) + EndIf + EndIf + Else + DeleteMapElement(PBMap\MemCache\Images()) EndIf - Wend + Next Delay(10) - Until ListSize(PBMap\TilesThreads()) = 0 + Until MapSize(PBMap\MemCache\Images()) = 0 curl_global_cleanup() EndProcedure @@ -360,7 +366,7 @@ Module PBMap Result = Sqr( (x1 - x2) * (x1 - x2) + (y1 - y2) * (y1 - y2)) ProcedureReturn Result EndProcedure - + ;*** Converts coords to tile.decimal ;Warning, structures used in parameters are not tested Procedure LatLon2XY(*Location.Location, *Coords.Position) @@ -415,7 +421,7 @@ Module PBMap x2 = (PBMap\TargetLocation\Longitude+180)*(mapWidth/360) ; convert from degrees To radians latRad = PBMap\TargetLocation\Latitude*#PI/180; - ; get y value + ; get y value mercN = Log(Tan((#PI/4)+(latRad/2))) y2 = (mapHeight/2)-(mapWidth*mercN/(2*#PI)); *Pixel\x=GadgetWidth(PBMap\Gadget)/2 - (x2-x1) @@ -452,16 +458,16 @@ Module PBMap EndIf EndProcedure -; Procedure LoadErrorHandler() -; MessageRequester("Error", "") -; EndProcedure + ; Procedure LoadErrorHandler() + ; MessageRequester("Error", "") + ; EndProcedure Procedure.i GetTileFromHDD(CacheFile.s) Protected nImage.i If FileSize(CacheFile) > 0 - ; OnErrorCall(@LoadErrorHandler()) + ; OnErrorCall(@LoadErrorHandler()) nImage = LoadImage(#PB_Any, CacheFile) - ; OnErrorDefault() + ; OnErrorDefault() If IsImage(nImage) MyDebug("Success loading " + CacheFile + " as nImage " + Str(nImage), 3) ProcedureReturn nImage @@ -475,27 +481,6 @@ Module PBMap ProcedureReturn -1 EndProcedure - Procedure.i GetLocalTile(key.s, CacheFile.s) - Protected timg = -1 - If FindMapElement(PBMap\MemCache\Images(), key) - MyDebug("Key : " + key + " found in memory cache!", 3) - ProcedureReturn PBMap\MemCache\Images()\nImage - Else - MyDebug("Trying to load from HDD " + CacheFile) - timg = GetTileFromHDD(CacheFile.s) - If timg <> -1 - MyDebug("Key : " + key + " found on HDD") - LockMutex(PBMap\TileThreadMutex) - AddMapElement(PBMap\MemCache\Images(), key) - PBMap\MemCache\Images()\nImage = timg - UnlockMutex(PBMap\TileThreadMutex) - Else - MyDebug("Key : " + key + " not found") - EndIf - ProcedureReturn timg - EndIf - EndProcedure - Procedure.i GetTileFromWeb(Zoom.i, XTile.i, YTile.i, CacheFile.s, Layer.i) Protected *Buffer Protected nImage.i = -1 @@ -545,39 +530,95 @@ Module PBMap Procedure GetImageThread(*Tile.Tile) Protected nImage.i = -1 - nImage = GetTileFromWeb(*Tile\PBMapZoom, *Tile\PBMapTileX, *Tile\PBMapTileY, *Tile\CacheFile, *Tile\Layer) - If nImage <> -1 - LockMutex(PBMap\TileThreadMutex) - AddMapElement(PBMap\MemCache\Images(), *Tile\key) ;Add the image to the cache, once - PBMap\MemCache\Images(*Tile\key)\nImage = nImage - UnlockMutex(PBMap\TileThreadMutex) - MyDebug("Image key : " + *Tile\key + " added in memory cache!", 3) - *Tile\nImage = nImage - PBMap\Dirty = #True -; PostEvent(#PB_Event_Gadget, PBMap\Window, PBmap\Gadget, #PB_MAP_REDRAW, *Tile) ;If image is loaded from web, redraw - Else - PBMap\Dirty = #True -; PostEvent(#PB_Event_Gadget, PBMap\Window, PBmap\Gadget, #PB_MAP_RETRY, *Tile) ;If image is not loaded, retry + Repeat + nImage = GetTileFromWeb(*Tile\PBMapZoom, *Tile\PBMapTileX, *Tile\PBMapTileY, *Tile\CacheFile, *Tile\Layer) + If nImage <> -1 + LockMutex(PBMap\TileThreadMutex) + PBMap\MemCache\Images(*Tile\key)\nImage = nImage + UnlockMutex(PBMap\TileThreadMutex) + MyDebug("Image key : " + *Tile\key + " web image loaded", 3) + PBMap\Dirty = #True + *Tile\RetryNb = 0 + ; PostEvent(#PB_Event_Gadget, PBMap\Window, PBmap\Gadget, #PB_MAP_REDRAW, *Tile) ;If image is loaded from web, redraw + Else + MyDebug("Image key : " + *Tile\key + " web image not correctly loaded", 3) + Delay(5000) + *Tile\RetryNb - 1 + ; PostEvent(#PB_Event_Gadget, PBMap\Window, PBmap\Gadget, #PB_MAP_RETRY, *Tile) ;If image is not loaded, retry + EndIf + Until *Tile\RetryNb <= 0 + ;End of the thread + LockMutex(PBMap\TileThreadMutex) + FreeMemory(PBMap\MemCache\Images(*Tile\key)\Tile) + PBMap\MemCache\Images(*Tile\key)\Tile = 0 + UnlockMutex(PBMap\TileThreadMutex) + EndProcedure + + Procedure.i GetTile(key.s, CacheFile.s, px.i, py.i, tilex.i, tiley.i, Layer.i) + Protected timg = -1 + If FindMapElement(PBMap\MemCache\Images(), key) + MyDebug("Key : " + key + " found in memory cache!", 3) + timg = PBMap\MemCache\Images()\nImage + If timg <> -1 + MyDebug("Image : " + timg + " found in memory cache!", 3) + ProcedureReturn timg + EndIf + Else + AddMapElement(PBMap\MemCache\Images(), key) + MyDebug("Key : " + key + " added in memory cache!", 3) + PBMap\MemCache\Images()\nImage = -1 + ;UnlockMutex(PBMap\TileThreadMutex) EndIf - + If PBMap\MemCache\Images()\Tile = 0 ;Check if a loading thread is not running + MyDebug("Trying to load from HDD " + CacheFile) + timg = GetTileFromHDD(CacheFile.s) + If timg <> -1 + MyDebug("Key : " + key + " found on HDD") + PBMap\MemCache\Images()\nImage = timg + ProcedureReturn timg + EndIf + MyDebug("Key : " + key + " not found on HDD") + ;Launch a new thread + Protected *NewTile.Tile = AllocateMemory(SizeOf(Tile)) + If *NewTile + With *NewTile + PBMap\MemCache\Images()\Tile = *NewTile + ;New tile parameters + \Position\x = px + \Position\y = py + \PBMapTileX = tilex + \PBMapTileY = tiley + \PBMapZoom = PBMap\Zoom + \key = key + \CacheFile = CacheFile + \Layer = Layer + \RetryNb = 5 + \GetImageThread = CreateThread(@GetImageThread(), *NewTile) + myDebug(" Creating get image thread nb " + Str(\GetImageThread)) + EndWith + Else + MyDebug(" Error, can't create a new tile loading thread") + EndIf + EndIf + ProcedureReturn timg EndProcedure - Procedure DrawTile(*Tile.Tile) - Protected x = *Tile\Position\x - Protected y = *Tile\Position\y - MyDebug(" Drawing tile nb " + " X : " + Str(*Tile\PBMapTileX) + " Y : " + Str(*Tile\PBMapTileX), 2) - MyDebug(" at coords " + Str(x) + "," + Str(y), 2) - MovePathCursor(x, y) - DrawVectorImage(ImageID(*Tile\nImage)) - EndProcedure - - Procedure DrawLoading(*Tile.Tile) - Protected x = *Tile\Position\x - Protected y = *Tile\Position\y - Protected Text$ = "Loading" - MyDebug(" Drawing tile nb " + " X : " + Str(*Tile\PBMapTileX) + " Y : " + Str(*Tile\PBMapTileX), 2) - MyDebug(" at coords " + Str(x) + "," + Str(y)) - EndProcedure + ; Procedure DrawTile(*Tile.Tile) + ; Protected x = *Tile\Position\x + ; Protected y = *Tile\Position\y + ; MyDebug(" Drawing tile nb " + " X : " + Str(*Tile\PBMapTileX) + " Y : " + Str(*Tile\PBMapTileX), 2) + ; MyDebug(" at coords " + Str(x) + "," + Str(y), 2) + ; MovePathCursor(x, y) + ; DrawVectorImage(ImageID(*Tile\nImage)) + ; EndProcedure + ; + ; Procedure DrawLoading(*Tile.Tile) + ; Protected x = *Tile\Position\x + ; Protected y = *Tile\Position\y + ; Protected Text$ = "Loading" + ; MyDebug(" Drawing tile nb " + " X : " + Str(*Tile\PBMapTileX) + " Y : " + Str(*Tile\PBMapTileX), 2) + ; MyDebug(" at coords " + Str(x) + "," + Str(y)) + ; EndProcedure Procedure DrawTiles(*Drawing.DrawingParameters, Layer.i, alpha.i=255) ;DisableDebugger @@ -590,9 +631,9 @@ Module PBMap MyDebug("Drawing tiles") For y = - ny - 1 To ny + 1 For x = - nx - 1 To nx + 1 -; If PBMap\Moving ;If drawing was threaded, this would exit the loop when the user is moving -; Break 2 -; EndIf + ; If PBMap\Moving ;If drawing was threaded, this would exit the loop when the user is moving + ; Break 2 + ; EndIf px = *Drawing\CenterX + x * PBMap\TileSize - *Drawing\DeltaX py = *Drawing\CenterY + y * PBMap\TileSize - *Drawing\DeltaY tilex = ((tx+x) % (1<< PBMap\Zoom)) @@ -601,81 +642,54 @@ Module PBMap key = Str(kq) CacheFile = PBMap\HDDCachePath + key + ".png" - img = GetLocalTile(key, CacheFile) + img = GetTile(key, CacheFile, px, py, tilex, tiley, Layer) If img <> -1 MovePathCursor(px, py) DrawVectorImage(ImageID(img), alpha) Else MovePathCursor(px, py) DrawVectorImage(ImageID(PBMap\ImgLoading), alpha) - Protected *NewTile.Tile = AllocateMemory(SizeOf(Tile)) - If *NewTile - With *NewTile - ;Keep a track of tiles (especially to free memory) - ;TODO : not sure if it really needs a mutex here, i'm still trying to find where the white tile issue is coming from - ;a tile download is either getting clobbered or timing out or getting kicked and it results in a corrupted png file on linux - LockMutex(PBMap\TileThreadMutex) - AddElement(PBMap\TilesThreads()) - PBMap\TilesThreads()\Tile = *NewTile - UnlockMutex(PBMap\TileThreadMutex) - ;New tile parameters - \Position\x = px - \Position\y = py - \PBMapTileX = tilex - \PBMapTileY = tiley - \PBMapZoom = PBMap\Zoom - \key = key - \CacheFile = CacheFile - \Layer = Layer - \GetImageThread = CreateThread(@GetImageThread(), *NewTile) - PBMap\TilesThreads()\GetImageThread = \GetImageThread - myDebug(" Creating get image thread nb " + Str(\GetImageThread)) - EndWith - Else - MyDebug(" Error, can't create a new tile") - Break 2 - EndIf EndIf Next Next - - ;Free tile memory - ;TODO : maybe get out this proc from drawtiles in a special "free ressources" task - ForEach PBMap\TilesThreads() - ;Check if there's no more loading thread - If IsThread(PBMap\TilesThreads()\GetImageThread) = 0 - FreeMemory(PBMap\TilesThreads()\Tile) - DeleteElement(PBMap\TilesThreads()) - EndIf - Next + + ; ;Free tile memory + ; ;TODO : maybe get out this proc from drawtiles in a special "free ressources" task + ; ForEach PBMap\TilesThreads() + ; ;Check if there's no more loading thread + ; If IsThread(PBMap\TilesThreads()\GetImageThread) = 0 + ; FreeMemory(PBMap\TilesThreads()\Tile) + ; DeleteElement(PBMap\TilesThreads()) + ; EndIf + ; Next EndProcedure -; ;-**** Clean Mem Cache -; ;TODO in development, by now there's many cache problem as the loading thread could be perturbed -; ;GadgetWidth(PBMap\Gadget)/PBMap\TileSize -; Protected MaxNbTile.l -; If GadgetWidth(PBMap\Gadget)>GadgetHeight(PBMap\Gadget) -; MaxNbTile=GadgetWidth(PBMap\Gadget)/PBMap\TileSize -; Else -; MaxNbTile=GadgetHeight(PBMap\Gadget)/PBMap\TileSize -; EndIf -; Protected Scale.d= 40075*Cos(Radian(PBMap\TargetLocation\Latitude))/Pow(2,PBMap\Zoom) -; Protected Limit.d=Scale*(MaxNbTile)*1.5 -; Debug "Cache cleaning" -; ForEach PBMap\MemCache\Images() -; Protected Distance.d = HaversineInKM(@PBMap\MemCache\Images()\Location, @PBMap\TargetLocation) -; Debug "Limit:"+StrD(Limit)+" Distance:"+StrD(Distance) -; If Distance>Limit And IsImage(PBMap\MemCache\Images()\nImage) -; LockMutex(PBMap\MemCache\Images()\Mutex) -; Debug "delete" -; Debug PBMap\MemCache\Images() -; FreeImage(PBMap\MemCache\Images()\nImage) -; UnlockMutex(PBMap\MemCache\Images()\Mutex) -; FreeMutex(PBMap\MemCache\Images()\Mutex) -; DeleteMapElement(PBMap\MemCache\Images()) -; EndIf -; Next + ; ;-**** Clean Mem Cache + ; ;TODO in development, by now there's many cache problem as the loading thread could be perturbed + ; ;GadgetWidth(PBMap\Gadget)/PBMap\TileSize + ; Protected MaxNbTile.l + ; If GadgetWidth(PBMap\Gadget)>GadgetHeight(PBMap\Gadget) + ; MaxNbTile=GadgetWidth(PBMap\Gadget)/PBMap\TileSize + ; Else + ; MaxNbTile=GadgetHeight(PBMap\Gadget)/PBMap\TileSize + ; EndIf + ; Protected Scale.d= 40075*Cos(Radian(PBMap\TargetLocation\Latitude))/Pow(2,PBMap\Zoom) + ; Protected Limit.d=Scale*(MaxNbTile)*1.5 + ; Debug "Cache cleaning" + ; ForEach PBMap\MemCache\Images() + ; Protected Distance.d = HaversineInKM(@PBMap\MemCache\Images()\Location, @PBMap\TargetLocation) + ; Debug "Limit:"+StrD(Limit)+" Distance:"+StrD(Distance) + ; If Distance>Limit And IsImage(PBMap\MemCache\Images()\nImage) + ; LockMutex(PBMap\MemCache\Images()\Mutex) + ; Debug "delete" + ; Debug PBMap\MemCache\Images() + ; FreeImage(PBMap\MemCache\Images()\nImage) + ; UnlockMutex(PBMap\MemCache\Images()\Mutex) + ; FreeMutex(PBMap\MemCache\Images()\Mutex) + ; DeleteMapElement(PBMap\MemCache\Images()) + ; EndIf + ; Next Procedure DrawPointer(*Drawing.DrawingParameters) If PBMap\CallBackMainPointer > 0 @@ -717,7 +731,7 @@ Module PBMap AddPathLine(x+128,y+10) StrokePath(1) EndProcedure - + Procedure TrackPointer(x.i, y.i,dist.l) Protected color.l color=RGBA(0, 0, 0, 255) @@ -809,6 +823,7 @@ Module PBMap Procedure Drawing() Protected *Drawing.DrawingParameters = @PBMap\Drawing Protected Px.d, Py.d,a + PBMap\OnStage = #True PBMap\Dirty = #False PBMap\Redraw = #False ;Precalc some values @@ -824,8 +839,8 @@ Module PBMap StartVectorDrawing(CanvasVectorOutput(PBMap\Gadget)) ;TODO add in layers of tiles ;this way we can cache them as 0 base 1.n layers ;such as for openseamap tiles which are overlaid. not that efficent from here though. - For a = 0 To PBMap\NumberOfMapLayers-1 - DrawTiles(*Drawing,a) + For a = 0 To PBMap\NumberOfMapLayers - 1 + DrawTiles(*Drawing, a) Next DrawTrack(*Drawing) DrawMarker(*Drawing) @@ -836,16 +851,25 @@ Module PBMap MovePathCursor(50,50) DrawVectorText(Str(MapSize(PBMap\MemCache\Images()))) MovePathCursor(50,80) - DrawVectorText(Str(ListSize(PBMap\TilesThreads()))) + Protected ThreadCounter = 0 + ForEach PBMap\MemCache\Images() + If PBMap\MemCache\Images()\Tile <> 0 + If PBMap\MemCache\Images()\Tile\GetImageThread <> 0 + ThreadCounter + 1 + EndIf + EndIf + Next + DrawVectorText(Str(ThreadCounter)) ;If PBMap\Options\ShowScale DrawScale(*Drawing,10,GadgetHeight(PBMAP\Gadget)-20,192) ;EndIf StopVectorDrawing() ;If there was a problem while drawing, redraw -; If PBMap\Dirty -; PBMap\Redraw = #True -; ;PostEvent(#PB_Event_Gadget, PBMap\Window, PBmap\Gadget, #PB_MAP_REDRAW) -; EndIf + ; If PBMap\Dirty + ; PBMap\Redraw = #True + ; ;PostEvent(#PB_Event_Gadget, PBMap\Window, PBmap\Gadget, #PB_MAP_REDRAW) + ; EndIf + PBMap\OnStage = #False EndProcedure Procedure Refresh() @@ -950,8 +974,8 @@ Module PBMap PBMap\Options\ScaleUnit = ScaleUnit Drawing() EndProcedure - - ;Zoom on x, y position relative to the canvas gadget + + ;Zoom on x, y position relative to the canvas gadget Procedure SetZoomOnPosition(x, y, zoom) Protected MouseX.d, MouseY.d Protected OldPx.d, OldPy.d, OldMx.d, OldMy.d @@ -1083,9 +1107,9 @@ Module PBMap EndProcedure Procedure TimerEvents() - If EventTimer() = PBMap\Timer And (PBMap\Redraw Or PBMap\Dirty) + If EventTimer() = PBMap\Timer And (PBMap\Redraw Or PBMap\Dirty) And PBMap\OnStage = #False Drawing() - EndIf + EndIf EndProcedure Procedure MapGadget(Gadget.i, X.i, Y.i, Width.i, Height.i) @@ -1180,7 +1204,7 @@ CompilerIf #PB_Compiler_IsMainFile LoadFont(0, "Arial", 12) LoadFont(1, "Arial", 12, #PB_Font_Bold) - + TextGadget(#Text_1, 530, 50, 60, 15, "Movements") ButtonGadget(#Gdt_Left, 550, 100, 30, 30, Chr($25C4)) : SetGadgetFont(#Gdt_Left, FontID(0)) ButtonGadget(#Gdt_Right, 610, 100, 30, 30, Chr($25BA)) : SetGadgetFont(#Gdt_Right, FontID(0)) @@ -1241,14 +1265,14 @@ CompilerIf #PB_Compiler_IsMainFile PBMap::Quit() EndIf - + CloseConsole() CompilerEndIf ; IDE Options = PureBasic 5.50 (Windows - x64) -; CursorPosition = 840 -; FirstLine = 819 -; Folding = ---------- +; CursorPosition = 570 +; FirstLine = 520 +; Folding = --------- ; EnableThread ; EnableXP ; EnableUnicode \ No newline at end of file From 941fd5a7a0c6cd120c31fbd53afd021ad9fc5cc1 Mon Sep 17 00:00:00 2001 From: djes Date: Tue, 30 Aug 2016 12:16:52 +0200 Subject: [PATCH 18/62] Better thread handling --- PBMap.pb | 85 +++++++++++++++++++++----------------------------------- 1 file changed, 31 insertions(+), 54 deletions(-) diff --git a/PBMap.pb b/PBMap.pb index 6f0fc52..70c12c5 100644 --- a/PBMap.pb +++ b/PBMap.pb @@ -158,7 +158,6 @@ Module PBMap HDDCachePath.S ; Path where to load and save tiles downloaded from server MemCache.TileMemCach ; Images in memory cache ; - OnStage.i Redraw.i Moving.i Dirty.i ; To signal that drawing need a refresh @@ -177,6 +176,7 @@ Module PBMap #PB_MAP_REDRAW = #PB_EventType_FirstCustomValue + 1 #PB_MAP_RETRY = #PB_EventType_FirstCustomValue + 2 + #PB_MAP_TILE_CLEANUP = #PB_EventType_FirstCustomValue + 3 ;-Global variables Global PBMap.PBMap, Null.i @@ -343,6 +343,9 @@ Module PBMap ;Should not occur KillThread(PBMap\MemCache\Images()\Tile\GetImageThread) EndIf + Else + FreeMemory(PBMap\MemCache\Images()\Tile) + PBMap\MemCache\Images()\Tile = 0 EndIf Else DeleteMapElement(PBMap\MemCache\Images()) @@ -533,25 +536,19 @@ Module PBMap Repeat nImage = GetTileFromWeb(*Tile\PBMapZoom, *Tile\PBMapTileX, *Tile\PBMapTileY, *Tile\CacheFile, *Tile\Layer) If nImage <> -1 - LockMutex(PBMap\TileThreadMutex) - PBMap\MemCache\Images(*Tile\key)\nImage = nImage - UnlockMutex(PBMap\TileThreadMutex) MyDebug("Image key : " + *Tile\key + " web image loaded", 3) - PBMap\Dirty = #True *Tile\RetryNb = 0 ; PostEvent(#PB_Event_Gadget, PBMap\Window, PBmap\Gadget, #PB_MAP_REDRAW, *Tile) ;If image is loaded from web, redraw Else MyDebug("Image key : " + *Tile\key + " web image not correctly loaded", 3) - Delay(5000) + Delay(1000) *Tile\RetryNb - 1 ; PostEvent(#PB_Event_Gadget, PBMap\Window, PBmap\Gadget, #PB_MAP_RETRY, *Tile) ;If image is not loaded, retry EndIf Until *Tile\RetryNb <= 0 - ;End of the thread - LockMutex(PBMap\TileThreadMutex) - FreeMemory(PBMap\MemCache\Images(*Tile\key)\Tile) - PBMap\MemCache\Images(*Tile\key)\Tile = 0 - UnlockMutex(PBMap\TileThreadMutex) + *Tile\nImage = nImage + *Tile\RetryNb = -2 ;End of the thread + PostEvent(#PB_Event_Gadget, PBMap\Window, PBmap\Gadget, #PB_MAP_TILE_CLEANUP, *Tile) ;To free memory outside the thread EndProcedure Procedure.i GetTile(key.s, CacheFile.s, px.i, py.i, tilex.i, tiley.i, Layer.i) @@ -567,17 +564,16 @@ Module PBMap AddMapElement(PBMap\MemCache\Images(), key) MyDebug("Key : " + key + " added in memory cache!", 3) PBMap\MemCache\Images()\nImage = -1 - ;UnlockMutex(PBMap\TileThreadMutex) EndIf If PBMap\MemCache\Images()\Tile = 0 ;Check if a loading thread is not running - MyDebug("Trying to load from HDD " + CacheFile) + MyDebug("Trying to load from HDD " + CacheFile, 3) timg = GetTileFromHDD(CacheFile.s) If timg <> -1 - MyDebug("Key : " + key + " found on HDD") + MyDebug("Key : " + key + " found on HDD", 3) PBMap\MemCache\Images()\nImage = timg ProcedureReturn timg EndIf - MyDebug("Key : " + key + " not found on HDD") + MyDebug("Key : " + key + " not found on HDD", 3) ;Launch a new thread Protected *NewTile.Tile = AllocateMemory(SizeOf(Tile)) If *NewTile @@ -593,33 +589,17 @@ Module PBMap \CacheFile = CacheFile \Layer = Layer \RetryNb = 5 + \nImage = -1 + MyDebug(" Creating get image thread nb " + Str(\GetImageThread) + " to get " + CacheFile, 3) \GetImageThread = CreateThread(@GetImageThread(), *NewTile) - myDebug(" Creating get image thread nb " + Str(\GetImageThread)) EndWith Else - MyDebug(" Error, can't create a new tile loading thread") - EndIf - EndIf + MyDebug(" Error, can't create a new tile loading thread", 3) + EndIf + EndIf ProcedureReturn timg EndProcedure - ; Procedure DrawTile(*Tile.Tile) - ; Protected x = *Tile\Position\x - ; Protected y = *Tile\Position\y - ; MyDebug(" Drawing tile nb " + " X : " + Str(*Tile\PBMapTileX) + " Y : " + Str(*Tile\PBMapTileX), 2) - ; MyDebug(" at coords " + Str(x) + "," + Str(y), 2) - ; MovePathCursor(x, y) - ; DrawVectorImage(ImageID(*Tile\nImage)) - ; EndProcedure - ; - ; Procedure DrawLoading(*Tile.Tile) - ; Protected x = *Tile\Position\x - ; Protected y = *Tile\Position\y - ; Protected Text$ = "Loading" - ; MyDebug(" Drawing tile nb " + " X : " + Str(*Tile\PBMapTileX) + " Y : " + Str(*Tile\PBMapTileX), 2) - ; MyDebug(" at coords " + Str(x) + "," + Str(y)) - ; EndProcedure - Procedure DrawTiles(*Drawing.DrawingParameters, Layer.i, alpha.i=255) ;DisableDebugger Protected x.i, y.i,kq.q @@ -636,7 +616,7 @@ Module PBMap ; EndIf px = *Drawing\CenterX + x * PBMap\TileSize - *Drawing\DeltaX py = *Drawing\CenterY + y * PBMap\TileSize - *Drawing\DeltaY - tilex = ((tx+x) % (1<< PBMap\Zoom)) + tilex = ((tx+x) % (1< 0 - If PBMap\MemCache\Images()\Tile\GetImageThread <> 0 + If IsThread(PBMap\MemCache\Images()\Tile\GetImageThread) ThreadCounter + 1 EndIf EndIf @@ -869,7 +838,6 @@ Module PBMap ; PBMap\Redraw = #True ; ;PostEvent(#PB_Event_Gadget, PBMap\Window, PBmap\Gadget, #PB_MAP_REDRAW) ; EndIf - PBMap\OnStage = #False EndProcedure Procedure Refresh() @@ -1029,7 +997,7 @@ Module PBMap Procedure CanvasEvents() Protected MouseX.i, MouseY.i - Protected Marker.Position + Protected Marker.Position, *Tile.Tile PBMap\Moving = #False Select EventType() Case #PB_EventType_MouseWheel @@ -1103,11 +1071,20 @@ Module PBMap Case #PB_MAP_RETRY Debug "Reload" PBMap\Redraw = #True + Case #PB_MAP_TILE_CLEANUP + *Tile = EventData() + ;If PBMap\MemCache\Images(*Tile\key)\Tile\RetryNb = -2 ;Check the end of the thread + Protected timg = PBMap\MemCache\Images(*Tile\key)\Tile\nImage + PBMap\MemCache\Images(*Tile\key)\nImage = timg + FreeMemory(PBMap\MemCache\Images(*Tile\key)\Tile) + PBMap\MemCache\Images(*Tile\key)\Tile = 0 + PBMap\Redraw = #True + ;EndIf EndSelect EndProcedure Procedure TimerEvents() - If EventTimer() = PBMap\Timer And (PBMap\Redraw Or PBMap\Dirty) And PBMap\OnStage = #False + If EventTimer() = PBMap\Timer And (PBMap\Redraw Or PBMap\Dirty) Drawing() EndIf EndProcedure @@ -1270,8 +1247,8 @@ CompilerIf #PB_Compiler_IsMainFile CompilerEndIf ; IDE Options = PureBasic 5.50 (Windows - x64) -; CursorPosition = 570 -; FirstLine = 520 +; CursorPosition = 600 +; FirstLine = 680 ; Folding = --------- ; EnableThread ; EnableXP From 19ce16e8d0ba2622b0c8ab7f393a133fa1275692 Mon Sep 17 00:00:00 2001 From: djes Date: Tue, 30 Aug 2016 12:20:31 +0200 Subject: [PATCH 19/62] Grid of degrees --- PBMap.pb | 701 +++++++++++++++++++++++++++++++------------------------ 1 file changed, 391 insertions(+), 310 deletions(-) diff --git a/PBMap.pb b/PBMap.pb index a3e75e3..d7f6348 100644 --- a/PBMap.pb +++ b/PBMap.pb @@ -1,4 +1,4 @@ -;************************************************************** +;;************************************************************** ; Program: PBMap ; Description: Permits the use of tiled maps like ; OpenStreetMap in a handy PureBASIC module @@ -30,7 +30,7 @@ DeclareModule PBMap ;-Show debug infos Global Verbose = 1 Global MyDebugLevel = 3 - ;-Proxy ON/OFF + ;-Proxy ON/OFF Global Proxy = #False #SCALE_NAUTICAL = 1 @@ -39,7 +39,6 @@ DeclareModule PBMap Declare InitPBMap(window) Declare SetMapServer(ServerURL.s = "http://tile.openstreetmap.org/", TileSize = 256, ZoomMin = 0, ZoomMax = 18) Declare MapGadget(Gadget.i, X.i, Y.i, Width.i, Height.i) - Declare Event(Event.l) Declare SetLocation(latitude.d, longitude.d, zoom = 15, mode.i = #PB_Absolute) Declare Drawing() Declare SetZoom(Zoom.i, mode.i = #PB_Relative) @@ -55,7 +54,6 @@ DeclareModule PBMap Declare.d GetLatitude() Declare.d GetLongitude() Declare.i GetZoom() - EndDeclareModule Module PBMap @@ -87,11 +85,18 @@ Module PBMap key.s CacheFile.s GetImageThread.i - layer.i + RetryNb.i + Layer.i + EndStructure + + Structure TileBounds + NorthWest.Position + SouthEast.Position EndStructure Structure DrawingParameters Position.Position + Bounds.TileBounds Canvas.i PBMapTileX.i PBMapTileY.i @@ -113,6 +118,7 @@ Module PBMap Structure ImgMemCach nImage.i + *Tile.Tile ;Location.Location ;Mutex.i EndStructure @@ -137,15 +143,16 @@ Module PBMap Window.i ; Parent Window Gadget.i ; Canvas Gadget Id Font.i ; Font to uses when write on the map + Timer.i TargetLocation.Location ; Latitude and Longitude from focus point Drawing.DrawingParameters ; Drawing parameters based on focus point - ; + ; CallBackLocation.i ; @Procedure(latitude.d,lontitude.d) CallBackMainPointer.i ; @Procedure(X.i, Y.i) to DrawPointer (you must use VectorDrawing lib) - ; + ; Position.PixelPosition ; Actual focus point coords in pixels (global) MoveStartingPoint.PixelPosition ; Start mouse position coords when dragging the map - ; + ; Array ServerURL.s(0) ; Web URL ex: http://tile.openstreetmap.org/ NumberOfMapLayers.i ; The number of map tile layers; @@ -153,15 +160,17 @@ Module PBMap ZoomMax.i ; Max Zoom supported by server Zoom.i ; Current zoom TileSize.i ; Tile size downloaded on the server ex : 256 - ; + ; HDDCachePath.S ; Path where to load and save tiles downloaded from server MemCache.TileMemCach ; Images in memory cache - ; + ; + OnStage.i + Redraw.i Moving.i Dirty.i ; To signal that drawing need a refresh - ; + ; MainDrawingThread.i - List TilesThreads.TileThread() + ;List TilesThreads.TileThread() TileThreadMutex.i; ;Mutex to protect resources List track.Location() ; To display a GPX track List Marker.Marker() ; To diplay marker @@ -173,6 +182,7 @@ Module PBMap EndStructure #PB_MAP_REDRAW = #PB_EventType_FirstCustomValue + 1 + #PB_MAP_RETRY = #PB_EventType_FirstCustomValue + 2 ;-Global variables Global PBMap.PBMap, Null.i @@ -204,8 +214,8 @@ Module PBMap Procedure.i CurlReceiveHTTPToFile(URL$, DestFileName$, ProxyURL$="", ProxyPort$="", ProxyUser$="", ProxyPassword$="") Protected *Buffer, curl.i, Timeout.i, res.i Protected FileHandle.i - MyDebug("ReceiveHTTPToFile from " + URL$ + " " + ProxyURL$ + ProxyPort$ + ProxyUser$, 3) - MyDebug(" to file : " + DestFileName$, 3) + MyDebug("CurlReceiveHTTPToFile from " + URL$ + " " + ProxyURL$ + " " + ProxyPort$ + " " + ProxyUser$, 4) + MyDebug(" to file : " + DestFileName$, 4) FileHandle = CreateFile(#PB_Any, DestFileName$) If FileHandle And Len(URL$) curl = curl_easy_init() @@ -238,11 +248,11 @@ Module PBMap curl_easy_setopt(curl, #CURLOPT_WRITEFUNCTION, @ReceiveHTTPWriteToFileFunction()) res = curl_easy_perform(curl) If res <> #CURLE_OK - MyDebug("CURL problem", 3) + MyDebug("CURL problem", 4) EndIf curl_easy_cleanup(curl) Else - MyDebug("Can't init CURL", 3) + MyDebug("Can't init CURL", 4) EndIf CloseFile(FileHandle) ProcedureReturn FileSize(DestFileName$) @@ -270,7 +280,7 @@ Module PBMap EndIf EndProcedure - Procedure InitPBMap(window) + Procedure InitPBMap(Window) Protected Result.i If Verbose OpenConsole() @@ -284,10 +294,11 @@ Module PBMap PBMap\TileThreadMutex = CreateMutex() PBMap\EditMarkerIndex = -1 ;Initialised with "no marker selected" PBMap\Font = LoadFont(#PB_Any, "Arial", 20, #PB_Font_Bold) - PBMap\Window = window + PBMap\Window = Window + PBMap\Timer = 1 PBMap\Options\WheelMouseRelative = #True SetMapServer("http://tile.openstreetmap.org/") - + ;-Preferences ;Use this to create and customize your preferences file for the first time ; CreatePreferences(GetHomeDirectory() + "PBMap.prefs") @@ -324,25 +335,27 @@ Module PBMap PBMap\ZoomMax = ZoomMax PBMap\TileSize = TileSize EndProcedure - Procedure Quit() PBMap\Drawing\End = #True ;Wait for loading threads to finish nicely. Passed 2 seconds, kills them. Protected TimeCounter = ElapsedMilliseconds() Repeat - ResetList(PBMap\TilesThreads()) - While NextElement(PBMap\TilesThreads()) - If IsThread(PBMap\TilesThreads()\GetImageThread) = 0 - FreeMemory(PBMap\TilesThreads()\Tile) - DeleteElement(PBMap\TilesThreads()) - ElseIf ElapsedMilliseconds() - TimeCounter > 2000 - ;Should not occur - KillThread(PBMap\TilesThreads()\GetImageThread) + ForEach PBMap\MemCache\Images() + If PBMap\MemCache\Images()\Tile <> 0 + If IsThread(PBMap\MemCache\Images()\Tile\GetImageThread) + PBMap\MemCache\Images()\Tile\RetryNb = 0 + If ElapsedMilliseconds() - TimeCounter > 2000 + ;Should not occur + KillThread(PBMap\MemCache\Images()\Tile\GetImageThread) + EndIf + EndIf + Else + DeleteMapElement(PBMap\MemCache\Images()) EndIf - Wend + Next Delay(10) - Until ListSize(PBMap\TilesThreads()) = 0 + Until MapSize(PBMap\MemCache\Images()) = 0 curl_global_cleanup() EndProcedure @@ -360,15 +373,6 @@ Module PBMap ProcedureReturn Result EndProcedure - Procedure MapGadget(Gadget.i, X.i, Y.i, Width.i, Height.i) - If Gadget = #PB_Any - PBMap\Gadget = CanvasGadget(PBMap\Gadget, X, Y, Width, Height, #PB_Canvas_Keyboard) ;#PB_Canvas_Keyboard has to be set for mousewheel to work on windows - Else - PBMap\Gadget = Gadget - CanvasGadget(PBMap\Gadget, X, Y, Width, Height, #PB_Canvas_Keyboard) - EndIf - EndProcedure - ;*** Converts coords to tile.decimal ;Warning, structures used in parameters are not tested Procedure LatLon2XY(*Location.Location, *Coords.Position) @@ -423,7 +427,7 @@ Module PBMap x2 = (PBMap\TargetLocation\Longitude+180)*(mapWidth/360) ; convert from degrees To radians latRad = PBMap\TargetLocation\Latitude*#PI/180; - ; get y value + ; get y value mercN = Log(Tan((#PI/4)+(latRad/2))) y2 = (mapHeight/2)-(mapWidth*mercN/(2*#PI)); *Pixel\x=GadgetWidth(PBMap\Gadget)/2 - (x2-x1) @@ -460,83 +464,71 @@ Module PBMap EndIf EndProcedure + ; Procedure LoadErrorHandler() + ; MessageRequester("Error", "") + ; EndProcedure + Procedure.i GetTileFromHDD(CacheFile.s) Protected nImage.i - ; Debug "Loading image " + CacheFile + " ; Size : " + Str(FileSize(CacheFile)) If FileSize(CacheFile) > 0 + ; OnErrorCall(@LoadErrorHandler()) nImage = LoadImage(#PB_Any, CacheFile) + ; OnErrorDefault() If IsImage(nImage) - ;Debug "Success loading " + CacheFile + " as nImage " + Str(nImage) MyDebug("Success loading " + CacheFile + " as nImage " + Str(nImage), 3) ProcedureReturn nImage Else - ; Debug "Failed loading " + CacheFile + " as nImage " + Str(nImage) + " -> not an image !" + MyDebug("Failed loading " + CacheFile + " as nImage " + Str(nImage) + " -> not an image !", 3) MyDebug("Failed loading " + CacheFile + " as nImage " + Str(nImage) + " -> not an image !", 3) EndIf Else - ; Debug "Failed loading " + CacheFile + " -> Size <= 0" MyDebug("Failed loading " + CacheFile + " -> Size <= 0", 3) EndIf ProcedureReturn -1 EndProcedure - Procedure.i GetLocalTile(key.s, CacheFile.s) - Protected timg - MyDebug("Check if we have this image in memory", 3) - If FindMapElement(PBMap\MemCache\Images(), key) - MyDebug("Key : " + key + " found !", 3) - ProcedureReturn PBMap\MemCache\Images()\nImage - Else - MyDebug("Key : " + key + " Try HDD!") - timg = GetTileFromHDD(CacheFile.s) - If timg <> -1 - AddMapElement(PBMap\MemCache\Images(),key) - PBMap\MemCache\Images()\nImage = timg - EndIf - ProcedureReturn timg - EndIf - EndProcedure - - Procedure.i GetTileFromWeb(Zoom.i, XTile.i, YTile.i, CacheFile.s,layer.i) + Procedure.i GetTileFromWeb(Zoom.i, XTile.i, YTile.i, CacheFile.s, Layer.i) Protected *Buffer Protected nImage.i = -1 - Protected FileHandle.i,timg - Protected TileURL.s = PBMap\ServerURL(layer) + Str(Zoom) + "/" + Str(XTile) + "/" + Str(YTile) + ".png" - MyDebug("Check if we have this image on Web", 3) + Protected FileSize.i, timg + Protected TileURL.s = PBMap\ServerURL(Layer) + Str(Zoom) + "/" + Str(XTile) + "/" + Str(YTile) + ".png" If Proxy - FileHandle = CurlReceiveHTTPToFile(TileURL, CacheFile, ProxyURL$, ProxyPort$, ProxyUser$, ProxyPassword$) - If FileHandle + FileSize = CurlReceiveHTTPToFile(TileURL, CacheFile, ProxyURL$, ProxyPort$, ProxyUser$, ProxyPassword$) + If FileSize > 0 + MyDebug("Loaded from web " + TileURL + " as CacheFile " + CacheFile, 3) nImage = GetTileFromHDD(CacheFile) Else - MyDebug("File " + TileURL + " not correctly received with Curl and proxy", 3) + MyDebug("Problem loading from web " + TileURL, 3) EndIf Else *Buffer = ReceiveHTTPMemory(TileURL) ;TODO to thread by using #PB_HTTP_Asynchronous If *Buffer nImage = CatchImage(#PB_Any, *Buffer, MemorySize(*Buffer)) If IsImage(nImage) - MyDebug("Load from web " + TileURL + " as Tile nb " + nImage, 3) - ; Debug "url: " + TileURL - ; Debug "cache file: " + CacheFile - ; timg = LoadImage(#PB_Any,CacheFile) - ; If timg - ; StartDrawing(ImageOutput(timg)) - ; DrawImage(ImageID(nimage)) - ; StopDrawing() - ; SaveImage(timg, CacheFile, #PB_ImagePlugin_PNG) - ; FreeImage(timg) - ; Else - SaveImage(nImage, CacheFile, #PB_ImagePlugin_PNG) - FreeMemory(*Buffer) - ; EndIf + ; Debug "url: " + TileURL + ; Debug "cache file: " + CacheFile + ; timg = LoadImage(#PB_Any,CacheFile) + ; If timg + ; StartDrawing(ImageOutput(timg)) + ; DrawImage(ImageID(nimage)) + ; StopDrawing() + ; SaveImage(timg, CacheFile, #PB_ImagePlugin_PNG) + ; FreeImage(timg) + ; Else + If SaveImage(nImage, CacheFile, #PB_ImagePlugin_PNG,0,32) + MyDebug("Loaded from web " + TileURL + " as CacheFile " + CacheFile, 3) + Else + MyDebug("Loaded from web " + TileURL + " but cannot save to CacheFile " + CacheFile, 3) + EndIf + FreeMemory(*Buffer) + ; EndIf Else - MyDebug("Can't catch image " + TileURL, 3) + MyDebug("Can't catch image loaded from web " + TileURL, 3) nImage = -1 ;ShowMemoryViewer(*Buffer, MemorySize(*Buffer)) EndIf Else - ; Debug("ReceiveHTTPMemory's buffer is empty") - MyDebug("ReceiveHTTPMemory's buffer is empty", 3) + MyDebug(" Problem loading from web " + TileURL, 3) EndIf EndIf ProcedureReturn nImage @@ -544,141 +536,172 @@ Module PBMap Procedure GetImageThread(*Tile.Tile) Protected nImage.i = -1 - nImage = GetTileFromWeb(*Tile\PBMapZoom, *Tile\PBMapTileX, *Tile\PBMapTileY, *Tile\CacheFile,*tile\layer) - If nImage <> -1 - LockMutex(PBMap\TileThreadMutex) - PBMap\MemCache\Images(*Tile\key)\nImage = nImage - UnlockMutex(PBMap\TileThreadMutex) - MyDebug("Image nb " + Str(nImage) + " successfully added to mem cache") - MyDebug("With the following key : " + *Tile\key) - *Tile\nImage = nImage - PostEvent(#PB_Event_Gadget, PBMap\window,PBmap\Gadget, #PB_MAP_REDRAW, *Tile) - Else - MyDebug("Error GetImageThread procedure, image not loaded - " + *Tile\key) - ;nImage = -1 - EndIf - + Repeat + nImage = GetTileFromWeb(*Tile\PBMapZoom, *Tile\PBMapTileX, *Tile\PBMapTileY, *Tile\CacheFile, *Tile\Layer) + If nImage <> -1 + LockMutex(PBMap\TileThreadMutex) + PBMap\MemCache\Images(*Tile\key)\nImage = nImage + UnlockMutex(PBMap\TileThreadMutex) + MyDebug("Image key : " + *Tile\key + " web image loaded", 3) + PBMap\Dirty = #True + *Tile\RetryNb = 0 + ; PostEvent(#PB_Event_Gadget, PBMap\Window, PBmap\Gadget, #PB_MAP_REDRAW, *Tile) ;If image is loaded from web, redraw + Else + MyDebug("Image key : " + *Tile\key + " web image not correctly loaded", 3) + Delay(5000) + *Tile\RetryNb - 1 + ; PostEvent(#PB_Event_Gadget, PBMap\Window, PBmap\Gadget, #PB_MAP_RETRY, *Tile) ;If image is not loaded, retry + EndIf + Until *Tile\RetryNb <= 0 + ;End of the thread + LockMutex(PBMap\TileThreadMutex) + FreeMemory(PBMap\MemCache\Images(*Tile\key)\Tile) + PBMap\MemCache\Images(*Tile\key)\Tile = 0 + UnlockMutex(PBMap\TileThreadMutex) EndProcedure - Procedure DrawTile(*Tile.Tile) - Protected x = *Tile\Position\x - Protected y = *Tile\Position\y - MyDebug(" Drawing tile nb " + " X : " + Str(*Tile\PBMapTileX) + " Y : " + Str(*Tile\PBMapTileX), 2) - MyDebug(" at coords " + Str(x) + "," + Str(y), 2) - MovePathCursor(x, y) - DrawVectorImage(ImageID(*Tile\nImage)) + Procedure.i GetTile(key.s, CacheFile.s, px.i, py.i, tilex.i, tiley.i, Layer.i) + Protected timg = -1 + If FindMapElement(PBMap\MemCache\Images(), key) + MyDebug("Key : " + key + " found in memory cache!", 3) + timg = PBMap\MemCache\Images()\nImage + If timg <> -1 + MyDebug("Image : " + timg + " found in memory cache!", 3) + ProcedureReturn timg + EndIf + Else + AddMapElement(PBMap\MemCache\Images(), key) + MyDebug("Key : " + key + " added in memory cache!", 3) + PBMap\MemCache\Images()\nImage = -1 + ;UnlockMutex(PBMap\TileThreadMutex) + EndIf + If PBMap\MemCache\Images()\Tile = 0 ;Check if a loading thread is not running + MyDebug("Trying to load from HDD " + CacheFile) + timg = GetTileFromHDD(CacheFile.s) + If timg <> -1 + MyDebug("Key : " + key + " found on HDD") + PBMap\MemCache\Images()\nImage = timg + ProcedureReturn timg + EndIf + MyDebug("Key : " + key + " not found on HDD") + ;Launch a new thread + Protected *NewTile.Tile = AllocateMemory(SizeOf(Tile)) + If *NewTile + With *NewTile + PBMap\MemCache\Images()\Tile = *NewTile + ;New tile parameters + \Position\x = px + \Position\y = py + \PBMapTileX = tilex + \PBMapTileY = tiley + \PBMapZoom = PBMap\Zoom + \key = key + \CacheFile = CacheFile + \Layer = Layer + \RetryNb = 5 + \GetImageThread = CreateThread(@GetImageThread(), *NewTile) + myDebug(" Creating get image thread nb " + Str(\GetImageThread)) + EndWith + Else + MyDebug(" Error, can't create a new tile loading thread") + EndIf + EndIf + ProcedureReturn timg EndProcedure - Procedure DrawLoading(*Tile.Tile) - Protected x = *Tile\Position\x - Protected y = *Tile\Position\y - Protected Text$ = "Loading" - MyDebug(" Drawing tile nb " + " X : " + Str(*Tile\PBMapTileX) + " Y : " + Str(*Tile\PBMapTileX), 2) - MyDebug(" at coords " + Str(x) + "," + Str(y)) - EndProcedure + ; Procedure DrawTile(*Tile.Tile) + ; Protected x = *Tile\Position\x + ; Protected y = *Tile\Position\y + ; MyDebug(" Drawing tile nb " + " X : " + Str(*Tile\PBMapTileX) + " Y : " + Str(*Tile\PBMapTileX), 2) + ; MyDebug(" at coords " + Str(x) + "," + Str(y), 2) + ; MovePathCursor(x, y) + ; DrawVectorImage(ImageID(*Tile\nImage)) + ; EndProcedure + ; + ; Procedure DrawLoading(*Tile.Tile) + ; Protected x = *Tile\Position\x + ; Protected y = *Tile\Position\y + ; Protected Text$ = "Loading" + ; MyDebug(" Drawing tile nb " + " X : " + Str(*Tile\PBMapTileX) + " Y : " + Str(*Tile\PBMapTileX), 2) + ; MyDebug(" at coords " + Str(x) + "," + Str(y)) + ; EndProcedure - Procedure DrawTiles(*Drawing.DrawingParameters,layer.i,alpha.i=255) + Procedure DrawTiles(*Drawing.DrawingParameters, Layer.i, alpha.i=255) ;DisableDebugger Protected x.i, y.i,kq.q - Protected tx = Int(*Drawing\Position\x) ;Don't forget the Int() ! + Protected tx = Int(*Drawing\Position\x) ;Don't forget the Int() ! Protected ty = Int(*Drawing\Position\y) Protected nx = *Drawing\CenterX / PBMap\TileSize ;How many tiles around the point Protected ny = *Drawing\CenterY / PBMap\TileSize Protected px, py, img, tilex,tiley, key.s, CacheFile.s MyDebug("Drawing tiles") + + *Drawing\Bounds\NorthWest\x = tx-nx-1 + *Drawing\Bounds\NorthWest\y = ty-ny-1 + *Drawing\Bounds\SouthEast\x = tx+nx+1 + *Drawing\Bounds\SouthEast\y = ty+ny+1 + For y = - ny - 1 To ny + 1 For x = - nx - 1 To nx + 1 - px = *Drawing\CenterX + x * PBMap\TileSize - *Drawing\DeltaX - py = *Drawing\CenterY + y * PBMap\TileSize - *Drawing\DeltaY - tilex = ((tx+x) % (1<< PBMap\Zoom)) - tiley = ty+y - kq = layer | (pbmap\zoom << 8) | (tilex << 16) | (tiley << 36) - key = Str(kq) - CacheFile = PBMap\HDDCachePath + key + ".png" - - - img = GetLocalTile(key, CacheFile) - If img <> -1 - MovePathCursor(px, py) - DrawVectorImage(ImageID(img),alpha) - Else - MovePathCursor(px, py) - DrawVectorImage(ImageID(PBMap\ImgLoading),alpha) - Protected *NewTile.Tile = AllocateMemory(SizeOf(Tile)) - If *NewTile - With *NewTile - ;Keep a track of tiles (especially to free memory) - ;TODO : not sure if it really needs a mutex here, i'm still trying to find where the white tile issue is coming from - ;a tile download is either getting clobbered or timing out or getting kicked and it results in a corrupted png file on linux - LockMutex(PBMap\TileThreadMutex) - AddElement(PBMap\TilesThreads()) - PBMap\TilesThreads()\Tile = *NewTile - UnlockMutex(PBMap\TileThreadMutex) - ;New tile parameters - \Position\x = px - \Position\y = py - \PBMapTileX = tilex - \PBMapTileY = tiley - \PBMapZoom = PBMap\Zoom - \key = key - \CacheFile = CacheFile - \layer = layer - LockMutex(PBMap\TileThreadMutex) - AddMapElement(PBMap\MemCache\Images(), \key) ;Add the image to the cache, once in this loop - PBMap\MemCache\Images()\nImage = PBMap\ImgLoading - UnlockMutex(PBMap\TileThreadMutex) - \GetImageThread = CreateThread(@GetImageThread(), *NewTile) - PBMap\TilesThreads()\GetImageThread = \GetImageThread - myDebug(" Creating get image thread nb " + Str(\GetImageThread)) - EndWith - Else - MyDebug(" Error, can't create a new tile") - Break 2 - EndIf - EndIf - - Next - - Next - - - ;Free tile memory - ;TODO : maybe get out this proc from drawtiles in a special "free ressources" task - ForEach PBMap\TilesThreads() - ;Check if there's no more loading thread - If IsThread(PBMap\TilesThreads()\GetImageThread) = 0 - FreeMemory(PBMap\TilesThreads()\Tile) - DeleteElement(PBMap\TilesThreads()) - EndIf - Next - ;EnableDebugger + ; If PBMap\Moving ;If drawing was threaded, this would exit the loop when the user is moving + ; Break 2 + ; EndIf + px = *Drawing\CenterX + x * PBMap\TileSize - *Drawing\DeltaX + py = *Drawing\CenterY + y * PBMap\TileSize - *Drawing\DeltaY + tilex = ((tx+x) % (1<< PBMap\Zoom)) + tiley = ty+y + kq = Layer | (pbmap\zoom << 8) | (tilex << 16) | (tiley << 36) + key = Str(kq) + CacheFile = PBMap\HDDCachePath + key + ".png" + + img = GetTile(key, CacheFile, px, py, tilex, tiley, Layer) + If img <> -1 + MovePathCursor(px, py) + DrawVectorImage(ImageID(img), alpha) + Else + MovePathCursor(px, py) + DrawVectorImage(ImageID(PBMap\ImgLoading), alpha) + EndIf + Next + Next + + ; ;Free tile memory + ; ;TODO : maybe get out this proc from drawtiles in a special "free ressources" task + ; ForEach PBMap\TilesThreads() + ; ;Check if there's no more loading thread + ; If IsThread(PBMap\TilesThreads()\GetImageThread) = 0 + ; FreeMemory(PBMap\TilesThreads()\Tile) + ; DeleteElement(PBMap\TilesThreads()) + ; EndIf + ; Next + EndProcedure -; ;-**** Clean Mem Cache -; ;TODO in development, by now there's many cache problem as the loading thread could be perturbed -; ;GadgetWidth(PBMap\Gadget)/PBMap\TileSize -; Protected MaxNbTile.l -; If GadgetWidth(PBMap\Gadget)>GadgetHeight(PBMap\Gadget) -; MaxNbTile=GadgetWidth(PBMap\Gadget)/PBMap\TileSize -; Else -; MaxNbTile=GadgetHeight(PBMap\Gadget)/PBMap\TileSize -; EndIf -; Protected Scale.d= 40075*Cos(Radian(PBMap\TargetLocation\Latitude))/Pow(2,PBMap\Zoom) -; Protected Limit.d=Scale*(MaxNbTile)*1.5 -; Debug "Cache cleaning" -; ForEach PBMap\MemCache\Images() -; Protected Distance.d = HaversineInKM(@PBMap\MemCache\Images()\Location, @PBMap\TargetLocation) -; Debug "Limit:"+StrD(Limit)+" Distance:"+StrD(Distance) -; If Distance>Limit And IsImage(PBMap\MemCache\Images()\nImage) -; LockMutex(PBMap\MemCache\Images()\Mutex) -; Debug "delete" -; Debug PBMap\MemCache\Images() -; FreeImage(PBMap\MemCache\Images()\nImage) -; UnlockMutex(PBMap\MemCache\Images()\Mutex) -; FreeMutex(PBMap\MemCache\Images()\Mutex) -; DeleteMapElement(PBMap\MemCache\Images()) -; EndIf -; Next + ; ;-**** Clean Mem Cache + ; ;TODO in development, by now there's many cache problem as the loading thread could be perturbed + ; ;GadgetWidth(PBMap\Gadget)/PBMap\TileSize + ; Protected MaxNbTile.l + ; If GadgetWidth(PBMap\Gadget)>GadgetHeight(PBMap\Gadget) + ; MaxNbTile=GadgetWidth(PBMap\Gadget)/PBMap\TileSize + ; Else + ; MaxNbTile=GadgetHeight(PBMap\Gadget)/PBMap\TileSize + ; EndIf + ; Protected Scale.d= 40075*Cos(Radian(PBMap\TargetLocation\Latitude))/Pow(2,PBMap\Zoom) + ; Protected Limit.d=Scale*(MaxNbTile)*1.5 + ; Debug "Cache cleaning" + ; ForEach PBMap\MemCache\Images() + ; Protected Distance.d = HaversineInKM(@PBMap\MemCache\Images()\Location, @PBMap\TargetLocation) + ; Debug "Limit:"+StrD(Limit)+" Distance:"+StrD(Distance) + ; If Distance>Limit And IsImage(PBMap\MemCache\Images()\nImage) + ; LockMutex(PBMap\MemCache\Images()\Mutex) + ; Debug "delete" + ; Debug PBMap\MemCache\Images() + ; FreeImage(PBMap\MemCache\Images()\nImage) + ; UnlockMutex(PBMap\MemCache\Images()\Mutex) + ; FreeMutex(PBMap\MemCache\Images()\Mutex) + ; DeleteMapElement(PBMap\MemCache\Images()) + ; EndIf + ; Next Procedure DrawPointer(*Drawing.DrawingParameters) If PBMap\CallBackMainPointer > 0 @@ -719,9 +742,43 @@ Module PBMap MovePathCursor(x,y+12) AddPathLine(x+128,y+10) StrokePath(1) - EndProcedure - + + Procedure DrawDegrees(*Drawing.DrawingParameters,alpha=192) + Protected nx,ny,nx1,ny1,x,y,n,cx,dperpixel.d + Protected pos1.PixelPosition,pos2.PixelPosition,Degrees1.Location,degrees2.Location + + ;VectorFont(FontID(PBMap\Font), 10) + VectorSourceColor(RGBA(0, 0, 0,Alpha)) + + ;GetMapRegionDegrees(@Degrees1,@degrees2) + + XY2LatLon(*Drawing\Bounds\NorthWest,@Degrees1) + XY2LatLon(*Drawing\Bounds\SouthEast,@Degrees2) + + ny = Round(Degrees1\Latitude,#PB_Round_Up)+1 + ny1 = Round(degrees2\Latitude,#PB_Round_Down)-1 + nx = Round(Degrees1\Longitude,#PB_Round_Down)-1 + nx1 = Round(degrees2\Longitude,#PB_Round_Up) +1 + + For y = ny1 To ny + Degrees1\Latitude = y + degrees2\Latitude = y + 1 + For x = nx To nx1 + Degrees1\Longitude =x + Degrees2\Longitude =x+ 1 + GetPixelCoordFromLocation(@Degrees1,@pos1) + MovePathCursor(pos1\x,pos1\y) + AddPathLine(pos2\x,pos1\y) + MovePathCursor(pos1\x,pos1\y) + AddPathLine(pos1\x,pos2\y) + Next + Next + StrokePath(1) + + EndProcedure + + Procedure TrackPointer(x.i, y.i,dist.l) Protected color.l color=RGBA(0, 0, 0, 255) @@ -813,6 +870,9 @@ Module PBMap Procedure Drawing() Protected *Drawing.DrawingParameters = @PBMap\Drawing Protected Px.d, Py.d,a + PBMap\OnStage = #True + PBMap\Dirty = #False + PBMap\Redraw = #False ;Precalc some values *Drawing\CenterX = GadgetWidth(PBMap\Gadget) / 2 *Drawing\CenterY = GadgetHeight(PBMap\Gadget) / 2 @@ -826,8 +886,8 @@ Module PBMap StartVectorDrawing(CanvasVectorOutput(PBMap\Gadget)) ;TODO add in layers of tiles ;this way we can cache them as 0 base 1.n layers ;such as for openseamap tiles which are overlaid. not that efficent from here though. - For a = 0 To PBMap\NumberOfMapLayers-1 - DrawTiles(*Drawing,a) + For a = 0 To PBMap\NumberOfMapLayers - 1 + DrawTiles(*Drawing, a) Next DrawTrack(*Drawing) DrawMarker(*Drawing) @@ -838,12 +898,26 @@ Module PBMap MovePathCursor(50,50) DrawVectorText(Str(MapSize(PBMap\MemCache\Images()))) MovePathCursor(50,80) - DrawVectorText(Str(ListSize(PBMap\TilesThreads()))) - + Protected ThreadCounter = 0 + ForEach PBMap\MemCache\Images() + If PBMap\MemCache\Images()\Tile <> 0 + If PBMap\MemCache\Images()\Tile\GetImageThread <> 0 + ThreadCounter + 1 + EndIf + EndIf + Next + DrawVectorText(Str(ThreadCounter)) ;If PBMap\Options\ShowScale - DrawScale(*Drawing,10,GadgetHeight(PBMAP\Gadget)-20,192) + DrawScale(*Drawing,10,GadgetHeight(PBMAP\Gadget)-20,192) + DrawDegrees(*Drawing,192) ;EndIf - StopVectorDrawing() + StopVectorDrawing() + ;If there was a problem while drawing, redraw + ; If PBMap\Dirty + ; PBMap\Redraw = #True + ; ;PostEvent(#PB_Event_Gadget, PBMap\Window, PBmap\Gadget, #PB_MAP_REDRAW) + ; EndIf + PBMap\OnStage = #False EndProcedure Procedure Refresh() @@ -948,8 +1022,8 @@ Module PBMap PBMap\Options\ScaleUnit = ScaleUnit Drawing() EndProcedure - - ;Zoom on x, y position relative to the canvas gadget + + ;Zoom on x, y position relative to the canvas gadget Procedure SetZoomOnPosition(x, y, zoom) Protected MouseX.d, MouseY.d Protected OldPx.d, OldPy.d, OldMx.d, OldMy.d @@ -1001,95 +1075,103 @@ Module PBMap ProcedureReturn Value EndProcedure - Procedure Event(Event.l) - Protected Gadget.i + Procedure CanvasEvents() Protected MouseX.i, MouseY.i Protected Marker.Position - Protected *Drawing.DrawingParameters - If IsGadget(PBMap\Gadget) And GadgetType(PBMap\Gadget) = #PB_GadgetType_Canvas - Select Event - Case #PB_Event_Gadget ;{ - Gadget = EventGadget() - Select Gadget - Case PBMap\Gadget - Select EventType() - Case #PB_EventType_MouseWheel - If PBMap\Options\WheelMouseRelative - ;Relative zoom (centered on the mouse) - SetZoomOnPosition(GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseX), GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseY), GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_WheelDelta)) - Else - ;Absolute zoom (centered on the center of the map) - SetZoom(GetGadgetAttribute(PBMap\Gadget,#PB_Canvas_WheelDelta), #PB_Relative) - EndIf - Case #PB_EventType_LeftButtonDown - ;Check if we select a marker - MouseX = PBMap\Position\x - GadgetWidth(PBMap\Gadget) / 2 + GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseX) - MouseY = PBMap\Position\y - GadgetHeight(PBMap\Gadget) / 2 + GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseY) - ForEach PBMap\Marker() - LatLon2XY(@PBMap\Marker()\Location, @Marker) - Marker\x * PBMap\TileSize - Marker\y * PBMap\TileSize - If Distance(Marker\x, Marker\y, MouseX, MouseY) < 8 - PBMap\EditMarkerIndex = ListIndex(PBMap\Marker()) - Break - EndIf - Next - ;Mem cursor Coord - PBMap\MoveStartingPoint\x = GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseX) - PBMap\MoveStartingPoint\y = GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseY) - Case #PB_EventType_MouseMove - If PBMap\MoveStartingPoint\x <> - 1 - MouseX = GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseX) - PBMap\MoveStartingPoint\x - MouseY = GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseY) - PBMap\MoveStartingPoint\y - PBMap\Moving = #True - ;Move marker - If PBMap\EditMarkerIndex > -1 - SelectElement(PBMap\Marker(), PBMap\EditMarkerIndex) - LatLon2XY(@PBMap\Marker()\Location, @Marker) - Marker\x + MouseX / PBMap\TileSize - Marker\y + MouseY / PBMap\TileSize - XY2LatLon(@Marker, @PBMap\Marker()\Location) - Else - ;New move values - PBMap\Position\x - MouseX - PBMap\Position\y - MouseY - ;PBMap tile position in tile.decimal - PBMap\Drawing\Position\x = PBMap\Position\x / PBMap\TileSize - PBMap\Drawing\Position\y = PBMap\Position\y / PBMap\TileSize - PBMap\Drawing\PassNb = 1 - XY2LatLon(@PBMap\Drawing, @PBMap\TargetLocation) - ;If CallBackLocation send Location to function - If PBMap\CallBackLocation > 0 - CallFunctionFast(PBMap\CallBackLocation, @PBMap\TargetLocation) - EndIf - EndIf - Drawing() - PBMap\MoveStartingPoint\x = GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseX) - PBMap\MoveStartingPoint\y = GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseY) - EndIf - Case #PB_EventType_LeftButtonUp - PBMap\Moving = #False - PBMap\MoveStartingPoint\x = - 1 - If PBMap\EditMarkerIndex > -1 - PBMap\EditMarkerIndex = -1 - Else ;Move Map - PBMap\Drawing\Position\x = PBMap\Position\x / PBMap\TileSize - PBMap\Drawing\Position\y = PBMap\Position\y / PBMap\TileSize - MyDebug("PBMap\Drawing\Position\x " + Str(PBMap\Drawing\Position\x) + " ; PBMap\Drawing\Position\y " + Str(PBMap\Drawing\Position\y) ) - XY2LatLon(@PBMap\Drawing, @PBMap\TargetLocation) - Drawing() - EndIf - Case #PB_MAP_REDRAW - Drawing() - EndSelect - EndSelect - EndSelect - Else - MessageRequester("Module PBMap", "You must use PBMapGadget before", #PB_MessageRequester_Ok ) - End - EndIf - + PBMap\Moving = #False + Select EventType() + Case #PB_EventType_MouseWheel + If PBMap\Options\WheelMouseRelative + ;Relative zoom (centered on the mouse) + SetZoomOnPosition(GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseX), GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseY), GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_WheelDelta)) + Else + ;Absolute zoom (centered on the center of the map) + SetZoom(GetGadgetAttribute(PBMap\Gadget,#PB_Canvas_WheelDelta), #PB_Relative) + EndIf + Case #PB_EventType_LeftButtonDown + ;Check if we select a marker + MouseX = PBMap\Position\x - GadgetWidth(PBMap\Gadget) / 2 + GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseX) + MouseY = PBMap\Position\y - GadgetHeight(PBMap\Gadget) / 2 + GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseY) + ForEach PBMap\Marker() + LatLon2XY(@PBMap\Marker()\Location, @Marker) + Marker\x * PBMap\TileSize + Marker\y * PBMap\TileSize + If Distance(Marker\x, Marker\y, MouseX, MouseY) < 8 + PBMap\EditMarkerIndex = ListIndex(PBMap\Marker()) + Break + EndIf + Next + ;Mem cursor Coord + PBMap\MoveStartingPoint\x = GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseX) + PBMap\MoveStartingPoint\y = GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseY) + Case #PB_EventType_MouseMove + PBMap\Moving = #True + If PBMap\MoveStartingPoint\x <> - 1 + MouseX = GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseX) - PBMap\MoveStartingPoint\x + MouseY = GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseY) - PBMap\MoveStartingPoint\y + ;Move marker + If PBMap\EditMarkerIndex > -1 + SelectElement(PBMap\Marker(), PBMap\EditMarkerIndex) + LatLon2XY(@PBMap\Marker()\Location, @Marker) + Marker\x + MouseX / PBMap\TileSize + Marker\y + MouseY / PBMap\TileSize + XY2LatLon(@Marker, @PBMap\Marker()\Location) + Else + ;New move values + PBMap\Position\x - MouseX + PBMap\Position\y - MouseY + ;PBMap tile position in tile.decimal + PBMap\Drawing\Position\x = PBMap\Position\x / PBMap\TileSize + PBMap\Drawing\Position\y = PBMap\Position\y / PBMap\TileSize + PBMap\Drawing\PassNb = 1 + XY2LatLon(@PBMap\Drawing, @PBMap\TargetLocation) + ;If CallBackLocation send Location to function + If PBMap\CallBackLocation > 0 + CallFunctionFast(PBMap\CallBackLocation, @PBMap\TargetLocation) + EndIf + EndIf + PBMap\Redraw = #True + PBMap\MoveStartingPoint\x = GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseX) + PBMap\MoveStartingPoint\y = GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseY) + EndIf + Case #PB_EventType_LeftButtonUp + PBMap\MoveStartingPoint\x = - 1 + If PBMap\EditMarkerIndex > -1 + PBMap\EditMarkerIndex = -1 + Else ;Move Map + PBMap\Drawing\Position\x = PBMap\Position\x / PBMap\TileSize + PBMap\Drawing\Position\y = PBMap\Position\y / PBMap\TileSize + MyDebug("PBMap\Drawing\Position\x " + Str(PBMap\Drawing\Position\x) + " ; PBMap\Drawing\Position\y " + Str(PBMap\Drawing\Position\y) ) + XY2LatLon(@PBMap\Drawing, @PBMap\TargetLocation) + PBMap\Redraw = #True + EndIf + Case #PB_MAP_REDRAW + Debug "Redraw" + PBMap\Redraw = #True + Case #PB_MAP_RETRY + Debug "Reload" + PBMap\Redraw = #True + EndSelect EndProcedure + + Procedure TimerEvents() + If EventTimer() = PBMap\Timer And (PBMap\Redraw Or PBMap\Dirty) And PBMap\OnStage = #False + Drawing() + EndIf + EndProcedure + + Procedure MapGadget(Gadget.i, X.i, Y.i, Width.i, Height.i) + If Gadget = #PB_Any + PBMap\Gadget = CanvasGadget(PBMap\Gadget, X, Y, Width, Height, #PB_Canvas_Keyboard) ;#PB_Canvas_Keyboard has to be set for mousewheel to work on windows + Else + PBMap\Gadget = Gadget + CanvasGadget(PBMap\Gadget, X, Y, Width, Height, #PB_Canvas_Keyboard) + EndIf + BindGadgetEvent(PBMap\Gadget, @CanvasEvents()) + AddWindowTimer(PBMap\Window, PBMap\Timer, 20) + BindEvent(#PB_Event_Timer, @TimerEvents()) + EndProcedure + EndModule ;-Exemple @@ -1170,12 +1252,12 @@ CompilerIf #PB_Compiler_IsMainFile LoadFont(0, "Arial", 12) LoadFont(1, "Arial", 12, #PB_Font_Bold) - + TextGadget(#Text_1, 530, 50, 60, 15, "Movements") - ButtonGadget(#Gdt_Left, 550, 100, 30, 30, Chr($E7)) : SetGadgetFont(#Gdt_Left, FontID(0)) - ButtonGadget(#Gdt_Right, 610, 100, 30, 30, Chr($E8)) : SetGadgetFont(#Gdt_Right, FontID(0)) - ButtonGadget(#Gdt_Up, 580, 070, 30, 30, Chr($E9)) : SetGadgetFont(#Gdt_Up, FontID(0)) - ButtonGadget(#Gdt_Down, 580, 130, 30, 30, Chr($EA)) : SetGadgetFont(#Gdt_Down, FontID(0)) + ButtonGadget(#Gdt_Left, 550, 100, 30, 30, Chr($25C4)) : SetGadgetFont(#Gdt_Left, FontID(0)) + ButtonGadget(#Gdt_Right, 610, 100, 30, 30, Chr($25BA)) : SetGadgetFont(#Gdt_Right, FontID(0)) + ButtonGadget(#Gdt_Up, 580, 070, 30, 30, Chr($25B2)) : SetGadgetFont(#Gdt_Up, FontID(0)) + ButtonGadget(#Gdt_Down, 580, 130, 30, 30, Chr($25BC)) : SetGadgetFont(#Gdt_Down, FontID(0)) TextGadget(#Text_2, 530, 160, 60, 15, "Zoom") ButtonGadget(#Button_4, 550, 180, 50, 30, " + ") : SetGadgetFont(#Button_4, FontID(1)) ButtonGadget(#Button_5, 600, 180, 50, 30, " - ") : SetGadgetFont(#Button_5, FontID(1)) @@ -1201,7 +1283,6 @@ CompilerIf #PB_Compiler_IsMainFile Repeat Event = WaitWindowEvent() - PBMap::Event(Event) Select Event Case #PB_Event_CloseWindow : Quit = 1 Case #PB_Event_Gadget ;{ @@ -1232,14 +1313,14 @@ CompilerIf #PB_Compiler_IsMainFile PBMap::Quit() EndIf - + CloseConsole() CompilerEndIf ; IDE Options = PureBasic 5.50 (Windows - x64) -; CursorPosition = 1219 -; FirstLine = 1193 -; Folding = ---------- +; CursorPosition = 1290 +; FirstLine = 1275 +; Folding = --------- ; EnableThread ; EnableXP ; DisableDebugger From 2b2ffac2eedcd8e719b87f762c0e9275de065de6 Mon Sep 17 00:00:00 2001 From: djes Date: Tue, 30 Aug 2016 12:44:23 +0200 Subject: [PATCH 20/62] Merging idle and mine --- PBMap.pb | 171 ++++++------------------------------------------------- 1 file changed, 16 insertions(+), 155 deletions(-) diff --git a/PBMap.pb b/PBMap.pb index b01b96f..e18815f 100644 --- a/PBMap.pb +++ b/PBMap.pb @@ -87,14 +87,11 @@ Module PBMap GetImageThread.i RetryNb.i Layer.i -<<<<<<< HEAD -======= EndStructure Structure TileBounds NorthWest.Position SouthEast.Position ->>>>>>> refs/remotes/origin/idle EndStructure Structure DrawingParameters @@ -167,10 +164,6 @@ Module PBMap HDDCachePath.S ; Path where to load and save tiles downloaded from server MemCache.TileMemCach ; Images in memory cache ; -<<<<<<< HEAD -======= - OnStage.i ->>>>>>> refs/remotes/origin/idle Redraw.i Moving.i Dirty.i ; To signal that drawing need a refresh @@ -189,10 +182,7 @@ Module PBMap #PB_MAP_REDRAW = #PB_EventType_FirstCustomValue + 1 #PB_MAP_RETRY = #PB_EventType_FirstCustomValue + 2 -<<<<<<< HEAD #PB_MAP_TILE_CLEANUP = #PB_EventType_FirstCustomValue + 3 -======= ->>>>>>> refs/remotes/origin/idle ;-Global variables Global PBMap.PBMap, Null.i @@ -359,12 +349,9 @@ Module PBMap ;Should not occur KillThread(PBMap\MemCache\Images()\Tile\GetImageThread) EndIf -<<<<<<< HEAD Else FreeMemory(PBMap\MemCache\Images()\Tile) PBMap\MemCache\Images()\Tile = 0 -======= ->>>>>>> refs/remotes/origin/idle EndIf Else DeleteMapElement(PBMap\MemCache\Images()) @@ -531,11 +518,7 @@ Module PBMap ; SaveImage(timg, CacheFile, #PB_ImagePlugin_PNG) ; FreeImage(timg) ; Else -<<<<<<< HEAD - If SaveImage(nImage, CacheFile, #PB_ImagePlugin_PNG) -======= - If SaveImage(nImage, CacheFile, #PB_ImagePlugin_PNG,0,32) ->>>>>>> refs/remotes/origin/idle + If SaveImage(nImage, CacheFile, #PB_ImagePlugin_PNG, 0, 32) MyDebug("Loaded from web " + TileURL + " as CacheFile " + CacheFile, 3) Else MyDebug("Loaded from web " + TileURL + " but cannot save to CacheFile " + CacheFile, 3) @@ -559,39 +542,19 @@ Module PBMap Repeat nImage = GetTileFromWeb(*Tile\PBMapZoom, *Tile\PBMapTileX, *Tile\PBMapTileY, *Tile\CacheFile, *Tile\Layer) If nImage <> -1 -<<<<<<< HEAD MyDebug("Image key : " + *Tile\key + " web image loaded", 3) -======= - LockMutex(PBMap\TileThreadMutex) - PBMap\MemCache\Images(*Tile\key)\nImage = nImage - UnlockMutex(PBMap\TileThreadMutex) - MyDebug("Image key : " + *Tile\key + " web image loaded", 3) - PBMap\Dirty = #True ->>>>>>> refs/remotes/origin/idle *Tile\RetryNb = 0 ; PostEvent(#PB_Event_Gadget, PBMap\Window, PBmap\Gadget, #PB_MAP_REDRAW, *Tile) ;If image is loaded from web, redraw Else MyDebug("Image key : " + *Tile\key + " web image not correctly loaded", 3) -<<<<<<< HEAD Delay(1000) -======= - Delay(5000) ->>>>>>> refs/remotes/origin/idle *Tile\RetryNb - 1 ; PostEvent(#PB_Event_Gadget, PBMap\Window, PBmap\Gadget, #PB_MAP_RETRY, *Tile) ;If image is not loaded, retry EndIf Until *Tile\RetryNb <= 0 -<<<<<<< HEAD *Tile\nImage = nImage *Tile\RetryNb = -2 ;End of the thread PostEvent(#PB_Event_Gadget, PBMap\Window, PBmap\Gadget, #PB_MAP_TILE_CLEANUP, *Tile) ;To free memory outside the thread -======= - ;End of the thread - LockMutex(PBMap\TileThreadMutex) - FreeMemory(PBMap\MemCache\Images(*Tile\key)\Tile) - PBMap\MemCache\Images(*Tile\key)\Tile = 0 - UnlockMutex(PBMap\TileThreadMutex) ->>>>>>> refs/remotes/origin/idle EndProcedure Procedure.i GetTile(key.s, CacheFile.s, px.i, py.i, tilex.i, tiley.i, Layer.i) @@ -607,7 +570,6 @@ Module PBMap AddMapElement(PBMap\MemCache\Images(), key) MyDebug("Key : " + key + " added in memory cache!", 3) PBMap\MemCache\Images()\nImage = -1 -<<<<<<< HEAD EndIf If PBMap\MemCache\Images()\Tile = 0 ;Check if a loading thread is not running MyDebug("Trying to load from HDD " + CacheFile, 3) @@ -618,19 +580,6 @@ Module PBMap ProcedureReturn timg EndIf MyDebug("Key : " + key + " not found on HDD", 3) -======= - ;UnlockMutex(PBMap\TileThreadMutex) - EndIf - If PBMap\MemCache\Images()\Tile = 0 ;Check if a loading thread is not running - MyDebug("Trying to load from HDD " + CacheFile) - timg = GetTileFromHDD(CacheFile.s) - If timg <> -1 - MyDebug("Key : " + key + " found on HDD") - PBMap\MemCache\Images()\nImage = timg - ProcedureReturn timg - EndIf - MyDebug("Key : " + key + " not found on HDD") ->>>>>>> refs/remotes/origin/idle ;Launch a new thread Protected *NewTile.Tile = AllocateMemory(SizeOf(Tile)) If *NewTile @@ -646,7 +595,6 @@ Module PBMap \CacheFile = CacheFile \Layer = Layer \RetryNb = 5 -<<<<<<< HEAD \nImage = -1 MyDebug(" Creating get image thread nb " + Str(\GetImageThread) + " to get " + CacheFile, 3) \GetImageThread = CreateThread(@GetImageThread(), *NewTile) @@ -658,35 +606,6 @@ Module PBMap ProcedureReturn timg EndProcedure -======= - \GetImageThread = CreateThread(@GetImageThread(), *NewTile) - myDebug(" Creating get image thread nb " + Str(\GetImageThread)) - EndWith - Else - MyDebug(" Error, can't create a new tile loading thread") - EndIf - EndIf - ProcedureReturn timg - EndProcedure - - ; Procedure DrawTile(*Tile.Tile) - ; Protected x = *Tile\Position\x - ; Protected y = *Tile\Position\y - ; MyDebug(" Drawing tile nb " + " X : " + Str(*Tile\PBMapTileX) + " Y : " + Str(*Tile\PBMapTileX), 2) - ; MyDebug(" at coords " + Str(x) + "," + Str(y), 2) - ; MovePathCursor(x, y) - ; DrawVectorImage(ImageID(*Tile\nImage)) - ; EndProcedure - ; - ; Procedure DrawLoading(*Tile.Tile) - ; Protected x = *Tile\Position\x - ; Protected y = *Tile\Position\y - ; Protected Text$ = "Loading" - ; MyDebug(" Drawing tile nb " + " X : " + Str(*Tile\PBMapTileX) + " Y : " + Str(*Tile\PBMapTileX), 2) - ; MyDebug(" at coords " + Str(x) + "," + Str(y)) - ; EndProcedure - ->>>>>>> refs/remotes/origin/idle Procedure DrawTiles(*Drawing.DrawingParameters, Layer.i, alpha.i=255) ;DisableDebugger Protected x.i, y.i,kq.q @@ -696,12 +615,6 @@ Module PBMap Protected ny = *Drawing\CenterY / PBMap\TileSize Protected px, py, img, tilex,tiley, key.s, CacheFile.s MyDebug("Drawing tiles") - - *Drawing\Bounds\NorthWest\x = tx-nx-1 - *Drawing\Bounds\NorthWest\y = ty-ny-1 - *Drawing\Bounds\SouthEast\x = tx+nx+1 - *Drawing\Bounds\SouthEast\y = ty+ny+1 - For y = - ny - 1 To ny + 1 For x = - nx - 1 To nx + 1 ; If PBMap\Moving ;If drawing was threaded, this would exit the loop when the user is moving @@ -709,11 +622,7 @@ Module PBMap ; EndIf px = *Drawing\CenterX + x * PBMap\TileSize - *Drawing\DeltaX py = *Drawing\CenterY + y * PBMap\TileSize - *Drawing\DeltaY -<<<<<<< HEAD tilex = ((tx+x) % (1<>>>>>> refs/remotes/origin/idle tiley = ty+y kq = Layer | (pbmap\zoom << 8) | (tilex << 16) | (tiley << 36) key = Str(kq) @@ -729,20 +638,6 @@ Module PBMap EndIf Next Next - -<<<<<<< HEAD -======= - ; ;Free tile memory - ; ;TODO : maybe get out this proc from drawtiles in a special "free ressources" task - ; ForEach PBMap\TilesThreads() - ; ;Check if there's no more loading thread - ; If IsThread(PBMap\TilesThreads()\GetImageThread) = 0 - ; FreeMemory(PBMap\TilesThreads()\Tile) - ; DeleteElement(PBMap\TilesThreads()) - ; EndIf - ; Next - ->>>>>>> refs/remotes/origin/idle EndProcedure ; ;-**** Clean Mem Cache @@ -811,13 +706,11 @@ Module PBMap AddPathLine(x+128,y+10) StrokePath(1) EndProcedure - -<<<<<<< HEAD -======= - Procedure DrawDegrees(*Drawing.DrawingParameters,alpha=192) + + Procedure DrawDegrees(*Drawing.DrawingParameters,alpha=192) Protected nx,ny,nx1,ny1,x,y,n,cx,dperpixel.d Protected pos1.PixelPosition,pos2.PixelPosition,Degrees1.Location,degrees2.Location - + ;VectorFont(FontID(PBMap\Font), 10) VectorSourceColor(RGBA(0, 0, 0,Alpha)) @@ -825,31 +718,29 @@ Module PBMap XY2LatLon(*Drawing\Bounds\NorthWest,@Degrees1) XY2LatLon(*Drawing\Bounds\SouthEast,@Degrees2) - + ny = Round(Degrees1\Latitude,#PB_Round_Up)+1 ny1 = Round(degrees2\Latitude,#PB_Round_Down)-1 nx = Round(Degrees1\Longitude,#PB_Round_Down)-1 nx1 = Round(degrees2\Longitude,#PB_Round_Up) +1 - + For y = ny1 To ny Degrees1\Latitude = y degrees2\Latitude = y + 1 For x = nx To nx1 Degrees1\Longitude =x Degrees2\Longitude =x+ 1 - GetPixelCoordFromLocation(@Degrees1,@pos1) - MovePathCursor(pos1\x,pos1\y) - AddPathLine(pos2\x,pos1\y) - MovePathCursor(pos1\x,pos1\y) - AddPathLine(pos1\x,pos2\y) + GetPixelCoordFromLocation(@Degrees1,@pos1) + MovePathCursor(pos1\x,pos1\y) + AddPathLine(pos2\x,pos1\y) + MovePathCursor(pos1\x,pos1\y) + AddPathLine(pos1\x,pos2\y) Next Next StrokePath(1) - + EndProcedure - ->>>>>>> refs/remotes/origin/idle Procedure TrackPointer(x.i, y.i,dist.l) Protected color.l color=RGBA(0, 0, 0, 255) @@ -941,10 +832,6 @@ Module PBMap Procedure Drawing() Protected *Drawing.DrawingParameters = @PBMap\Drawing Protected Px.d, Py.d,a -<<<<<<< HEAD -======= - PBMap\OnStage = #True ->>>>>>> refs/remotes/origin/idle PBMap\Dirty = #False PBMap\Redraw = #False ;Precalc some values @@ -975,11 +862,7 @@ Module PBMap Protected ThreadCounter = 0 ForEach PBMap\MemCache\Images() If PBMap\MemCache\Images()\Tile <> 0 -<<<<<<< HEAD If IsThread(PBMap\MemCache\Images()\Tile\GetImageThread) -======= - If PBMap\MemCache\Images()\Tile\GetImageThread <> 0 ->>>>>>> refs/remotes/origin/idle ThreadCounter + 1 EndIf EndIf @@ -987,10 +870,7 @@ Module PBMap DrawVectorText(Str(ThreadCounter)) ;If PBMap\Options\ShowScale DrawScale(*Drawing,10,GadgetHeight(PBMAP\Gadget)-20,192) -<<<<<<< HEAD -======= - DrawDegrees(*Drawing,192) ->>>>>>> refs/remotes/origin/idle + DrawDegrees(*Drawing, 192) ;EndIf StopVectorDrawing() ;If there was a problem while drawing, redraw @@ -998,10 +878,6 @@ Module PBMap ; PBMap\Redraw = #True ; ;PostEvent(#PB_Event_Gadget, PBMap\Window, PBmap\Gadget, #PB_MAP_REDRAW) ; EndIf -<<<<<<< HEAD -======= - PBMap\OnStage = #False ->>>>>>> refs/remotes/origin/idle EndProcedure Procedure Refresh() @@ -1161,11 +1037,7 @@ Module PBMap Procedure CanvasEvents() Protected MouseX.i, MouseY.i -<<<<<<< HEAD Protected Marker.Position, *Tile.Tile -======= - Protected Marker.Position ->>>>>>> refs/remotes/origin/idle PBMap\Moving = #False Select EventType() Case #PB_EventType_MouseWheel @@ -1239,7 +1111,6 @@ Module PBMap Case #PB_MAP_RETRY Debug "Reload" PBMap\Redraw = #True -<<<<<<< HEAD Case #PB_MAP_TILE_CLEANUP *Tile = EventData() ;If PBMap\MemCache\Images(*Tile\key)\Tile\RetryNb = -2 ;Check the end of the thread @@ -1249,17 +1120,12 @@ Module PBMap PBMap\MemCache\Images(*Tile\key)\Tile = 0 PBMap\Redraw = #True ;EndIf -======= ->>>>>>> refs/remotes/origin/idle + EndSelect EndProcedure Procedure TimerEvents() -<<<<<<< HEAD If EventTimer() = PBMap\Timer And (PBMap\Redraw Or PBMap\Dirty) -======= - If EventTimer() = PBMap\Timer And (PBMap\Redraw Or PBMap\Dirty) And PBMap\OnStage = #False ->>>>>>> refs/remotes/origin/idle Drawing() EndIf EndProcedure @@ -1422,13 +1288,8 @@ CompilerIf #PB_Compiler_IsMainFile CompilerEndIf ; IDE Options = PureBasic 5.50 (Windows - x64) -<<<<<<< HEAD -; CursorPosition = 600 -; FirstLine = 680 -======= -; CursorPosition = 1290 -; FirstLine = 1275 ->>>>>>> refs/remotes/origin/idle +; CursorPosition = 1264 +; FirstLine = 1245 ; Folding = --------- ; EnableThread ; EnableXP From 295d0d72bc820ba002a56b2cb537b71f3fe62dc8 Mon Sep 17 00:00:00 2001 From: djes Date: Tue, 30 Aug 2016 12:51:41 +0200 Subject: [PATCH 21/62] Lil fix --- PBMap.pb | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/PBMap.pb b/PBMap.pb index e18815f..df8664f 100644 --- a/PBMap.pb +++ b/PBMap.pb @@ -615,6 +615,12 @@ Module PBMap Protected ny = *Drawing\CenterY / PBMap\TileSize Protected px, py, img, tilex,tiley, key.s, CacheFile.s MyDebug("Drawing tiles") + + *Drawing\Bounds\NorthWest\x = tx-nx-1 + *Drawing\Bounds\NorthWest\y = ty-ny-1 + *Drawing\Bounds\SouthEast\x = tx+nx+1 + *Drawing\Bounds\SouthEast\y = ty+ny+1 + For y = - ny - 1 To ny + 1 For x = - nx - 1 To nx + 1 ; If PBMap\Moving ;If drawing was threaded, this would exit the loop when the user is moving @@ -1288,9 +1294,10 @@ CompilerIf #PB_Compiler_IsMainFile CompilerEndIf ; IDE Options = PureBasic 5.50 (Windows - x64) -; CursorPosition = 1264 -; FirstLine = 1245 +; CursorPosition = 622 +; FirstLine = 608 ; Folding = --------- ; EnableThread ; EnableXP +; DisableDebugger ; EnableUnicode \ No newline at end of file From 0e063a5623ead6fdb5d33a90cd6ba7ea13319337 Mon Sep 17 00:00:00 2001 From: djes Date: Tue, 30 Aug 2016 16:48:28 +0200 Subject: [PATCH 22/62] DrawDegrees bugfix (not fully fixed...) --- PBMap.pb | 91 ++++++++++++++++++++++++++++++-------------------------- 1 file changed, 49 insertions(+), 42 deletions(-) diff --git a/PBMap.pb b/PBMap.pb index df8664f..e032ebf 100644 --- a/PBMap.pb +++ b/PBMap.pb @@ -28,7 +28,7 @@ UsePNGImageEncoder() DeclareModule PBMap #Red = 255 ;-Show debug infos - Global Verbose = 1 + Global Verbose = 0 Global MyDebugLevel = 3 ;-Proxy ON/OFF Global Proxy = #False @@ -615,12 +615,7 @@ Module PBMap Protected ny = *Drawing\CenterY / PBMap\TileSize Protected px, py, img, tilex,tiley, key.s, CacheFile.s MyDebug("Drawing tiles") - - *Drawing\Bounds\NorthWest\x = tx-nx-1 - *Drawing\Bounds\NorthWest\y = ty-ny-1 - *Drawing\Bounds\SouthEast\x = tx+nx+1 - *Drawing\Bounds\SouthEast\y = ty+ny+1 - + For y = - ny - 1 To ny + 1 For x = - nx - 1 To nx + 1 ; If PBMap\Moving ;If drawing was threaded, this would exit the loop when the user is moving @@ -714,35 +709,50 @@ Module PBMap EndProcedure Procedure DrawDegrees(*Drawing.DrawingParameters,alpha=192) - Protected nx,ny,nx1,ny1,x,y,n,cx,dperpixel.d + Protected tx, ty, nx,ny,nx1,ny1,x,y,n,cx,dperpixel.d Protected pos1.PixelPosition,pos2.PixelPosition,Degrees1.Location,degrees2.Location + tx = Int(*Drawing\Position\x) ;Don't forget the Int() ! + ty = Int(*Drawing\Position\y) + nx = *Drawing\CenterX / PBMap\TileSize ;How many tiles around the point + ny = *Drawing\CenterY / PBMap\TileSize + + *Drawing\Bounds\NorthWest\x = tx-nx-1 + *Drawing\Bounds\NorthWest\y = ty-ny-1 + *Drawing\Bounds\SouthEast\x = tx+nx+1 + *Drawing\Bounds\SouthEast\y = ty+ny+1 + ;VectorFont(FontID(PBMap\Font), 10) VectorSourceColor(RGBA(0, 0, 0,Alpha)) ;GetMapRegionDegrees(@Degrees1,@degrees2) - XY2LatLon(*Drawing\Bounds\NorthWest,@Degrees1) - XY2LatLon(*Drawing\Bounds\SouthEast,@Degrees2) + XY2LatLon(*Drawing\Bounds\NorthWest, @Degrees1) + XY2LatLon(*Drawing\Bounds\SouthEast, @Degrees2) - ny = Round(Degrees1\Latitude,#PB_Round_Up)+1 - ny1 = Round(degrees2\Latitude,#PB_Round_Down)-1 - nx = Round(Degrees1\Longitude,#PB_Round_Down)-1 - nx1 = Round(degrees2\Longitude,#PB_Round_Up) +1 + nx = Round(Degrees1\Longitude, #PB_Round_Down)-1 + ny = Round(Degrees1\Latitude, #PB_Round_Up) +1 + nx1 = Round(Degrees2\Longitude, #PB_Round_Up) +1 + ny1 = Round(Degrees2\Latitude, #PB_Round_Down)-1 - For y = ny1 To ny - Degrees1\Latitude = y - degrees2\Latitude = y + 1 - For x = nx To nx1 - Degrees1\Longitude =x - Degrees2\Longitude =x+ 1 - GetPixelCoordFromLocation(@Degrees1,@pos1) - MovePathCursor(pos1\x,pos1\y) - AddPathLine(pos2\x,pos1\y) - MovePathCursor(pos1\x,pos1\y) - AddPathLine(pos1\x,pos2\y) + GetPixelCoordFromLocation(@Degrees2, @pos2) + + x = nx + For y = ny1 To ny + Degrees1\Longitude = x + Degrees1\Latitude = y + GetPixelCoordFromLocation(@Degrees1, @pos1) + MovePathCursor(pos1\x, pos1\y) + AddPathLine( pos2\x, pos1\y) + Next + y = ny + For x = nx To nx1 + Degrees1\Longitude = x + Degrees1\Latitude = y + GetPixelCoordFromLocation(@Degrees1, @pos1) + MovePathCursor(pos1\x, pos1\y) + AddPathLine( pos1\x, pos2\y) Next - Next StrokePath(1) EndProcedure @@ -818,7 +828,7 @@ Module PBMap EndProcedure ; Draw all markers on the screen ! - Procedure DrawMarker(*Drawing.DrawingParameters) + Procedure DrawMarkers(*Drawing.DrawingParameters) Protected Pixel.PixelPosition ForEach PBMap\Marker() If PBMap\Marker()\Location\Latitude <> 0 And PBMap\Marker()\Location\Longitude <> 0 @@ -849,6 +859,7 @@ Module PBMap *Drawing\DeltaY = Py * PBMap\TileSize - (Int(Py) * PBMap\TileSize) *Drawing\TargetLocation\Latitude = PBMap\TargetLocation\Latitude *Drawing\TargetLocation\Longitude = PBMap\TargetLocation\Longitude + ;Main drawing stuff StartVectorDrawing(CanvasVectorOutput(PBMap\Gadget)) ;TODO add in layers of tiles ;this way we can cache them as 0 base 1.n layers @@ -857,7 +868,7 @@ Module PBMap DrawTiles(*Drawing, a) Next DrawTrack(*Drawing) - DrawMarker(*Drawing) + DrawMarkers(*Drawing) DrawPointer(*Drawing) ;- Display how many images in cache VectorFont(FontID(PBMap\Font), 30) @@ -874,9 +885,9 @@ Module PBMap EndIf Next DrawVectorText(Str(ThreadCounter)) + DrawDegrees(*Drawing, 192) ;If PBMap\Options\ShowScale DrawScale(*Drawing,10,GadgetHeight(PBMAP\Gadget)-20,192) - DrawDegrees(*Drawing, 192) ;EndIf StopVectorDrawing() ;If there was a problem while drawing, redraw @@ -1118,19 +1129,19 @@ Module PBMap Debug "Reload" PBMap\Redraw = #True Case #PB_MAP_TILE_CLEANUP - *Tile = EventData() - ;If PBMap\MemCache\Images(*Tile\key)\Tile\RetryNb = -2 ;Check the end of the thread + *Tile = EventData() + ;After a Web tile loading thread, clean the tile structure memory and set the image nb in the cache + ;avoid to have threads accessing vars (and avoid mutex), see GetImageThread() Protected timg = PBMap\MemCache\Images(*Tile\key)\Tile\nImage PBMap\MemCache\Images(*Tile\key)\nImage = timg FreeMemory(PBMap\MemCache\Images(*Tile\key)\Tile) PBMap\MemCache\Images(*Tile\key)\Tile = 0 PBMap\Redraw = #True - ;EndIf - EndSelect EndProcedure Procedure TimerEvents() + ;Redraw at regular intervals If EventTimer() = PBMap\Timer And (PBMap\Redraw Or PBMap\Dirty) Drawing() EndIf @@ -1222,7 +1233,6 @@ CompilerIf #PB_Compiler_IsMainFile PBMap::Refresh() EndProcedure - OpenConsole() ;- MAIN TEST If OpenWindow(#Window_0, 260, 225, 700, 571, "PBMap", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered | #PB_Window_SizeGadget) @@ -1252,10 +1262,10 @@ CompilerIf #PB_Compiler_IsMainFile PBMap::MapGadget(#Map, 10, 10, 512, 512) PBMap::SetCallBackMainPointer(@MainPointer()) ;To change the Main Pointer PBMap::SetCallBackLocation(@UpdateLocation()) - PBMap::SetLocation(-36.81148,175.08634,12) + PBMap::SetLocation(-36.81148, 175.08634,12) PBMap::SetMapServer("http://t1.openseamap.org/seamark/") ;add a special osm overlay map PBMAP::SetMapScaleUnit(PBMAP::#SCALE_NAUTICAL) - ;PBMap::AddMarker(49.0446828398, 2.0349812508, -1, @MyPointer()) + PBMap::AddMarker(49.0446828398, 2.0349812508, -1, @MyPointer()) Repeat Event = WaitWindowEvent() @@ -1289,15 +1299,12 @@ CompilerIf #PB_Compiler_IsMainFile PBMap::Quit() EndIf - - CloseConsole() - + CompilerEndIf ; IDE Options = PureBasic 5.50 (Windows - x64) -; CursorPosition = 622 -; FirstLine = 608 +; CursorPosition = 751 +; FirstLine = 719 ; Folding = --------- ; EnableThread ; EnableXP -; DisableDebugger ; EnableUnicode \ No newline at end of file From da7b626a9ae59aa7b9824e186b05447727124c4b Mon Sep 17 00:00:00 2001 From: djes Date: Wed, 31 Aug 2016 10:06:17 +0200 Subject: [PATCH 23/62] djes merging and lat/long drawing --- PBMap.pb | 213 ++++++++++++++++++++++++------------------------------- 1 file changed, 94 insertions(+), 119 deletions(-) diff --git a/PBMap.pb b/PBMap.pb index d7f6348..d323ef1 100644 --- a/PBMap.pb +++ b/PBMap.pb @@ -1,4 +1,4 @@ -;;************************************************************** +;************************************************************** ; Program: PBMap ; Description: Permits the use of tiled maps like ; OpenStreetMap in a handy PureBASIC module @@ -28,7 +28,7 @@ UsePNGImageEncoder() DeclareModule PBMap #Red = 255 ;-Show debug infos - Global Verbose = 1 + Global Verbose = 0 Global MyDebugLevel = 3 ;-Proxy ON/OFF Global Proxy = #False @@ -164,13 +164,11 @@ Module PBMap HDDCachePath.S ; Path where to load and save tiles downloaded from server MemCache.TileMemCach ; Images in memory cache ; - OnStage.i Redraw.i Moving.i Dirty.i ; To signal that drawing need a refresh ; MainDrawingThread.i - ;List TilesThreads.TileThread() TileThreadMutex.i; ;Mutex to protect resources List track.Location() ; To display a GPX track List Marker.Marker() ; To diplay marker @@ -183,6 +181,7 @@ Module PBMap #PB_MAP_REDRAW = #PB_EventType_FirstCustomValue + 1 #PB_MAP_RETRY = #PB_EventType_FirstCustomValue + 2 + #PB_MAP_TILE_CLEANUP = #PB_EventType_FirstCustomValue + 3 ;-Global variables Global PBMap.PBMap, Null.i @@ -349,6 +348,9 @@ Module PBMap ;Should not occur KillThread(PBMap\MemCache\Images()\Tile\GetImageThread) EndIf + Else + FreeMemory(PBMap\MemCache\Images()\Tile) + PBMap\MemCache\Images()\Tile = 0 EndIf Else DeleteMapElement(PBMap\MemCache\Images()) @@ -515,7 +517,7 @@ Module PBMap ; SaveImage(timg, CacheFile, #PB_ImagePlugin_PNG) ; FreeImage(timg) ; Else - If SaveImage(nImage, CacheFile, #PB_ImagePlugin_PNG,0,32) + If SaveImage(nImage, CacheFile, #PB_ImagePlugin_PNG, 0, 32) MyDebug("Loaded from web " + TileURL + " as CacheFile " + CacheFile, 3) Else MyDebug("Loaded from web " + TileURL + " but cannot save to CacheFile " + CacheFile, 3) @@ -539,25 +541,17 @@ Module PBMap Repeat nImage = GetTileFromWeb(*Tile\PBMapZoom, *Tile\PBMapTileX, *Tile\PBMapTileY, *Tile\CacheFile, *Tile\Layer) If nImage <> -1 - LockMutex(PBMap\TileThreadMutex) - PBMap\MemCache\Images(*Tile\key)\nImage = nImage - UnlockMutex(PBMap\TileThreadMutex) MyDebug("Image key : " + *Tile\key + " web image loaded", 3) - PBMap\Dirty = #True *Tile\RetryNb = 0 - ; PostEvent(#PB_Event_Gadget, PBMap\Window, PBmap\Gadget, #PB_MAP_REDRAW, *Tile) ;If image is loaded from web, redraw Else MyDebug("Image key : " + *Tile\key + " web image not correctly loaded", 3) - Delay(5000) + Delay(1000) *Tile\RetryNb - 1 - ; PostEvent(#PB_Event_Gadget, PBMap\Window, PBmap\Gadget, #PB_MAP_RETRY, *Tile) ;If image is not loaded, retry EndIf Until *Tile\RetryNb <= 0 - ;End of the thread - LockMutex(PBMap\TileThreadMutex) - FreeMemory(PBMap\MemCache\Images(*Tile\key)\Tile) - PBMap\MemCache\Images(*Tile\key)\Tile = 0 - UnlockMutex(PBMap\TileThreadMutex) + *Tile\nImage = nImage + *Tile\RetryNb = -2 ;End of the thread + PostEvent(#PB_Event_Gadget, PBMap\Window, PBmap\Gadget, #PB_MAP_TILE_CLEANUP, *Tile) ;To free memory outside the thread EndProcedure Procedure.i GetTile(key.s, CacheFile.s, px.i, py.i, tilex.i, tiley.i, Layer.i) @@ -573,17 +567,16 @@ Module PBMap AddMapElement(PBMap\MemCache\Images(), key) MyDebug("Key : " + key + " added in memory cache!", 3) PBMap\MemCache\Images()\nImage = -1 - ;UnlockMutex(PBMap\TileThreadMutex) EndIf If PBMap\MemCache\Images()\Tile = 0 ;Check if a loading thread is not running - MyDebug("Trying to load from HDD " + CacheFile) + MyDebug("Trying to load from HDD " + CacheFile, 3) timg = GetTileFromHDD(CacheFile.s) If timg <> -1 - MyDebug("Key : " + key + " found on HDD") + MyDebug("Key : " + key + " found on HDD", 3) PBMap\MemCache\Images()\nImage = timg ProcedureReturn timg EndIf - MyDebug("Key : " + key + " not found on HDD") + MyDebug("Key : " + key + " not found on HDD", 3) ;Launch a new thread Protected *NewTile.Tile = AllocateMemory(SizeOf(Tile)) If *NewTile @@ -599,33 +592,17 @@ Module PBMap \CacheFile = CacheFile \Layer = Layer \RetryNb = 5 + \nImage = -1 + MyDebug(" Creating get image thread nb " + Str(\GetImageThread) + " to get " + CacheFile, 3) \GetImageThread = CreateThread(@GetImageThread(), *NewTile) - myDebug(" Creating get image thread nb " + Str(\GetImageThread)) EndWith Else - MyDebug(" Error, can't create a new tile loading thread") - EndIf - EndIf + MyDebug(" Error, can't create a new tile loading thread", 3) + EndIf + EndIf ProcedureReturn timg EndProcedure - ; Procedure DrawTile(*Tile.Tile) - ; Protected x = *Tile\Position\x - ; Protected y = *Tile\Position\y - ; MyDebug(" Drawing tile nb " + " X : " + Str(*Tile\PBMapTileX) + " Y : " + Str(*Tile\PBMapTileX), 2) - ; MyDebug(" at coords " + Str(x) + "," + Str(y), 2) - ; MovePathCursor(x, y) - ; DrawVectorImage(ImageID(*Tile\nImage)) - ; EndProcedure - ; - ; Procedure DrawLoading(*Tile.Tile) - ; Protected x = *Tile\Position\x - ; Protected y = *Tile\Position\y - ; Protected Text$ = "Loading" - ; MyDebug(" Drawing tile nb " + " X : " + Str(*Tile\PBMapTileX) + " Y : " + Str(*Tile\PBMapTileX), 2) - ; MyDebug(" at coords " + Str(x) + "," + Str(y)) - ; EndProcedure - Procedure DrawTiles(*Drawing.DrawingParameters, Layer.i, alpha.i=255) ;DisableDebugger Protected x.i, y.i,kq.q @@ -635,12 +612,7 @@ Module PBMap Protected ny = *Drawing\CenterY / PBMap\TileSize Protected px, py, img, tilex,tiley, key.s, CacheFile.s MyDebug("Drawing tiles") - - *Drawing\Bounds\NorthWest\x = tx-nx-1 - *Drawing\Bounds\NorthWest\y = ty-ny-1 - *Drawing\Bounds\SouthEast\x = tx+nx+1 - *Drawing\Bounds\SouthEast\y = ty+ny+1 - + For y = - ny - 1 To ny + 1 For x = - nx - 1 To nx + 1 ; If PBMap\Moving ;If drawing was threaded, this would exit the loop when the user is moving @@ -648,7 +620,7 @@ Module PBMap ; EndIf px = *Drawing\CenterX + x * PBMap\TileSize - *Drawing\DeltaX py = *Drawing\CenterY + y * PBMap\TileSize - *Drawing\DeltaY - tilex = ((tx+x) % (1<< PBMap\Zoom)) + tilex = ((tx+x) % (1< 0 And PBMap\Marker()\Location\Longitude <> 0 @@ -870,7 +848,6 @@ Module PBMap Procedure Drawing() Protected *Drawing.DrawingParameters = @PBMap\Drawing Protected Px.d, Py.d,a - PBMap\OnStage = #True PBMap\Dirty = #False PBMap\Redraw = #False ;Precalc some values @@ -882,6 +859,7 @@ Module PBMap *Drawing\DeltaY = Py * PBMap\TileSize - (Int(Py) * PBMap\TileSize) *Drawing\TargetLocation\Latitude = PBMap\TargetLocation\Latitude *Drawing\TargetLocation\Longitude = PBMap\TargetLocation\Longitude + ;Main drawing stuff StartVectorDrawing(CanvasVectorOutput(PBMap\Gadget)) ;TODO add in layers of tiles ;this way we can cache them as 0 base 1.n layers @@ -890,7 +868,7 @@ Module PBMap DrawTiles(*Drawing, a) Next DrawTrack(*Drawing) - DrawMarker(*Drawing) + DrawMarkers(*Drawing) DrawPointer(*Drawing) ;- Display how many images in cache VectorFont(FontID(PBMap\Font), 30) @@ -901,23 +879,18 @@ Module PBMap Protected ThreadCounter = 0 ForEach PBMap\MemCache\Images() If PBMap\MemCache\Images()\Tile <> 0 - If PBMap\MemCache\Images()\Tile\GetImageThread <> 0 + If IsThread(PBMap\MemCache\Images()\Tile\GetImageThread) ThreadCounter + 1 EndIf EndIf Next DrawVectorText(Str(ThreadCounter)) + DrawDegrees(*Drawing, 192) ;If PBMap\Options\ShowScale DrawScale(*Drawing,10,GadgetHeight(PBMAP\Gadget)-20,192) - DrawDegrees(*Drawing,192) ;EndIf StopVectorDrawing() - ;If there was a problem while drawing, redraw - ; If PBMap\Dirty - ; PBMap\Redraw = #True - ; ;PostEvent(#PB_Event_Gadget, PBMap\Window, PBmap\Gadget, #PB_MAP_REDRAW) - ; EndIf - PBMap\OnStage = #False + EndProcedure Procedure Refresh() @@ -1058,15 +1031,11 @@ Module PBMap EndProcedure Procedure.d GetLatitude() - Protected Value.d - Value = PBMap\TargetLocation\Latitude - ProcedureReturn Value + ProcedureReturn 0-(90-Mod((PBMap\TargetLocation\Latitude+90),180)) EndProcedure Procedure.d GetLongitude() - Protected Value.d - Value = PBMap\TargetLocation\Longitude - ProcedureReturn Value + ProcedureReturn 0-(180-Mod((PBMap\TargetLocation\Longitude+180),360)) EndProcedure Procedure.i GetZoom() @@ -1077,7 +1046,7 @@ Module PBMap Procedure CanvasEvents() Protected MouseX.i, MouseY.i - Protected Marker.Position + Protected Marker.Position, *Tile.Tile PBMap\Moving = #False Select EventType() Case #PB_EventType_MouseWheel @@ -1151,11 +1120,21 @@ Module PBMap Case #PB_MAP_RETRY Debug "Reload" PBMap\Redraw = #True + Case #PB_MAP_TILE_CLEANUP + *Tile = EventData() + ;After a Web tile loading thread, clean the tile structure memory and set the image nb in the cache + ;avoid to have threads accessing vars (and avoid mutex), see GetImageThread() + Protected timg = PBMap\MemCache\Images(*Tile\key)\Tile\nImage + PBMap\MemCache\Images(*Tile\key)\nImage = timg + FreeMemory(PBMap\MemCache\Images(*Tile\key)\Tile) + PBMap\MemCache\Images(*Tile\key)\Tile = 0 + PBMap\Redraw = #True EndSelect EndProcedure Procedure TimerEvents() - If EventTimer() = PBMap\Timer And (PBMap\Redraw Or PBMap\Dirty) And PBMap\OnStage = #False + ;Redraw at regular intervals + If EventTimer() = PBMap\Timer And (PBMap\Redraw Or PBMap\Dirty) Drawing() EndIf EndProcedure @@ -1205,8 +1184,8 @@ CompilerIf #PB_Compiler_IsMainFile EndStructure Procedure UpdateLocation(*Location.Location) - SetGadgetText(#String_0, StrD(*Location\Latitude)) - SetGadgetText(#String_1, StrD(*Location\Longitude)) + SetGadgetText(#String_0, StrD(0-(90-Mod((*Location\Latitude+90),180)))) + SetGadgetText(#String_1, StrD(0-(180-Mod((*Location\Longitude+180),360)))) ProcedureReturn 0 EndProcedure @@ -1246,7 +1225,6 @@ CompilerIf #PB_Compiler_IsMainFile PBMap::Refresh() EndProcedure - OpenConsole() ;- MAIN TEST If OpenWindow(#Window_0, 260, 225, 700, 571, "PBMap", #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered | #PB_Window_SizeGadget) @@ -1279,7 +1257,7 @@ CompilerIf #PB_Compiler_IsMainFile PBMap::SetLocation(-36.81148,175.08634,12) PBMap::SetMapServer("http://t1.openseamap.org/seamark/") ;add a special osm overlay map PBMAP::SetMapScaleUnit(PBMAP::#SCALE_NAUTICAL) - ;PBMap::AddMarker(49.0446828398, 2.0349812508, -1, @MyPointer()) + PBMap::AddMarker(49.0446828398, 2.0349812508, -1, @MyPointer()) Repeat Event = WaitWindowEvent() @@ -1312,14 +1290,11 @@ CompilerIf #PB_Compiler_IsMainFile Until Quit = #True PBMap::Quit() - EndIf - - CloseConsole() - -CompilerEndIf + EndIf + CompilerEndIf ; IDE Options = PureBasic 5.50 (Windows - x64) -; CursorPosition = 1290 -; FirstLine = 1275 +; CursorPosition = 1263 +; FirstLine = 1250 ; Folding = --------- ; EnableThread ; EnableXP From b937a377e3f274298b3c622e4cc216604ae3d1e9 Mon Sep 17 00:00:00 2001 From: djes Date: Wed, 31 Aug 2016 10:41:42 +0200 Subject: [PATCH 24/62] wip --- PBMap.pb | 90 +++++++++++++++----------------------------------------- 1 file changed, 23 insertions(+), 67 deletions(-) diff --git a/PBMap.pb b/PBMap.pb index 341e5f6..7e2d542 100644 --- a/PBMap.pb +++ b/PBMap.pb @@ -615,9 +615,6 @@ Module PBMap For y = - ny - 1 To ny + 1 For x = - nx - 1 To nx + 1 - ; If PBMap\Moving ;If drawing was threaded, this would exit the loop when the user is moving - ; Break 2 - ; EndIf px = *Drawing\CenterX + x * PBMap\TileSize - *Drawing\DeltaX py = *Drawing\CenterY + y * PBMap\TileSize - *Drawing\DeltaY tilex = ((tx+x) % (1<>>>>>> refs/remotes/origin/idle - - tx = *Drawing\Position\x - ty = *Drawing\Position\y - nx = *Drawing\CenterX / PBMap\TileSize ;How many tiles around the point - ny = *Drawing\CenterY / PBMap\TileSize - -<<<<<<< HEAD -======= - *Drawing\Bounds\NorthWest\x = tx-nx-1 - *Drawing\Bounds\NorthWest\y = ty-ny-1 - *Drawing\Bounds\SouthEast\x = tx+nx+1 - *Drawing\Bounds\SouthEast\y = ty+ny+1 - VectorFont(FontID(PBMap\Font), 10) VectorSourceColor(RGBA(0, 0, 0,alpha)) ->>>>>>> refs/remotes/origin/idle XY2LatLon(*Drawing\Bounds\NorthWest, @Degrees1) XY2LatLon(*Drawing\Bounds\SouthEast, @Degrees2) @@ -750,27 +728,18 @@ Module PBMap ny1 = Round(Degrees2\Latitude, #PB_Round_Down)-1 GetPixelCoordFromLocation(@Degrees2, @pos2) -<<<<<<< HEAD - -======= - ->>>>>>> refs/remotes/origin/idle + x = nx For y = ny1 To ny Degrees1\Longitude = x Degrees1\Latitude = y GetPixelCoordFromLocation(@Degrees1, @pos1) MovePathCursor(pos1\x, pos1\y) -<<<<<<< HEAD - AddPathLine( pos2\x, pos1\y) - Next -======= AddPathLine( pos2\x, pos1\y) MovePathCursor(10,pos1\y) - DrawVectorText(StrD(0-(90-Mod((y+90),180)),1)) + DrawVectorText(StrD(y, 1)) Next ->>>>>>> refs/remotes/origin/idle y = ny For x = nx To nx1 Degrees1\Longitude = x @@ -778,13 +747,9 @@ Module PBMap GetPixelCoordFromLocation(@Degrees1, @pos1) MovePathCursor(pos1\x, pos1\y) AddPathLine( pos1\x, pos2\y) -<<<<<<< HEAD - Next -======= MovePathCursor(pos1\x,10) - DrawVectorText(StrD(0-(180-Mod((x+180),360)),1)) + DrawVectorText(StrD(x, 1)) Next ->>>>>>> refs/remotes/origin/idle StrokePath(1) EndProcedure @@ -815,7 +780,7 @@ Module PBMap If ListSize(PBMap\track())>0 ;Trace Track ForEach PBMap\track() - If *Drawing\TargetLocation\Latitude<>0 And *Drawing\TargetLocation\Longitude<>0 + If *Drawing\TargetLocation\Latitude<>0 And *Drawing\TargetLocation\Longitude<>0 GetPixelCoordFromLocation(@PBMap\track(),@Pixel) If ListIndex(PBMap\track())=0 MovePathCursor(Pixel\X, Pixel\Y) @@ -851,11 +816,11 @@ Module PBMap EndProcedure ; Add a Marker To the Map - Procedure AddMarker(Latitude.d,Longitude.d,color.l=-1, CallBackPointer.i = -1) + Procedure AddMarker(Latitude.d, Longitude.d, color.l=-1, CallBackPointer.i = -1) AddElement(PBMap\Marker()) - PBMap\Marker()\Location\Latitude=Latitude - PBMap\Marker()\Location\Longitude=Longitude - PBMap\Marker()\color=color + PBMap\Marker()\Location\Latitude = Latitude + PBMap\Marker()\Location\Longitude = Longitude + PBMap\Marker()\color = color PBMap\Marker()\CallBackPointer = CallBackPointer EndProcedure @@ -869,7 +834,9 @@ Module PBMap If PBMap\Marker()\CallBackPointer > 0 CallFunctionFast(PBMap\Marker()\CallBackPointer, Pixel\X, Pixel\Y) Else + Debug 1 DrawPointer(*Drawing) + EndIf EndIf EndIf @@ -922,15 +889,6 @@ Module PBMap DrawScale(*Drawing,10,GadgetHeight(PBMAP\Gadget)-20,192) ;EndIf StopVectorDrawing() -<<<<<<< HEAD - ;If there was a problem while drawing, redraw - ; If PBMap\Dirty - ; PBMap\Redraw = #True - ; ;PostEvent(#PB_Event_Gadget, PBMap\Window, PBmap\Gadget, #PB_MAP_REDRAW) - ; EndIf -======= - ->>>>>>> refs/remotes/origin/idle EndProcedure Procedure Refresh() @@ -999,7 +957,7 @@ Module PBMap Protected lat.d = centerY; SetLocation(lat,lon, Round(zoom,#PB_Round_Down)) Else - SetLocation(PBMap\TargetLocation\Latitude,PBMap\TargetLocation\Longitude, 15) + SetLocation(PBMap\TargetLocation\Latitude, PBMap\TargetLocation\Longitude, 15) EndIf EndProcedure @@ -1072,10 +1030,12 @@ Module PBMap Procedure.d GetLatitude() ProcedureReturn 0-(90-Mod((PBMap\TargetLocation\Latitude+90),180)) +; ProcedureReturn PBMap\TargetLocation\Latitude EndProcedure Procedure.d GetLongitude() ProcedureReturn 0-(180-Mod((PBMap\TargetLocation\Longitude+180),360)) +; ProcedureReturn PBMap\TargetLocation\Longitude EndProcedure Procedure.i GetZoom() @@ -1193,7 +1153,7 @@ Module PBMap EndModule -;-Exemple +;-Example CompilerIf #PB_Compiler_IsMainFile InitNetwork() @@ -1224,8 +1184,10 @@ CompilerIf #PB_Compiler_IsMainFile EndStructure Procedure UpdateLocation(*Location.Location) - SetGadgetText(#String_0, StrD(0-(90-Mod((*Location\Latitude+90),180)))) - SetGadgetText(#String_1, StrD(0-(180-Mod((*Location\Longitude+180),360)))) +; SetGadgetText(#String_0, StrD(0-(90-Mod((*Location\Latitude+90),180)))) +; SetGadgetText(#String_1, StrD(0-(180-Mod((*Location\Longitude+180),360)))) + SetGadgetText(#String_0, StrD(*Location\Latitude)) + SetGadgetText(#String_1, StrD(*Location\Longitude)) ProcedureReturn 0 EndProcedure @@ -1330,20 +1292,14 @@ CompilerIf #PB_Compiler_IsMainFile Until Quit = #True PBMap::Quit() -<<<<<<< HEAD EndIf CompilerEndIf + + ; IDE Options = PureBasic 5.50 (Windows - x64) -; CursorPosition = 751 -; FirstLine = 719 -======= - EndIf - CompilerEndIf -; IDE Options = PureBasic 5.50 (Windows - x64) -; CursorPosition = 1263 -; FirstLine = 1250 ->>>>>>> refs/remotes/origin/idle +; CursorPosition = 836 +; FirstLine = 821 ; Folding = --------- ; EnableThread ; EnableXP From c7fe9344d2333e4b2a80e853fa10c787a48ca3c8 Mon Sep 17 00:00:00 2001 From: djes Date: Wed, 31 Aug 2016 12:12:31 +0200 Subject: [PATCH 25/62] wip --- PBMap.pb | 99 ++++++++++++++++++++++++++++++++++++++------------------ 1 file changed, 67 insertions(+), 32 deletions(-) diff --git a/PBMap.pb b/PBMap.pb index 7e2d542..1e248ea 100644 --- a/PBMap.pb +++ b/PBMap.pb @@ -175,6 +175,7 @@ Module PBMap EditMarkerIndex.l ImgLoading.i ;Image Loading Tile + ImgNothing.i ;Image Nothing Tile Options.option ; EndStructure @@ -260,10 +261,11 @@ Module PBMap EndProcedure ;- *** - Procedure LoadingImageCreation() + Procedure TechnicalImagesCreation() + ;"Loading" image Protected Text$ = "Loading" PBmap\ImgLoading = CreateImage(#PB_Any, 256, 256) - If PBmap\ImgLoading + If PBmap\ImgLoading StartVectorDrawing(ImageVectorOutput(PBMap\Imgloading)) BeginVectorLayer() VectorSourceColor(RGBA(255, 255, 255, 128)) @@ -277,6 +279,15 @@ Module PBMap EndVectorLayer() StopVectorDrawing() EndIf + ;"Nothing" tile + PBmap\ImgNothing = CreateImage(#PB_Any, 256, 256) + If PBmap\ImgNothing + StartVectorDrawing(ImageVectorOutput(PBMap\Imgloading)) + VectorSourceColor(RGBA(255, 255, 255, 128)) + AddPathBox(0, 0, 256, 256) + FillPath() + StopVectorDrawing() + EndIf EndProcedure Procedure InitPBMap(Window) @@ -323,7 +334,7 @@ Module PBMap EndIf ClosePreferences() curl_global_init(#CURL_GLOBAL_WIN32) - LoadingImageCreation() + TechnicalImagesCreation() EndProcedure Procedure SetMapServer(ServerURL.s = "http://tile.openstreetmap.org/", TileSize = 256, ZoomMin = 0, ZoomMax = 18) @@ -385,8 +396,8 @@ Module PBMap MyDebug("Latitude : " + StrD(*Location\Latitude) + " ; Longitude : " + StrD(*Location\Longitude)) MyDebug("Coords X : " + Str(*Coords\x) + " ; Y : " + Str(*Coords\y)) EndProcedure - - ;*** Converts tile.decimal to coords + + ;*** Converts tile.decimal to coords ;Warning, structures used in parameters are not tested Procedure XY2LatLon(*Coords.Position, *Location.Location) Protected n.d = Pow(2.0, PBMap\Zoom) @@ -611,25 +622,36 @@ Module PBMap Protected nx = *Drawing\CenterX / PBMap\TileSize ;How many tiles around the point Protected ny = *Drawing\CenterY / PBMap\TileSize Protected px, py, img, tilex,tiley, key.s, CacheFile.s + Protected tilemax = 1< -1 - MovePathCursor(px, py) - DrawVectorImage(ImageID(img), alpha) - Else - MovePathCursor(px, py) - DrawVectorImage(ImageID(PBMap\ImgLoading), alpha) + tilex = (tx + x) % tilemax + Debug "tx " + Str(tx) + Debug "x " + Str(x) + Debug "tilemax " + Str(tilemax) + Debug "tilex " + Str(tilex) + tiley = ty + y + If tiley >= 0 And tiley < tilemax + kq = Layer | (pbmap\zoom << 8) | (tilex << 16) | (tiley << 36) + key = Str(kq) + CacheFile = PBMap\HDDCachePath + key + ".png" + + img = GetTile(key, CacheFile, px, py, tilex, tiley, Layer) + If img <> -1 + MovePathCursor(px, py) + DrawVectorImage(ImageID(img), alpha) + Else + MovePathCursor(px, py) + DrawVectorImage(ImageID(PBMap\ImgLoading), alpha) + EndIf + Else + If Layer = 0 + MovePathCursor(px, py) + DrawVectorImage(ImageID(PBMap\ImgNothing)) + EndIf EndIf Next Next @@ -815,6 +837,20 @@ Module PBMap EndIf EndProcedure + Procedure DrawMarker(x.i, y.i, color.l = 0) + VectorSourceColor(color) + MovePathCursor(x, y) + AddPathLine(-8, -16, #PB_Path_Relative) + AddPathCircle(8, 0, 8, 180, 0, #PB_Path_Relative) + AddPathLine(-8, 16, #PB_Path_Relative) + ;FillPath(#PB_Path_Preserve) + ;ClipPath(#PB_Path_Preserve) + AddPathCircle(0, -16, 5, 0, 360, #PB_Path_Relative) + VectorSourceColor(color) + FillPath(#PB_Path_Preserve):VectorSourceColor(color);RGBA(0, 0, 0, 255)) + StrokePath(1) + EndProcedure + ; Add a Marker To the Map Procedure AddMarker(Latitude.d, Longitude.d, color.l=-1, CallBackPointer.i = -1) AddElement(PBMap\Marker()) @@ -822,8 +858,9 @@ Module PBMap PBMap\Marker()\Location\Longitude = Longitude PBMap\Marker()\color = color PBMap\Marker()\CallBackPointer = CallBackPointer + PBMap\Redraw = #True EndProcedure - + ; Draw all markers on the screen ! Procedure DrawMarkers(*Drawing.DrawingParameters) Protected Pixel.PixelPosition @@ -834,9 +871,7 @@ Module PBMap If PBMap\Marker()\CallBackPointer > 0 CallFunctionFast(PBMap\Marker()\CallBackPointer, Pixel\X, Pixel\Y) Else - Debug 1 - DrawPointer(*Drawing) - + DrawMarker(Pixel\X, Pixel\Y, PBMap\Marker()\color) EndIf EndIf EndIf @@ -1029,13 +1064,13 @@ Module PBMap EndProcedure Procedure.d GetLatitude() - ProcedureReturn 0-(90-Mod((PBMap\TargetLocation\Latitude+90),180)) -; ProcedureReturn PBMap\TargetLocation\Latitude +; ProcedureReturn 0-(90-Mod((PBMap\TargetLocation\Latitude+90),180)) + ProcedureReturn PBMap\TargetLocation\Latitude EndProcedure Procedure.d GetLongitude() - ProcedureReturn 0-(180-Mod((PBMap\TargetLocation\Longitude+180),360)) -; ProcedureReturn PBMap\TargetLocation\Longitude +; ProcedureReturn 0-(180-Mod((PBMap\TargetLocation\Longitude+180),360)) + ProcedureReturn PBMap\TargetLocation\Longitude EndProcedure Procedure.i GetZoom() @@ -1191,7 +1226,7 @@ CompilerIf #PB_Compiler_IsMainFile ProcedureReturn 0 EndProcedure - Procedure MyPointer(x.i, y.i) + Procedure MyMarker(x.i, y.i) Protected color.l color=RGBA(0, 255, 0, 255) VectorSourceColor(color) @@ -1259,7 +1294,7 @@ CompilerIf #PB_Compiler_IsMainFile PBMap::SetLocation(-36.81148, 175.08634,12) PBMap::SetMapServer("http://t1.openseamap.org/seamark/") ;add a special osm overlay map PBMAP::SetMapScaleUnit(PBMAP::#SCALE_NAUTICAL) - PBMap::AddMarker(49.0446828398, 2.0349812508, -1, @MyPointer()) + PBMap::AddMarker(49.0446828398, 2.0349812508, -1, @MyMarker()) Repeat Event = WaitWindowEvent() @@ -1298,9 +1333,9 @@ CompilerEndIf ; IDE Options = PureBasic 5.50 (Windows - x64) -; CursorPosition = 836 -; FirstLine = 821 -; Folding = --------- +; CursorPosition = 633 +; FirstLine = 612 +; Folding = ---------- ; EnableThread ; EnableXP ; EnableUnicode \ No newline at end of file From 6c06a85b70433d1848c26a4a15f3b04f347dc207 Mon Sep 17 00:00:00 2001 From: djes Date: Wed, 31 Aug 2016 12:54:43 +0200 Subject: [PATCH 26/62] neg modulo bugfix --- PBMap.pb | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/PBMap.pb b/PBMap.pb index 1e248ea..9f9b553 100644 --- a/PBMap.pb +++ b/PBMap.pb @@ -402,7 +402,11 @@ Module PBMap Procedure XY2LatLon(*Coords.Position, *Location.Location) Protected n.d = Pow(2.0, PBMap\Zoom) Protected LatitudeRad.d - *Location\Longitude = *Coords\x / n * 360.0 - 180.0 + *Location\Longitude = Mod(*Coords\x / n * 360.0, 360.0) + If *Location\Longitude < 0 + *Location\Longitude + 360 + EndIf + *Location\Longitude - 180.0 LatitudeRad = ATan(SinH(#PI * (1.0 - 2.0 * *Coords\y / n))) *Location\Latitude = Degree(LatitudeRad) EndProcedure @@ -629,10 +633,9 @@ Module PBMap px = *Drawing\CenterX + x * PBMap\TileSize - *Drawing\DeltaX py = *Drawing\CenterY + y * PBMap\TileSize - *Drawing\DeltaY tilex = (tx + x) % tilemax - Debug "tx " + Str(tx) - Debug "x " + Str(x) - Debug "tilemax " + Str(tilemax) - Debug "tilex " + Str(tilex) + If tilex < 0 + tilex + tilemax + EndIf tiley = ty + y If tiley >= 0 And tiley < tilemax kq = Layer | (pbmap\zoom << 8) | (tilex << 16) | (tiley << 36) @@ -749,6 +752,8 @@ Module PBMap nx1 = Round(Degrees2\Longitude, #PB_Round_Up) +1 ny1 = Round(Degrees2\Latitude, #PB_Round_Down)-1 + Debug nx + Debug nx1 GetPixelCoordFromLocation(@Degrees2, @pos2) x = nx @@ -1333,8 +1338,8 @@ CompilerEndIf ; IDE Options = PureBasic 5.50 (Windows - x64) -; CursorPosition = 633 -; FirstLine = 612 +; CursorPosition = 755 +; FirstLine = 732 ; Folding = ---------- ; EnableThread ; EnableXP From 90bd9ef731c10dd9197a24387fa28a8fedbc26c1 Mon Sep 17 00:00:00 2001 From: djes Date: Wed, 31 Aug 2016 14:55:22 +0200 Subject: [PATCH 27/62] wip --- PBMap.pb | 101 ++++++++++++++++++++++++++++++++----------------------- 1 file changed, 59 insertions(+), 42 deletions(-) diff --git a/PBMap.pb b/PBMap.pb index 9f9b553..276591a 100644 --- a/PBMap.pb +++ b/PBMap.pb @@ -29,7 +29,7 @@ DeclareModule PBMap #Red = 255 ;-Show debug infos Global Verbose = 0 - Global MyDebugLevel = 3 + Global MyDebugLevel = 5 ;-Proxy ON/OFF Global Proxy = #False @@ -393,8 +393,8 @@ Module PBMap Protected LatRad.d = Radian(*Location\Latitude) *Coords\x = n * ( (*Location\Longitude + 180.0) / 360.0) *Coords\y = n * ( 1.0 - Log(Tan(LatRad) + 1.0/Cos(LatRad)) / #PI ) / 2.0 - MyDebug("Latitude : " + StrD(*Location\Latitude) + " ; Longitude : " + StrD(*Location\Longitude)) - MyDebug("Coords X : " + Str(*Coords\x) + " ; Y : " + Str(*Coords\y)) + MyDebug("Latitude : " + StrD(*Location\Latitude) + " ; Longitude : " + StrD(*Location\Longitude), 5) + MyDebug("Coords X : " + Str(*Coords\x) + " ; Y : " + Str(*Coords\y), 5) EndProcedure ;*** Converts tile.decimal to coords @@ -407,10 +407,19 @@ Module PBMap *Location\Longitude + 360 EndIf *Location\Longitude - 180.0 + LatitudeRad = ATan(SinH(#PI * (1.0 - 2.0 * *Coords\y / n))) *Location\Latitude = Degree(LatitudeRad) EndProcedure + Procedure LatLon2Pixel(*Location.Location, *Pixel.PixelPosition) + ;Return the position of the coordinates relatively to the canvas center + Protected Pos.Position + LatLon2XY(*Location, @Pos) + *Pixel\x = PBMap\Drawing\CenterX + (Pos\x - PBMap\Drawing\Position\x) * PBMap\TileSize + *Pixel\y = PBMap\Drawing\CenterY + (Pos\y - PBMap\Drawing\Position\y) * PBMap\TileSize + EndProcedure + ; HaversineAlgorithm ; http://andrew.hedges.name/experiments/haversine/ Procedure.d HaversineInKM(*posA.Location, *posB.Location) @@ -429,27 +438,33 @@ Module PBMap ProcedureReturn (1000 * HaversineInKM(@*posA,@*posB)); EndProcedure - Procedure GetPixelCoordFromLocation(*Location.Location, *Pixel.PixelPosition) ; TODO to Optimize - Protected mapWidth.l = Pow(2, PBMap\Zoom + 8) - Protected mapHeight.l = Pow(2, PBMap\Zoom + 8) - Protected x1.l,y1.l - ; get x value - x1 = (*Location\Longitude+180)*(mapWidth/360) - ; convert from degrees To radians - Protected latRad.d = *Location\Latitude*#PI/180; - Protected mercN.d = Log(Tan((#PI/4)+(latRad/2))); - y1 = (mapHeight/2)-(mapWidth*mercN/(2*#PI)) ; - Protected x2.l, y2.l - ; get x value - x2 = (PBMap\TargetLocation\Longitude+180)*(mapWidth/360) - ; convert from degrees To radians - latRad = PBMap\TargetLocation\Latitude*#PI/180; - ; get y value - mercN = Log(Tan((#PI/4)+(latRad/2))) - y2 = (mapHeight/2)-(mapWidth*mercN/(2*#PI)); - *Pixel\x=GadgetWidth(PBMap\Gadget)/2 - (x2-x1) - *Pixel\y=GadgetHeight(PBMap\Gadget)/2 - (y2-y1) - EndProcedure +; Procedure GetPixelCoordFromLocation(*Location.Location, *Pixel.PixelPosition) ; TODO to Optimize +; Protected mapWidth.l = Pow(2, PBMap\Zoom + 8) +; Protected mapHeight.l = Pow(2, PBMap\Zoom + 8) +; Protected x1.l,y1.l +; ; get x value +; x1 = (*Location\Longitude+180)*(mapWidth/360) +; ; convert from degrees To radians +; Protected latRad.d = *Location\Latitude*#PI/180; +; Protected mercN.d = Log(Tan((#PI/4)+(latRad/2))); +; y1 = (mapHeight/2)-(mapWidth*mercN/(2*#PI)) ; +; ; Debug "location" +; ; Debug x1 +; ; Debug y1 +; Protected x2.l, y2.l +; ; get x value +; x2 = (PBMap\TargetLocation\Longitude+180)*(mapWidth/360) +; ; convert from degrees To radians +; latRad = PBMap\TargetLocation\Latitude*#PI/180; +; ; get y value +; mercN = Log(Tan((#PI/4)+(latRad/2))) +; y2 = (mapHeight/2)-(mapWidth*mercN/(2*#PI)); +; ; Debug "targetlocation" +; ; Debug x1 +; ; Debug y1 +; *Pixel\x=GadgetWidth(PBMap\Gadget)/2 - (x2-x1) +; *Pixel\y=GadgetHeight(PBMap\Gadget)/2 - (y2-y1) +; EndProcedure Procedure LoadGpxFile(file.s) If LoadXML(0, file.s) @@ -743,7 +758,7 @@ Module PBMap VectorFont(FontID(PBMap\Font), 10) VectorSourceColor(RGBA(0, 0, 0,alpha)) - + XY2LatLon(*Drawing\Bounds\NorthWest, @Degrees1) XY2LatLon(*Drawing\Bounds\SouthEast, @Degrees2) @@ -752,15 +767,14 @@ Module PBMap nx1 = Round(Degrees2\Longitude, #PB_Round_Up) +1 ny1 = Round(Degrees2\Latitude, #PB_Round_Down)-1 - Debug nx - Debug nx1 - GetPixelCoordFromLocation(@Degrees2, @pos2) + LatLon2Pixel(@Degrees2, @pos2) + x = nx For y = ny1 To ny Degrees1\Longitude = x Degrees1\Latitude = y - GetPixelCoordFromLocation(@Degrees1, @pos1) + LatLon2Pixel(@Degrees1, @pos1) MovePathCursor(pos1\x, pos1\y) AddPathLine( pos2\x, pos1\y) MovePathCursor(10,pos1\y) @@ -769,14 +783,14 @@ Module PBMap y = ny For x = nx To nx1 - Degrees1\Longitude = x - Degrees1\Latitude = y - GetPixelCoordFromLocation(@Degrees1, @pos1) - MovePathCursor(pos1\x, pos1\y) - AddPathLine( pos1\x, pos2\y) - MovePathCursor(pos1\x,10) - DrawVectorText(StrD(x, 1)) - Next + Degrees1\Longitude = x + Degrees1\Latitude = y + LatLon2Pixel(@Degrees1, @pos1) + MovePathCursor(pos1\x, pos1\y) + AddPathLine( pos1\x, pos2\y) + MovePathCursor(pos1\x,10) + DrawVectorText(StrD(x, 1)) + Next StrokePath(1) EndProcedure @@ -808,7 +822,8 @@ Module PBMap ;Trace Track ForEach PBMap\track() If *Drawing\TargetLocation\Latitude<>0 And *Drawing\TargetLocation\Longitude<>0 - GetPixelCoordFromLocation(@PBMap\track(),@Pixel) + ;GetPixelCoordFromLocation(@PBMap\track(),@Pixel) + LatLon2Pixel(@PBMap\track(),@Pixel) If ListIndex(PBMap\track())=0 MovePathCursor(Pixel\X, Pixel\Y) Else @@ -829,7 +844,8 @@ Module PBMap Location\Latitude=PBMap\track()\Latitude Location\Longitude=PBMap\track()\Longitude EndIf - GetPixelCoordFromLocation(@PBMap\track(),@Pixel) + ;GetPixelCoordFromLocation(@PBMap\track(),@Pixel) + LatLon2Pixel(@PBMap\track(),@Pixel) If Int(km)<>memKm memKm=Int(km) If PBMap\Zoom>10 @@ -871,7 +887,8 @@ Module PBMap Protected Pixel.PixelPosition ForEach PBMap\Marker() If PBMap\Marker()\Location\Latitude <> 0 And PBMap\Marker()\Location\Longitude <> 0 - GetPixelCoordFromLocation(PBMap\Marker()\Location, @Pixel) + ;GetPixelCoordFromLocation(PBMap\Marker()\Location, @Pixel) + LatLon2Pixel(PBMap\Marker()\Location, @Pixel) If Pixel\X >= 0 And Pixel\Y >= 0 And Pixel\X < GadgetWidth(PBMap\Gadget) And Pixel\Y < GadgetHeight(PBMap\Gadget) ; Only if visible ^_^ If PBMap\Marker()\CallBackPointer > 0 CallFunctionFast(PBMap\Marker()\CallBackPointer, Pixel\X, Pixel\Y) @@ -1338,8 +1355,8 @@ CompilerEndIf ; IDE Options = PureBasic 5.50 (Windows - x64) -; CursorPosition = 755 -; FirstLine = 732 +; CursorPosition = 892 +; FirstLine = 873 ; Folding = ---------- ; EnableThread ; EnableXP From d7f7a2442bfae78b27b4b68c23cdfb8b9a38ad8f Mon Sep 17 00:00:00 2001 From: djes Date: Wed, 31 Aug 2016 17:26:52 +0200 Subject: [PATCH 28/62] Tracking this damn degrees bug --- PBMap.pb | 123 ++++++++++++++++++++++++++++++++++++------------------- 1 file changed, 82 insertions(+), 41 deletions(-) diff --git a/PBMap.pb b/PBMap.pb index 276591a..26c3288 100644 --- a/PBMap.pb +++ b/PBMap.pb @@ -407,7 +407,6 @@ Module PBMap *Location\Longitude + 360 EndIf *Location\Longitude - 180.0 - LatitudeRad = ATan(SinH(#PI * (1.0 - 2.0 * *Coords\y / n))) *Location\Latitude = Degree(LatitudeRad) EndProcedure @@ -415,7 +414,7 @@ Module PBMap Procedure LatLon2Pixel(*Location.Location, *Pixel.PixelPosition) ;Return the position of the coordinates relatively to the canvas center Protected Pos.Position - LatLon2XY(*Location, @Pos) + LatLon2XY(*Location, @Pos) *Pixel\x = PBMap\Drawing\CenterX + (Pos\x - PBMap\Drawing\Position\x) * PBMap\TileSize *Pixel\y = PBMap\Drawing\CenterY + (Pos\y - PBMap\Drawing\Position\y) * PBMap\TileSize EndProcedure @@ -438,33 +437,33 @@ Module PBMap ProcedureReturn (1000 * HaversineInKM(@*posA,@*posB)); EndProcedure -; Procedure GetPixelCoordFromLocation(*Location.Location, *Pixel.PixelPosition) ; TODO to Optimize -; Protected mapWidth.l = Pow(2, PBMap\Zoom + 8) -; Protected mapHeight.l = Pow(2, PBMap\Zoom + 8) -; Protected x1.l,y1.l -; ; get x value -; x1 = (*Location\Longitude+180)*(mapWidth/360) -; ; convert from degrees To radians -; Protected latRad.d = *Location\Latitude*#PI/180; -; Protected mercN.d = Log(Tan((#PI/4)+(latRad/2))); -; y1 = (mapHeight/2)-(mapWidth*mercN/(2*#PI)) ; -; ; Debug "location" -; ; Debug x1 -; ; Debug y1 -; Protected x2.l, y2.l -; ; get x value -; x2 = (PBMap\TargetLocation\Longitude+180)*(mapWidth/360) -; ; convert from degrees To radians -; latRad = PBMap\TargetLocation\Latitude*#PI/180; -; ; get y value -; mercN = Log(Tan((#PI/4)+(latRad/2))) -; y2 = (mapHeight/2)-(mapWidth*mercN/(2*#PI)); -; ; Debug "targetlocation" -; ; Debug x1 -; ; Debug y1 -; *Pixel\x=GadgetWidth(PBMap\Gadget)/2 - (x2-x1) -; *Pixel\y=GadgetHeight(PBMap\Gadget)/2 - (y2-y1) -; EndProcedure + Procedure GetPixelCoordFromLocation(*Location.Location, *Pixel.PixelPosition) ; TODO to Optimize + Protected mapWidth.l = Pow(2, PBMap\Zoom + 8) + Protected mapHeight.l = Pow(2, PBMap\Zoom + 8) + Protected x1.l,y1.l + ; get x value + x1 = (*Location\Longitude+180)*(mapWidth/360) + ; convert from degrees To radians + Protected latRad.d = *Location\Latitude*#PI/180; + Protected mercN.d = Log(Tan((#PI/4)+(latRad/2))); + y1 = (mapHeight/2)-(mapWidth*mercN/(2*#PI)) ; +; Debug "location" +; Debug x1 +; Debug y1 + Protected x2.l, y2.l + ; get x value + x2 = (PBMap\TargetLocation\Longitude+180)*(mapWidth/360) + ; convert from degrees To radians + latRad = PBMap\TargetLocation\Latitude*#PI/180; + ; get y value + mercN = Log(Tan((#PI/4)+(latRad/2))) + y2 = (mapHeight/2)-(mapWidth*mercN/(2*#PI)); +; Debug "targetlocation" +; Debug x1 +; Debug y1 + *Pixel\x=GadgetWidth(PBMap\Gadget)/2 - (x2-x1) + *Pixel\y=GadgetHeight(PBMap\Gadget)/2 - (y2-y1) + EndProcedure Procedure LoadGpxFile(file.s) If LoadXML(0, file.s) @@ -756,8 +755,11 @@ Module PBMap *Drawing\Bounds\SouthEast\x = tx+nx+1 *Drawing\Bounds\SouthEast\y = ty+ny+1 - VectorFont(FontID(PBMap\Font), 10) - VectorSourceColor(RGBA(0, 0, 0,alpha)) +; Debug "bounds" +; Debug *Drawing\Bounds\NorthWest\x +; Debug *Drawing\Bounds\NorthWest\y +; Debug *Drawing\Bounds\SouthEast\x +; Debug *Drawing\Bounds\SouthEast\y XY2LatLon(*Drawing\Bounds\NorthWest, @Degrees1) XY2LatLon(*Drawing\Bounds\SouthEast, @Degrees2) @@ -767,21 +769,55 @@ Module PBMap nx1 = Round(Degrees2\Longitude, #PB_Round_Up) +1 ny1 = Round(Degrees2\Latitude, #PB_Round_Down)-1 - LatLon2Pixel(@Degrees2, @pos2) + Degrees1\Longitude = nx + Degrees1\Latitude = ny + Degrees2\Longitude = nx1 + Degrees2\Latitude = ny1 + +; Debug "lon lat center" +; Debug *Drawing\TargetLocation\Longitude +; Debug *Drawing\TargetLocation\Latitude +; Debug "lon lat 1" +; Debug Degrees1\Longitude +; Debug Degrees1\Latitude +; Debug "lon lat 2" +; Debug Degrees2\Longitude +; Debug Degrees2\Latitude + + LatLon2Pixel(@Degrees1, @pos1) +; Debug "pos1" +; Debug pos1\x +; Debug pos1\y + + LatLon2Pixel(@Degrees2, @pos2) +; Debug "pos2" +; Debug pos2\x +; Debug pos2\y + + VectorFont(FontID(PBMap\Font), 10) + VectorSourceColor(RGBA(0, 0, 0,alpha)) x = nx + If ny < ny1 + Swap ny, ny1 + x = nx1 + EndIf For y = ny1 To ny Degrees1\Longitude = x Degrees1\Latitude = y LatLon2Pixel(@Degrees1, @pos1) MovePathCursor(pos1\x, pos1\y) AddPathLine( pos2\x, pos1\y) - MovePathCursor(10,pos1\y) + MovePathCursor(10, pos1\y) DrawVectorText(StrD(y, 1)) Next y = ny + If nx > nx1 + Swap nx, nx1 + y = ny1 + EndIf For x = nx To nx1 Degrees1\Longitude = x Degrees1\Latitude = y @@ -949,7 +985,8 @@ Module PBMap EndProcedure Procedure Refresh() - Drawing() + PBMap\Redraw = #True + ;Drawing() EndProcedure Procedure SetLocation(latitude.d, longitude.d, zoom = 15, Mode.i = #PB_Absolute) @@ -970,7 +1007,8 @@ Module PBMap PBMap\Position\x = PBMap\Drawing\Position\x * PBMap\TileSize PBMap\Position\y = PBMap\Drawing\Position\y * PBMap\TileSize PBMap\Drawing\PassNb = 1 - Drawing() + PBMap\Redraw = #True + ;Drawing() If PBMap\CallBackLocation > 0 CallFunctionFast(PBMap\CallBackLocation, @PBMap\TargetLocation) EndIf @@ -1030,9 +1068,10 @@ Module PBMap LatLon2XY(@PBMap\TargetLocation, @PBMap\Drawing) ;Convert X, Y in tile.decimal into real pixels PBMap\Position\X = PBMap\Drawing\Position\x * PBMap\TileSize - PBMap\Position\Y = PBMap\Drawing\Position\y * PBMap\TileSize + PBMap\Position\Y = PBMap\Drawing\Position\y * PBMap\TileSize ;First drawing - Drawing() + PBMap\Redraw = #True + ;Drawing() If PBMap\CallBackLocation > 0 CallFunctionFast(PBMap\CallBackLocation, @PBMap\TargetLocation) EndIf @@ -1048,7 +1087,8 @@ Module PBMap Procedure SetMapScaleUnit(ScaleUnit.i = PBMAP::#SCALE_KM) PBMap\Options\ScaleUnit = ScaleUnit - Drawing() + PBMap\Redraw = #True + ;Drawing() EndProcedure ;Zoom on x, y position relative to the canvas gadget @@ -1078,7 +1118,8 @@ Module PBMap PBMap\Drawing\PassNb = 1 XY2LatLon(@PBMap\Drawing, @PBMap\TargetLocation) ;Start drawing - Drawing() + PBMap\Redraw = #True + ;Drawing() ;If CallBackLocation send Location to function If PBMap\CallBackLocation > 0 CallFunctionFast(PBMap\CallBackLocation, @PBMap\TargetLocation) @@ -1355,8 +1396,8 @@ CompilerEndIf ; IDE Options = PureBasic 5.50 (Windows - x64) -; CursorPosition = 892 -; FirstLine = 873 +; CursorPosition = 416 +; FirstLine = 401 ; Folding = ---------- ; EnableThread ; EnableXP From 37197745c54d7ed3b9bfb969771e3e2b9a378b82 Mon Sep 17 00:00:00 2001 From: djes Date: Thu, 1 Sep 2016 15:24:35 +0200 Subject: [PATCH 29/62] wip --- PBMap.pb | 88 ++++++++++++++++++++++++++++++++------------------------ 1 file changed, 50 insertions(+), 38 deletions(-) diff --git a/PBMap.pb b/PBMap.pb index 26c3288..0527995 100644 --- a/PBMap.pb +++ b/PBMap.pb @@ -391,7 +391,7 @@ Module PBMap Procedure LatLon2XY(*Location.Location, *Coords.Position) Protected n.d = Pow(2.0, PBMap\Zoom) Protected LatRad.d = Radian(*Location\Latitude) - *Coords\x = n * ( (*Location\Longitude + 180.0) / 360.0) + *Coords\x = n * (Mod( *Location\Longitude + 180.0, 360) / 360.0 ) *Coords\y = n * ( 1.0 - Log(Tan(LatRad) + 1.0/Cos(LatRad)) / #PI ) / 2.0 MyDebug("Latitude : " + StrD(*Location\Latitude) + " ; Longitude : " + StrD(*Location\Longitude), 5) MyDebug("Coords X : " + Str(*Coords\x) + " ; Y : " + Str(*Coords\y), 5) @@ -406,17 +406,32 @@ Module PBMap If *Location\Longitude < 0 *Location\Longitude + 360 EndIf - *Location\Longitude - 180.0 + *Location\Longitude = Mod(*Location\Longitude, 360.0) - 180 LatitudeRad = ATan(SinH(#PI * (1.0 - 2.0 * *Coords\y / n))) *Location\Latitude = Degree(LatitudeRad) EndProcedure Procedure LatLon2Pixel(*Location.Location, *Pixel.PixelPosition) - ;Return the position of the coordinates relatively to the canvas center Protected Pos.Position LatLon2XY(*Location, @Pos) + Debug "Longitude : " + StrD(*Location\Longitude) + " ; Pos : " + StrD(Pos\x) + " ; Drawing pos : " + StrD(PBMap\Drawing\Position\x) + "/" + Str(Pow(2.0, PBMap\Zoom)) *Pixel\x = PBMap\Drawing\CenterX + (Pos\x - PBMap\Drawing\Position\x) * PBMap\TileSize *Pixel\y = PBMap\Drawing\CenterY + (Pos\y - PBMap\Drawing\Position\y) * PBMap\TileSize + +; Protected Pos.Position +; Protected Center.Location, Pnt.Location +; ;Return the position of the coordinates relatively to the canvas center +; If Abs(PBMap\Drawing\TargetLocation\Longitude - *Location\Longitude) > 180 And Sign(PBMap\Drawing\TargetLocation\Longitude) <> Sign(*Location\Longitude) +; Pnt\Longitude = PBMap\Drawing\TargetLocation\Longitude - (360 - (PBMap\Drawing\TargetLocation\Longitude - *Location\Longitude)) +; Pnt\Latitude = *Location\Latitude +; LatLon2XY(@Pnt, @Pos) +; *Pixel\x = PBMap\Drawing\CenterX + (Pos\x - PBMap\Drawing\Position\x) * PBMap\TileSize +; *Pixel\y = PBMap\Drawing\CenterY + (Pos\y - PBMap\Drawing\Position\y) * PBMap\TileSize +; Else +; LatLon2XY(*Location, @Pos) +; *Pixel\x = PBMap\Drawing\CenterX + (Pos\x - PBMap\Drawing\Position\x) * PBMap\TileSize +; *Pixel\y = PBMap\Drawing\CenterY + (Pos\y - PBMap\Drawing\Position\y) * PBMap\TileSize +; EndIf EndProcedure ; HaversineAlgorithm @@ -744,6 +759,7 @@ Module PBMap Procedure DrawDegrees(*Drawing.DrawingParameters,alpha=192) Protected tx, ty, nx,ny,nx1,ny1,x,y,n,cx,dperpixel.d Protected pos1.PixelPosition,pos2.PixelPosition,Degrees1.Location,degrees2.Location + Protected realx tx = Int(*Drawing\Position\x) ty = Int(*Drawing\Position\y) @@ -769,40 +785,42 @@ Module PBMap nx1 = Round(Degrees2\Longitude, #PB_Round_Up) +1 ny1 = Round(Degrees2\Latitude, #PB_Round_Down)-1 + ;ensure we stay positive for the drawing + realx = nx + If nx < 0 + nx + 360 + EndIf + If nx1 < 0 + nx1 + 360 + EndIf + nx % 360 + nx1 % 360 + + Debug "---" + Debug nx + Debug nx1 + Debug ny1 + Debug ny + Degrees1\Longitude = nx Degrees1\Latitude = ny Degrees2\Longitude = nx1 Degrees2\Latitude = ny1 -; Debug "lon lat center" -; Debug *Drawing\TargetLocation\Longitude -; Debug *Drawing\TargetLocation\Latitude -; Debug "lon lat 1" -; Debug Degrees1\Longitude -; Debug Degrees1\Latitude -; Debug "lon lat 2" -; Debug Degrees2\Longitude -; Debug Degrees2\Latitude - LatLon2Pixel(@Degrees1, @pos1) -; Debug "pos1" -; Debug pos1\x -; Debug pos1\y - LatLon2Pixel(@Degrees2, @pos2) -; Debug "pos2" -; Debug pos2\x -; Debug pos2\y + + Debug "---" + Debug pos1\x + Debug pos1\y + Debug pos2\x + Debug pos2\y VectorFont(FontID(PBMap\Font), 10) VectorSourceColor(RGBA(0, 0, 0,alpha)) - x = nx - If ny < ny1 - Swap ny, ny1 - x = nx1 - EndIf + ;draw latitudes For y = ny1 To ny Degrees1\Longitude = x Degrees1\Latitude = y @@ -812,12 +830,8 @@ Module PBMap MovePathCursor(10, pos1\y) DrawVectorText(StrD(y, 1)) Next - - y = ny - If nx > nx1 - Swap nx, nx1 - y = ny1 - EndIf + + ;draw longitudes For x = nx To nx1 Degrees1\Longitude = x Degrees1\Latitude = y @@ -825,7 +839,7 @@ Module PBMap MovePathCursor(pos1\x, pos1\y) AddPathLine( pos1\x, pos2\y) MovePathCursor(pos1\x,10) - DrawVectorText(StrD(x, 1)) + DrawVectorText(Str(x)) Next StrokePath(1) @@ -1105,10 +1119,8 @@ Module PBMap ;Centered Zoom LatLon2XY(@PBMap\TargetLocation, @PBMap\Drawing) ;Convert X, Y in tile.decimal into real pixels - PBMap\Position\x = PBMap\Drawing\Position\x * PBMap\TileSize - PBMap\Position\y = PBMap\Drawing\Position\y * PBMap\TileSize - MouseX = PBMap\Position\x + GadgetWidth(PBMap\Gadget) / 2 - x - MouseY = PBMap\Position\y + GadgetHeight(PBMap\Gadget) / 2 - y + MouseX = PBMap\Drawing\Position\x * PBMap\TileSize + GadgetWidth(PBMap\Gadget) / 2 - x + MouseY = PBMap\Drawing\Position\y * PBMap\TileSize + GadgetHeight(PBMap\Gadget) / 2 - y ;Cross-multiply to get the new center PBMap\Position\x = (OldPx * MouseX) / OldMx PBMap\Position\y = (OldPy * MouseY) / OldMy @@ -1396,8 +1408,8 @@ CompilerEndIf ; IDE Options = PureBasic 5.50 (Windows - x64) -; CursorPosition = 416 -; FirstLine = 401 +; CursorPosition = 1020 +; FirstLine = 999 ; Folding = ---------- ; EnableThread ; EnableXP From 3f36ae9799affb984f9fe5192897a60d4ad87ae6 Mon Sep 17 00:00:00 2001 From: djes Date: Thu, 1 Sep 2016 17:30:54 +0200 Subject: [PATCH 30/62] Working Degrees (phew!), now working on marker select (doh!) marker select now doesn't work as the coordinates are in a clipped range... --- PBMap.pb | 85 ++++++++++++++++++++------------------------------------ 1 file changed, 30 insertions(+), 55 deletions(-) diff --git a/PBMap.pb b/PBMap.pb index 0527995..2951b93 100644 --- a/PBMap.pb +++ b/PBMap.pb @@ -413,25 +413,19 @@ Module PBMap Procedure LatLon2Pixel(*Location.Location, *Pixel.PixelPosition) Protected Pos.Position + Protected tilemax = Pow(2.0, PBMap\Zoom) LatLon2XY(*Location, @Pos) - Debug "Longitude : " + StrD(*Location\Longitude) + " ; Pos : " + StrD(Pos\x) + " ; Drawing pos : " + StrD(PBMap\Drawing\Position\x) + "/" + Str(Pow(2.0, PBMap\Zoom)) - *Pixel\x = PBMap\Drawing\CenterX + (Pos\x - PBMap\Drawing\Position\x) * PBMap\TileSize + ;check the x boundaries of the map to adjust the position + If PBMap\Drawing\Position\x - Pos\x > tilemax / 2 + *Pixel\x = PBMap\Drawing\CenterX + (Pos\x - PBMap\Drawing\Position\x + tilemax) * PBMap\TileSize + ElseIf Pos\x - PBMap\Drawing\Position\x > tilemax / 2 + *Pixel\x = PBMap\Drawing\CenterX + (Pos\x - PBMap\Drawing\Position\x - tilemax) * PBMap\TileSize + Else + *Pixel\x = PBMap\Drawing\CenterX + (Pos\x - PBMap\Drawing\Position\x) * PBMap\TileSize + EndIf *Pixel\y = PBMap\Drawing\CenterY + (Pos\y - PBMap\Drawing\Position\y) * PBMap\TileSize - -; Protected Pos.Position -; Protected Center.Location, Pnt.Location -; ;Return the position of the coordinates relatively to the canvas center -; If Abs(PBMap\Drawing\TargetLocation\Longitude - *Location\Longitude) > 180 And Sign(PBMap\Drawing\TargetLocation\Longitude) <> Sign(*Location\Longitude) -; Pnt\Longitude = PBMap\Drawing\TargetLocation\Longitude - (360 - (PBMap\Drawing\TargetLocation\Longitude - *Location\Longitude)) -; Pnt\Latitude = *Location\Latitude -; LatLon2XY(@Pnt, @Pos) -; *Pixel\x = PBMap\Drawing\CenterX + (Pos\x - PBMap\Drawing\Position\x) * PBMap\TileSize -; *Pixel\y = PBMap\Drawing\CenterY + (Pos\y - PBMap\Drawing\Position\y) * PBMap\TileSize -; Else -; LatLon2XY(*Location, @Pos) -; *Pixel\x = PBMap\Drawing\CenterX + (Pos\x - PBMap\Drawing\Position\x) * PBMap\TileSize -; *Pixel\y = PBMap\Drawing\CenterY + (Pos\y - PBMap\Drawing\Position\y) * PBMap\TileSize -; EndIf +; Debug "Longitude : " + StrD(*Location\Longitude) + " ; Pos : " + StrD(Pos\x) + " ; Drawing pos : " + StrD(PBMap\Drawing\Position\x) + "/" + Str(tilemax) + +; " ; XY : " + Str(*Pixel\x) + "," + Str(*Pixel\y) EndProcedure ; HaversineAlgorithm @@ -760,31 +754,20 @@ Module PBMap Protected tx, ty, nx,ny,nx1,ny1,x,y,n,cx,dperpixel.d Protected pos1.PixelPosition,pos2.PixelPosition,Degrees1.Location,degrees2.Location Protected realx - tx = Int(*Drawing\Position\x) ty = Int(*Drawing\Position\y) nx = *Drawing\CenterX / PBMap\TileSize ;How many tiles around the point ny = *Drawing\CenterY / PBMap\TileSize - *Drawing\Bounds\NorthWest\x = tx-nx-1 *Drawing\Bounds\NorthWest\y = ty-ny-1 *Drawing\Bounds\SouthEast\x = tx+nx+1 *Drawing\Bounds\SouthEast\y = ty+ny+1 - -; Debug "bounds" -; Debug *Drawing\Bounds\NorthWest\x -; Debug *Drawing\Bounds\NorthWest\y -; Debug *Drawing\Bounds\SouthEast\x -; Debug *Drawing\Bounds\SouthEast\y - XY2LatLon(*Drawing\Bounds\NorthWest, @Degrees1) XY2LatLon(*Drawing\Bounds\SouthEast, @Degrees2) - nx = Round(Degrees1\Longitude, #PB_Round_Down)-1 ny = Round(Degrees1\Latitude, #PB_Round_Up) +1 nx1 = Round(Degrees2\Longitude, #PB_Round_Up) +1 ny1 = Round(Degrees2\Latitude, #PB_Round_Down)-1 - ;ensure we stay positive for the drawing realx = nx If nx < 0 @@ -795,34 +778,17 @@ Module PBMap EndIf nx % 360 nx1 % 360 - - Debug "---" - Debug nx - Debug nx1 - Debug ny1 - Debug ny - Degrees1\Longitude = nx Degrees1\Latitude = ny - Degrees2\Longitude = nx1 Degrees2\Latitude = ny1 - LatLon2Pixel(@Degrees1, @pos1) LatLon2Pixel(@Degrees2, @pos2) - - Debug "---" - Debug pos1\x - Debug pos1\y - Debug pos2\x - Debug pos2\y - VectorFont(FontID(PBMap\Font), 10) VectorSourceColor(RGBA(0, 0, 0,alpha)) - ;draw latitudes For y = ny1 To ny - Degrees1\Longitude = x + Degrees1\Longitude = nx Degrees1\Latitude = y LatLon2Pixel(@Degrees1, @pos1) MovePathCursor(pos1\x, pos1\y) @@ -830,19 +796,21 @@ Module PBMap MovePathCursor(10, pos1\y) DrawVectorText(StrD(y, 1)) Next - ;draw longitudes For x = nx To nx1 Degrees1\Longitude = x - Degrees1\Latitude = y + Degrees1\Latitude = ny LatLon2Pixel(@Degrees1, @pos1) MovePathCursor(pos1\x, pos1\y) AddPathLine( pos1\x, pos2\y) MovePathCursor(pos1\x,10) - DrawVectorText(Str(x)) + DrawVectorText(StrD(realx, 1)) + realx + 1 + If realx > 180 + realx - 360 + EndIf Next StrokePath(1) - EndProcedure Procedure TrackPointer(x.i, y.i,dist.l) @@ -965,7 +933,6 @@ Module PBMap *Drawing\DeltaY = Py * PBMap\TileSize - (Int(Py) * PBMap\TileSize) *Drawing\TargetLocation\Latitude = PBMap\TargetLocation\Latitude *Drawing\TargetLocation\Longitude = PBMap\TargetLocation\Longitude - ;Main drawing stuff StartVectorDrawing(CanvasVectorOutput(PBMap\Gadget)) ;TODO add in layers of tiles ;this way we can cache them as 0 base 1.n layers @@ -1172,7 +1139,9 @@ Module PBMap MouseX = PBMap\Position\x - GadgetWidth(PBMap\Gadget) / 2 + GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseX) MouseY = PBMap\Position\y - GadgetHeight(PBMap\Gadget) / 2 + GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseY) ForEach PBMap\Marker() - LatLon2XY(@PBMap\Marker()\Location, @Marker) + LatLon2XY(@PBMap\Marker()\Location, @Marker) + Debug "Pos : " + StrD(Marker\x) + " ; Drawing pos : " + StrD(PBMap\Drawing\Position\x) + Marker\x * PBMap\TileSize Marker\y * PBMap\TileSize If Distance(Marker\x, Marker\y, MouseX, MouseY) < 8 @@ -1197,7 +1166,13 @@ Module PBMap XY2LatLon(@Marker, @PBMap\Marker()\Location) Else ;New move values - PBMap\Position\x - MouseX + ;PBMap\Position\x - MouseX + ;Ensures that pixel position stay in the range [0..2^Zoom*PBMap\TileSize[ + PBMap\Position\x = PBMap\Position\x - MouseX + If PBMap\Position\x < 0 + PBMap\Position\x + Pow(2, PBMap\Zoom) * PBMap\TileSize + EndIf + PBMap\Position\x = Mod(PBMap\Position\x, Pow(2, PBMap\Zoom) * PBMap\TileSize) PBMap\Position\y - MouseY ;PBMap tile position in tile.decimal PBMap\Drawing\Position\x = PBMap\Position\x / PBMap\TileSize @@ -1408,8 +1383,8 @@ CompilerEndIf ; IDE Options = PureBasic 5.50 (Windows - x64) -; CursorPosition = 1020 -; FirstLine = 999 +; CursorPosition = 940 +; FirstLine = 932 ; Folding = ---------- ; EnableThread ; EnableXP From c1a6dda16a4fcc0a6f08c178669ad93101a78c21 Mon Sep 17 00:00:00 2001 From: djes Date: Thu, 1 Sep 2016 17:43:40 +0200 Subject: [PATCH 31/62] Marker select fixed --- PBMap.pb | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/PBMap.pb b/PBMap.pb index 2951b93..23eca67 100644 --- a/PBMap.pb +++ b/PBMap.pb @@ -1138,12 +1138,18 @@ Module PBMap ;Check if we select a marker MouseX = PBMap\Position\x - GadgetWidth(PBMap\Gadget) / 2 + GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseX) MouseY = PBMap\Position\y - GadgetHeight(PBMap\Gadget) / 2 + GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseY) + ;Clip MouseX to the map range (in X, the map is infinite) + If MouseX < 0 + MouseX + Pow(2, PBMap\Zoom) * PBMap\TileSize + EndIf + MouseX = Mod(MouseX, Pow(2, PBMap\Zoom) * PBMap\TileSize) +; Debug "---" +; Debug "mx : " + Str(MouseX) ForEach PBMap\Marker() LatLon2XY(@PBMap\Marker()\Location, @Marker) - Debug "Pos : " + StrD(Marker\x) + " ; Drawing pos : " + StrD(PBMap\Drawing\Position\x) - Marker\x * PBMap\TileSize Marker\y * PBMap\TileSize +; Debug "Pos : " + StrD(Marker\x) + " ; Drawing pos : " + StrD(PBMap\Drawing\Position\x) If Distance(Marker\x, Marker\y, MouseX, MouseY) < 8 PBMap\EditMarkerIndex = ListIndex(PBMap\Marker()) Break @@ -1383,8 +1389,8 @@ CompilerEndIf ; IDE Options = PureBasic 5.50 (Windows - x64) -; CursorPosition = 940 -; FirstLine = 932 +; CursorPosition = 1149 +; FirstLine = 1122 ; Folding = ---------- ; EnableThread ; EnableXP From 3ab69529980bc0ec72b1fad4c730d443a394d2ce Mon Sep 17 00:00:00 2001 From: djes Date: Fri, 2 Sep 2016 08:51:40 +0200 Subject: [PATCH 32/62] idle's fix --- PBMap.pb | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/PBMap.pb b/PBMap.pb index 23eca67..8ef2574 100644 --- a/PBMap.pb +++ b/PBMap.pb @@ -392,7 +392,7 @@ Module PBMap Protected n.d = Pow(2.0, PBMap\Zoom) Protected LatRad.d = Radian(*Location\Latitude) *Coords\x = n * (Mod( *Location\Longitude + 180.0, 360) / 360.0 ) - *Coords\y = n * ( 1.0 - Log(Tan(LatRad) + 1.0/Cos(LatRad)) / #PI ) / 2.0 + *Coords\y = n * ( 1.0 - Log(Tan(LatRad) + (1.0/Cos(LatRad))) / #PI ) / 2.0 MyDebug("Latitude : " + StrD(*Location\Latitude) + " ; Longitude : " + StrD(*Location\Longitude), 5) MyDebug("Coords X : " + Str(*Coords\x) + " ; Y : " + Str(*Coords\y), 5) EndProcedure @@ -894,7 +894,7 @@ Module PBMap Procedure AddMarker(Latitude.d, Longitude.d, color.l=-1, CallBackPointer.i = -1) AddElement(PBMap\Marker()) PBMap\Marker()\Location\Latitude = Latitude - PBMap\Marker()\Location\Longitude = Longitude + PBMap\Marker()\Location\Longitude = Mod(Longitude + 360, 360) PBMap\Marker()\color = color PBMap\Marker()\CallBackPointer = CallBackPointer PBMap\Redraw = #True @@ -1375,7 +1375,7 @@ CompilerIf #PB_Compiler_IsMainFile PBMap::LoadGpxFile(OpenFileRequester("Choose a file to load", "", "*.gpx", 0)) PBMap::ZoomToArea() ; <-To center the view, and zoom on the tracks Case #Gdt_AddMarker - PBMap:: AddMarker(ValD(GetGadgetText(#String_0)), ValD(GetGadgetText(#String_1)), RGBA(Random(255), Random(255), Random(255),255)) + PBMap:: AddMarker(ValD(GetGadgetText(#String_0)), ValD(GetGadgetText(#String_1)), RGBA(Random(255), Random(255), Random(255), 255), @MyMarker()) EndSelect Case #PB_Event_SizeWindow ResizeAll() @@ -1386,11 +1386,9 @@ CompilerIf #PB_Compiler_IsMainFile EndIf CompilerEndIf - - ; IDE Options = PureBasic 5.50 (Windows - x64) -; CursorPosition = 1149 -; FirstLine = 1122 +; CursorPosition = 1353 +; FirstLine = 1344 ; Folding = ---------- ; EnableThread ; EnableXP From cfc43dd86c9c5b5aa2118be1a00bd13a8148db74 Mon Sep 17 00:00:00 2001 From: djes Date: Fri, 2 Sep 2016 12:32:10 +0200 Subject: [PATCH 33/62] degrees bugfix --- PBMap.pb | 93 ++++++++++++++++++++++++++++++++------------------------ 1 file changed, 54 insertions(+), 39 deletions(-) diff --git a/PBMap.pb b/PBMap.pb index 8ef2574..b882be4 100644 --- a/PBMap.pb +++ b/PBMap.pb @@ -402,11 +402,14 @@ Module PBMap Procedure XY2LatLon(*Coords.Position, *Location.Location) Protected n.d = Pow(2.0, PBMap\Zoom) Protected LatitudeRad.d - *Location\Longitude = Mod(*Coords\x / n * 360.0, 360.0) - If *Location\Longitude < 0 - *Location\Longitude + 360 - EndIf - *Location\Longitude = Mod(*Location\Longitude, 360.0) - 180 + ;Ensures the longitude to be in the range [-180;180[ + *Location\Longitude = Mod(Mod(*Coords\x / n * 360.0, 360.0) + 360.0, 360.0) + *Location\Longitude - 180 +; *Location\Longitude = Mod(*Coords\x / n * 360.0, 360.0) +; If *Location\Longitude < 0 +; *Location\Longitude + 360 +; EndIf +; *Location\Longitude = Mod(*Location\Longitude, 360.0) - 180 LatitudeRad = ATan(SinH(#PI * (1.0 - 2.0 * *Coords\y / n))) *Location\Latitude = Degree(LatitudeRad) EndProcedure @@ -414,18 +417,29 @@ Module PBMap Procedure LatLon2Pixel(*Location.Location, *Pixel.PixelPosition) Protected Pos.Position Protected tilemax = Pow(2.0, PBMap\Zoom) + Protected cx.d = PBMap\Drawing\CenterX, dpx.d = PBMap\Drawing\Position\x LatLon2XY(*Location, @Pos) - ;check the x boundaries of the map to adjust the position - If PBMap\Drawing\Position\x - Pos\x > tilemax / 2 - *Pixel\x = PBMap\Drawing\CenterX + (Pos\x - PBMap\Drawing\Position\x + tilemax) * PBMap\TileSize - ElseIf Pos\x - PBMap\Drawing\Position\x > tilemax / 2 - *Pixel\x = PBMap\Drawing\CenterX + (Pos\x - PBMap\Drawing\Position\x - tilemax) * PBMap\TileSize + Protected px.d = Pos\x + ;check the x boundaries of the map to adjust the position (coz of the longitude wrapping) + If dpx - px > tilemax / 2 + ;Debug "c1" + *Pixel\x = cx + (px - dpx + tilemax) * PBMap\TileSize + ElseIf px - dpx > tilemax / 2 + ;Debug "c2" + *Pixel\x = cx + (px - dpx - tilemax) * PBMap\TileSize + ElseIf dpx - px < 0 + ;Debug "c3" + *Pixel\x = cx + (px - dpx) * PBMap\TileSize + ElseIf px - dpx < 0 + ;Debug "c4" + *Pixel\x = cx - (dpx - px) * PBMap\TileSize Else - *Pixel\x = PBMap\Drawing\CenterX + (Pos\x - PBMap\Drawing\Position\x) * PBMap\TileSize + ;Debug "c0" + *Pixel\x = cx + (px - dpx) * PBMap\TileSize EndIf *Pixel\y = PBMap\Drawing\CenterY + (Pos\y - PBMap\Drawing\Position\y) * PBMap\TileSize -; Debug "Longitude : " + StrD(*Location\Longitude) + " ; Pos : " + StrD(Pos\x) + " ; Drawing pos : " + StrD(PBMap\Drawing\Position\x) + "/" + Str(tilemax) + -; " ; XY : " + Str(*Pixel\x) + "," + Str(*Pixel\y) + ;Debug "Longitude : " + StrD(*Location\Longitude) + " ; Pos : " + StrD(Pos\x) + " ; Drawing pos : " + StrD(PBMap\Drawing\Position\x) + "/" + Str(tilemax) + + ; " ; XY : " + Str(*Pixel\x) + "," + Str(*Pixel\y) EndProcedure ; HaversineAlgorithm @@ -762,30 +776,32 @@ Module PBMap *Drawing\Bounds\NorthWest\y = ty-ny-1 *Drawing\Bounds\SouthEast\x = tx+nx+1 *Drawing\Bounds\SouthEast\y = ty+ny+1 +; Debug "------------------" XY2LatLon(*Drawing\Bounds\NorthWest, @Degrees1) XY2LatLon(*Drawing\Bounds\SouthEast, @Degrees2) - nx = Round(Degrees1\Longitude, #PB_Round_Down)-1 - ny = Round(Degrees1\Latitude, #PB_Round_Up) +1 - nx1 = Round(Degrees2\Longitude, #PB_Round_Up) +1 - ny1 = Round(Degrees2\Latitude, #PB_Round_Down)-1 ;ensure we stay positive for the drawing + nx = Mod(Mod(Round(Degrees1\Longitude, #PB_Round_Down)-1, 360) + 360, 360) + ny = Round(Degrees1\Latitude, #PB_Round_Up) +1 + nx1 = Mod(Mod(Round(Degrees2\Longitude, #PB_Round_Up) +1, 360) + 360, 360) + ny1 = Round(Degrees2\Latitude, #PB_Round_Down)-1 realx = nx - If nx < 0 - nx + 360 - EndIf - If nx1 < 0 - nx1 + 360 - EndIf - nx % 360 - nx1 % 360 +; If nx < 0 +; nx + 360 +; EndIf +; If nx1 < 0 +; nx1 + 360 +; EndIf +; nx % 360 +; nx1 % 360 Degrees1\Longitude = nx Degrees1\Latitude = ny Degrees2\Longitude = nx1 Degrees2\Latitude = ny1 +; Debug "NW : " + StrD(Degrees1\Longitude) + " ; NE : " + StrD(Degrees2\Longitude) LatLon2Pixel(@Degrees1, @pos1) LatLon2Pixel(@Degrees2, @pos2) VectorFont(FontID(PBMap\Font), 10) - VectorSourceColor(RGBA(0, 0, 0,alpha)) + VectorSourceColor(RGBA(0, 0, 0, alpha)) ;draw latitudes For y = ny1 To ny Degrees1\Longitude = nx @@ -797,7 +813,8 @@ Module PBMap DrawVectorText(StrD(y, 1)) Next ;draw longitudes - For x = nx To nx1 + x = nx + Repeat Degrees1\Longitude = x Degrees1\Latitude = ny LatLon2Pixel(@Degrees1, @pos1) @@ -809,7 +826,8 @@ Module PBMap If realx > 180 realx - 360 EndIf - Next + x = (x + 1)%360 + Until x = nx1 StrokePath(1) EndProcedure @@ -894,7 +912,7 @@ Module PBMap Procedure AddMarker(Latitude.d, Longitude.d, color.l=-1, CallBackPointer.i = -1) AddElement(PBMap\Marker()) PBMap\Marker()\Location\Latitude = Latitude - PBMap\Marker()\Location\Longitude = Mod(Longitude + 360, 360) + PBMap\Marker()\Location\Longitude = Mod(Mod(Longitude, 360) + 360, 360) PBMap\Marker()\color = color PBMap\Marker()\CallBackPointer = CallBackPointer PBMap\Redraw = #True @@ -1088,6 +1106,7 @@ Module PBMap ;Convert X, Y in tile.decimal into real pixels MouseX = PBMap\Drawing\Position\x * PBMap\TileSize + GadgetWidth(PBMap\Gadget) / 2 - x MouseY = PBMap\Drawing\Position\y * PBMap\TileSize + GadgetHeight(PBMap\Gadget) / 2 - y + Debug PBMap\Position\x ;Cross-multiply to get the new center PBMap\Position\x = (OldPx * MouseX) / OldMx PBMap\Position\y = (OldPy * MouseY) / OldMy @@ -1123,7 +1142,7 @@ Module PBMap Procedure CanvasEvents() Protected MouseX.i, MouseY.i - Protected Marker.Position, *Tile.Tile + Protected Marker.Position, *Tile.Tile, MapWidth = Pow(2, PBMap\Zoom) * PBMap\TileSize PBMap\Moving = #False Select EventType() Case #PB_EventType_MouseWheel @@ -1139,12 +1158,7 @@ Module PBMap MouseX = PBMap\Position\x - GadgetWidth(PBMap\Gadget) / 2 + GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseX) MouseY = PBMap\Position\y - GadgetHeight(PBMap\Gadget) / 2 + GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseY) ;Clip MouseX to the map range (in X, the map is infinite) - If MouseX < 0 - MouseX + Pow(2, PBMap\Zoom) * PBMap\TileSize - EndIf - MouseX = Mod(MouseX, Pow(2, PBMap\Zoom) * PBMap\TileSize) -; Debug "---" -; Debug "mx : " + Str(MouseX) + MouseX = Mod(Mod(MouseX, MapWidth) + MapWidth, MapWidth) ForEach PBMap\Marker() LatLon2XY(@PBMap\Marker()\Location, @Marker) Marker\x * PBMap\TileSize @@ -1173,7 +1187,7 @@ Module PBMap Else ;New move values ;PBMap\Position\x - MouseX - ;Ensures that pixel position stay in the range [0..2^Zoom*PBMap\TileSize[ + ;Ensures that pixel position stay in the range [0..2^Zoom*PBMap\TileSize[ coz of the wrapping of the map PBMap\Position\x = PBMap\Position\x - MouseX If PBMap\Position\x < 0 PBMap\Position\x + Pow(2, PBMap\Zoom) * PBMap\TileSize @@ -1348,6 +1362,7 @@ CompilerIf #PB_Compiler_IsMainFile PBMap::SetCallBackMainPointer(@MainPointer()) ;To change the Main Pointer PBMap::SetCallBackLocation(@UpdateLocation()) PBMap::SetLocation(-36.81148, 175.08634,12) +; PBMap::SetLocation(0, 0) PBMap::SetMapServer("http://t1.openseamap.org/seamark/") ;add a special osm overlay map PBMAP::SetMapScaleUnit(PBMAP::#SCALE_NAUTICAL) PBMap::AddMarker(49.0446828398, 2.0349812508, -1, @MyMarker()) @@ -1387,8 +1402,8 @@ CompilerIf #PB_Compiler_IsMainFile CompilerEndIf ; IDE Options = PureBasic 5.50 (Windows - x64) -; CursorPosition = 1353 -; FirstLine = 1344 +; CursorPosition = 1364 +; FirstLine = 1352 ; Folding = ---------- ; EnableThread ; EnableXP From f6f149e84ec81d4e46c7d5fd03ffaf617143db35 Mon Sep 17 00:00:00 2001 From: djes Date: Fri, 2 Sep 2016 12:48:46 +0200 Subject: [PATCH 34/62] cleanup --- PBMap.pb | 26 ++++++-------------------- 1 file changed, 6 insertions(+), 20 deletions(-) diff --git a/PBMap.pb b/PBMap.pb index b882be4..c66bdbf 100644 --- a/PBMap.pb +++ b/PBMap.pb @@ -403,8 +403,7 @@ Module PBMap Protected n.d = Pow(2.0, PBMap\Zoom) Protected LatitudeRad.d ;Ensures the longitude to be in the range [-180;180[ - *Location\Longitude = Mod(Mod(*Coords\x / n * 360.0, 360.0) + 360.0, 360.0) - *Location\Longitude - 180 + *Location\Longitude = Mod(Mod(*Coords\x / n * 360.0, 360.0) + 360.0, 360.0) - 180 ; *Location\Longitude = Mod(*Coords\x / n * 360.0, 360.0) ; If *Location\Longitude < 0 ; *Location\Longitude + 360 @@ -782,17 +781,8 @@ Module PBMap ;ensure we stay positive for the drawing nx = Mod(Mod(Round(Degrees1\Longitude, #PB_Round_Down)-1, 360) + 360, 360) ny = Round(Degrees1\Latitude, #PB_Round_Up) +1 - nx1 = Mod(Mod(Round(Degrees2\Longitude, #PB_Round_Up) +1, 360) + 360, 360) + nx1 = Mod(Mod(Round(Degrees2\Longitude, #PB_Round_Up) +1, 360) + 360, 360) ny1 = Round(Degrees2\Latitude, #PB_Round_Down)-1 - realx = nx -; If nx < 0 -; nx + 360 -; EndIf -; If nx1 < 0 -; nx1 + 360 -; EndIf -; nx % 360 -; nx1 % 360 Degrees1\Longitude = nx Degrees1\Latitude = ny Degrees2\Longitude = nx1 @@ -821,13 +811,9 @@ Module PBMap MovePathCursor(pos1\x, pos1\y) AddPathLine( pos1\x, pos2\y) MovePathCursor(pos1\x,10) - DrawVectorText(StrD(realx, 1)) - realx + 1 - If realx > 180 - realx - 360 - EndIf + DrawVectorText(StrD(Mod(x + 180, 360) - 180, 1)) x = (x + 1)%360 - Until x = nx1 + Until x = nx1 StrokePath(1) EndProcedure @@ -1402,8 +1388,8 @@ CompilerIf #PB_Compiler_IsMainFile CompilerEndIf ; IDE Options = PureBasic 5.50 (Windows - x64) -; CursorPosition = 1364 -; FirstLine = 1352 +; CursorPosition = 413 +; FirstLine = 467 ; Folding = ---------- ; EnableThread ; EnableXP From 93c64758ac8a64f786b454b4515e54fe84ea7d64 Mon Sep 17 00:00:00 2001 From: djes Date: Fri, 2 Sep 2016 14:00:25 +0200 Subject: [PATCH 35/62] cleanup --- PBMap.pb | 20 +++++++++----------- 1 file changed, 9 insertions(+), 11 deletions(-) diff --git a/PBMap.pb b/PBMap.pb index c66bdbf..c6cdef0 100644 --- a/PBMap.pb +++ b/PBMap.pb @@ -421,19 +421,16 @@ Module PBMap Protected px.d = Pos\x ;check the x boundaries of the map to adjust the position (coz of the longitude wrapping) If dpx - px > tilemax / 2 - ;Debug "c1" + Debug "c1" *Pixel\x = cx + (px - dpx + tilemax) * PBMap\TileSize ElseIf px - dpx > tilemax / 2 - ;Debug "c2" + Debug "c2" *Pixel\x = cx + (px - dpx - tilemax) * PBMap\TileSize - ElseIf dpx - px < 0 - ;Debug "c3" - *Pixel\x = cx + (px - dpx) * PBMap\TileSize - ElseIf px - dpx < 0 - ;Debug "c4" + ElseIf px - dpx < 0 + Debug "c3" *Pixel\x = cx - (dpx - px) * PBMap\TileSize Else - ;Debug "c0" + Debug "c0" *Pixel\x = cx + (px - dpx) * PBMap\TileSize EndIf *Pixel\y = PBMap\Drawing\CenterY + (Pos\y - PBMap\Drawing\Position\y) * PBMap\TileSize @@ -1092,6 +1089,7 @@ Module PBMap ;Convert X, Y in tile.decimal into real pixels MouseX = PBMap\Drawing\Position\x * PBMap\TileSize + GadgetWidth(PBMap\Gadget) / 2 - x MouseY = PBMap\Drawing\Position\y * PBMap\TileSize + GadgetHeight(PBMap\Gadget) / 2 - y + Debug "------" ;TODO bug when zoom near the wrap Debug PBMap\Position\x ;Cross-multiply to get the new center PBMap\Position\x = (OldPx * MouseX) / OldMx @@ -1348,7 +1346,7 @@ CompilerIf #PB_Compiler_IsMainFile PBMap::SetCallBackMainPointer(@MainPointer()) ;To change the Main Pointer PBMap::SetCallBackLocation(@UpdateLocation()) PBMap::SetLocation(-36.81148, 175.08634,12) -; PBMap::SetLocation(0, 0) + ;PBMap::SetLocation(0, 0) PBMap::SetMapServer("http://t1.openseamap.org/seamark/") ;add a special osm overlay map PBMAP::SetMapScaleUnit(PBMAP::#SCALE_NAUTICAL) PBMap::AddMarker(49.0446828398, 2.0349812508, -1, @MyMarker()) @@ -1388,8 +1386,8 @@ CompilerIf #PB_Compiler_IsMainFile CompilerEndIf ; IDE Options = PureBasic 5.50 (Windows - x64) -; CursorPosition = 413 -; FirstLine = 467 +; CursorPosition = 1091 +; FirstLine = 1070 ; Folding = ---------- ; EnableThread ; EnableXP From 4e48cda38a4d3e55eeade13e4bc063eef3160875 Mon Sep 17 00:00:00 2001 From: djes Date: Fri, 2 Sep 2016 15:42:38 +0200 Subject: [PATCH 36/62] bug hunt --- PBMap.pb | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/PBMap.pb b/PBMap.pb index c6cdef0..6fafee5 100644 --- a/PBMap.pb +++ b/PBMap.pb @@ -421,16 +421,16 @@ Module PBMap Protected px.d = Pos\x ;check the x boundaries of the map to adjust the position (coz of the longitude wrapping) If dpx - px > tilemax / 2 - Debug "c1" + ;Debug "c1" *Pixel\x = cx + (px - dpx + tilemax) * PBMap\TileSize ElseIf px - dpx > tilemax / 2 - Debug "c2" + ;Debug "c2" *Pixel\x = cx + (px - dpx - tilemax) * PBMap\TileSize ElseIf px - dpx < 0 - Debug "c3" + ;Debug "c3" *Pixel\x = cx - (dpx - px) * PBMap\TileSize Else - Debug "c0" + ;Debug "c0" *Pixel\x = cx + (px - dpx) * PBMap\TileSize EndIf *Pixel\y = PBMap\Drawing\CenterY + (Pos\y - PBMap\Drawing\Position\y) * PBMap\TileSize @@ -756,7 +756,7 @@ Module PBMap MovePathCursor(x,y) DrawVectorText(StrD(Scale,3)+sunit) MovePathCursor(x,y+12) - AddPathLine(x+128,y+10) + AddPathLine(x+128,y+12) StrokePath(1) EndProcedure @@ -768,10 +768,10 @@ Module PBMap ty = Int(*Drawing\Position\y) nx = *Drawing\CenterX / PBMap\TileSize ;How many tiles around the point ny = *Drawing\CenterY / PBMap\TileSize - *Drawing\Bounds\NorthWest\x = tx-nx-1 - *Drawing\Bounds\NorthWest\y = ty-ny-1 - *Drawing\Bounds\SouthEast\x = tx+nx+1 - *Drawing\Bounds\SouthEast\y = ty+ny+1 + *Drawing\Bounds\NorthWest\x = tx-nx-1 + *Drawing\Bounds\NorthWest\y = ty-ny-1 + *Drawing\Bounds\SouthEast\x = tx+nx+2 + *Drawing\Bounds\SouthEast\y = ty+ny+2 ; Debug "------------------" XY2LatLon(*Drawing\Bounds\NorthWest, @Degrees1) XY2LatLon(*Drawing\Bounds\SouthEast, @Degrees2) @@ -922,7 +922,7 @@ Module PBMap ;-*** Main drawing Procedure Drawing() Protected *Drawing.DrawingParameters = @PBMap\Drawing - Protected Px.d, Py.d,a + Protected Px.d, Py.d,a, ts = PBMap\TileSize PBMap\Dirty = #False PBMap\Redraw = #False ;Precalc some values @@ -930,8 +930,8 @@ Module PBMap *Drawing\CenterY = GadgetHeight(PBMap\Gadget) / 2 ;Pixel shift, aka position in the tile Px = *Drawing\Position\x : Py = *Drawing\Position\y - *Drawing\DeltaX = Px * PBMap\TileSize - (Int(Px) * PBMap\TileSize) ;Don't forget the Int() ! - *Drawing\DeltaY = Py * PBMap\TileSize - (Int(Py) * PBMap\TileSize) + *Drawing\DeltaX = Px * ts - (Int(Px) * ts) ;Don't forget the Int() ! + *Drawing\DeltaY = Py * ts - (Int(Py) * ts) *Drawing\TargetLocation\Latitude = PBMap\TargetLocation\Latitude *Drawing\TargetLocation\Longitude = PBMap\TargetLocation\Longitude ;Main drawing stuff @@ -1386,8 +1386,8 @@ CompilerIf #PB_Compiler_IsMainFile CompilerEndIf ; IDE Options = PureBasic 5.50 (Windows - x64) -; CursorPosition = 1091 -; FirstLine = 1070 +; CursorPosition = 427 +; FirstLine = 410 ; Folding = ---------- ; EnableThread ; EnableXP From 3a889a9bdd255ce54e5fbca3249113e91acd9543 Mon Sep 17 00:00:00 2001 From: djes Date: Fri, 2 Sep 2016 17:23:11 +0200 Subject: [PATCH 37/62] wip --- PBMap.pb | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/PBMap.pb b/PBMap.pb index 6fafee5..6d1960f 100644 --- a/PBMap.pb +++ b/PBMap.pb @@ -1047,7 +1047,7 @@ Module PBMap EndSelect If PBMap\Zoom > PBMap\ZoomMax : PBMap\Zoom = PBMap\ZoomMax : EndIf If PBMap\Zoom < PBMap\ZoomMin : PBMap\Zoom = PBMap\ZoomMin : EndIf - LatLon2XY(@PBMap\TargetLocation, @PBMap\Drawing) + LatLon2XY(@PBMap\TargetLocation, @PBMap\Drawing\Position) ;Convert X, Y in tile.decimal into real pixels PBMap\Position\X = PBMap\Drawing\Position\x * PBMap\TileSize PBMap\Position\Y = PBMap\Drawing\Position\y * PBMap\TileSize @@ -1077,6 +1077,7 @@ Module PBMap Procedure SetZoomOnPosition(x, y, zoom) Protected MouseX.d, MouseY.d Protected OldPx.d, OldPy.d, OldMx.d, OldMy.d + Protected MapWidth = Pow(2, PBMap\Zoom) * PBMap\TileSize ;Fast and dirty code OldPx = PBMap\Position\x : OldPy = PBMap\Position\y OldMx = OldPx + GadgetWidth(PBMap\Gadget) / 2 - x @@ -1085,11 +1086,15 @@ Module PBMap If PBMap\Zoom > PBMap\ZoomMax : PBMap\Zoom = PBMap\ZoomMax : EndIf If PBMap\Zoom < PBMap\ZoomMin : PBMap\Zoom = PBMap\ZoomMin : EndIf ;Centered Zoom - LatLon2XY(@PBMap\TargetLocation, @PBMap\Drawing) + LatLon2XY(@PBMap\TargetLocation, @PBMap\Drawing\Position) ;Convert X, Y in tile.decimal into real pixels MouseX = PBMap\Drawing\Position\x * PBMap\TileSize + GadgetWidth(PBMap\Gadget) / 2 - x - MouseY = PBMap\Drawing\Position\y * PBMap\TileSize + GadgetHeight(PBMap\Gadget) / 2 - y + MouseY = PBMap\Drawing\Position\y * PBMap\TileSize + GadgetHeight(PBMap\Gadget) / 2 - y + If MouseX > MapWidth + Debug "kaboum" + EndIf Debug "------" ;TODO bug when zoom near the wrap + Debug "Mx : " +StrD(MouseX) Debug PBMap\Position\x ;Cross-multiply to get the new center PBMap\Position\x = (OldPx * MouseX) / OldMx @@ -1386,8 +1391,8 @@ CompilerIf #PB_Compiler_IsMainFile CompilerEndIf ; IDE Options = PureBasic 5.50 (Windows - x64) -; CursorPosition = 427 -; FirstLine = 410 +; CursorPosition = 1094 +; FirstLine = 1076 ; Folding = ---------- ; EnableThread ; EnableXP From f5a382ff59eb8fde296f22a682e0c8c8f0f15156 Mon Sep 17 00:00:00 2001 From: djes Date: Mon, 5 Sep 2016 16:42:00 +0200 Subject: [PATCH 38/62] wip --- PBMap.pb | 209 ++++++++++++++++++++++++++++++------------------------- 1 file changed, 115 insertions(+), 94 deletions(-) diff --git a/PBMap.pb b/PBMap.pb index 6d1960f..e511b9d 100644 --- a/PBMap.pb +++ b/PBMap.pb @@ -60,12 +60,12 @@ Module PBMap EnableExplicit - Structure Location + Structure GeographicCoordinates Longitude.d Latitude.d EndStructure - Structure Position + Structure Coordinates x.d y.d EndStructure @@ -77,7 +77,7 @@ Module PBMap ;- Tile Structure Structure Tile - Position.Position + Position.Coordinates PBMapTileX.i PBMapTileY.i PBMapZoom.i @@ -90,18 +90,18 @@ Module PBMap EndStructure Structure TileBounds - NorthWest.Position - SouthEast.Position + NorthWest.Coordinates + SouthEast.Coordinates EndStructure Structure DrawingParameters - Position.Position + TilePosition.Coordinates Bounds.TileBounds Canvas.i PBMapTileX.i PBMapTileY.i PBMapZoom.i - TargetLocation.Location + TargetLocation.GeographicCoordinates CenterX.i CenterY.i DeltaX.i @@ -128,7 +128,7 @@ Module PBMap EndStructure Structure Marker - Location.Location ; Marker latitude and longitude + Location.GeographicCoordinates ; Marker latitude and longitude color.l ; Marker color CallBackPointer.i ; @Procedure(X.i, Y.i) to DrawPointer (you must use VectorDrawing lib) EndStructure @@ -144,13 +144,13 @@ Module PBMap Gadget.i ; Canvas Gadget Id Font.i ; Font to uses when write on the map Timer.i - TargetLocation.Location ; Latitude and Longitude from focus point + TargetLocation.GeographicCoordinates ; Latitude and Longitude from focus point Drawing.DrawingParameters ; Drawing parameters based on focus point ; CallBackLocation.i ; @Procedure(latitude.d,lontitude.d) CallBackMainPointer.i ; @Procedure(X.i, Y.i) to DrawPointer (you must use VectorDrawing lib) ; - Position.PixelPosition ; Actual focus point coords in pixels (global) + PixelPosition.PixelPosition ; Actual focus point coords in pixels (global) MoveStartingPoint.PixelPosition ; Start mouse position coords when dragging the map ; Array ServerURL.s(0) ; Web URL ex: http://tile.openstreetmap.org/ @@ -170,7 +170,7 @@ Module PBMap ; MainDrawingThread.i TileThreadMutex.i; ;Mutex to protect resources - List track.Location() ; To display a GPX track + List track.GeographicCoordinates() ; To display a GPX track List Marker.Marker() ; To diplay marker EditMarkerIndex.l @@ -388,8 +388,8 @@ Module PBMap ;*** Converts coords to tile.decimal ;Warning, structures used in parameters are not tested - Procedure LatLon2XY(*Location.Location, *Coords.Position) - Protected n.d = Pow(2.0, PBMap\Zoom) + Procedure LatLon2XY(*Location.GeographicCoordinates, *Coords.Coordinates, Zoom) + Protected n.d = Pow(2.0, Zoom) Protected LatRad.d = Radian(*Location\Latitude) *Coords\x = n * (Mod( *Location\Longitude + 180.0, 360) / 360.0 ) *Coords\y = n * ( 1.0 - Log(Tan(LatRad) + (1.0/Cos(LatRad))) / #PI ) / 2.0 @@ -399,8 +399,8 @@ Module PBMap ;*** Converts tile.decimal to coords ;Warning, structures used in parameters are not tested - Procedure XY2LatLon(*Coords.Position, *Location.Location) - Protected n.d = Pow(2.0, PBMap\Zoom) + Procedure XY2LatLon(*Coords.Coordinates, *Location.GeographicCoordinates, Zoom) + Protected n.d = Pow(2.0, Zoom) Protected LatitudeRad.d ;Ensures the longitude to be in the range [-180;180[ *Location\Longitude = Mod(Mod(*Coords\x / n * 360.0, 360.0) + 360.0, 360.0) - 180 @@ -413,11 +413,11 @@ Module PBMap *Location\Latitude = Degree(LatitudeRad) EndProcedure - Procedure LatLon2Pixel(*Location.Location, *Pixel.PixelPosition) - Protected Pos.Position - Protected tilemax = Pow(2.0, PBMap\Zoom) - Protected cx.d = PBMap\Drawing\CenterX, dpx.d = PBMap\Drawing\Position\x - LatLon2XY(*Location, @Pos) + Procedure LatLon2Pixel(*Location.GeographicCoordinates, *Pixel.PixelPosition, Zoom) + Protected Pos.Coordinates + Protected tilemax = Pow(2.0, Zoom) + Protected cx.d = PBMap\Drawing\CenterX, dpx.d = PBMap\Drawing\TilePosition\x + LatLon2XY(*Location, @Pos, Zoom) Protected px.d = Pos\x ;check the x boundaries of the map to adjust the position (coz of the longitude wrapping) If dpx - px > tilemax / 2 @@ -433,14 +433,14 @@ Module PBMap ;Debug "c0" *Pixel\x = cx + (px - dpx) * PBMap\TileSize EndIf - *Pixel\y = PBMap\Drawing\CenterY + (Pos\y - PBMap\Drawing\Position\y) * PBMap\TileSize + *Pixel\y = PBMap\Drawing\CenterY + (Pos\y - PBMap\Drawing\TilePosition\y) * PBMap\TileSize ;Debug "Longitude : " + StrD(*Location\Longitude) + " ; Pos : " + StrD(Pos\x) + " ; Drawing pos : " + StrD(PBMap\Drawing\Position\x) + "/" + Str(tilemax) + ; " ; XY : " + Str(*Pixel\x) + "," + Str(*Pixel\y) EndProcedure ; HaversineAlgorithm ; http://andrew.hedges.name/experiments/haversine/ - Procedure.d HaversineInKM(*posA.Location, *posB.Location) + Procedure.d HaversineInKM(*posA.GeographicCoordinates, *posB.GeographicCoordinates) Protected eQuatorialEarthRadius.d = 6378.1370;6372.795477598; Protected dlong.d = (*posB\Longitude - *posA\Longitude); Protected dlat.d = (*posB\Latitude - *posA\Latitude) ; @@ -452,13 +452,13 @@ Module PBMap ProcedureReturn distance ; EndProcedure - Procedure.d HaversineInM(*posA.Location, *posB.Location) + Procedure.d HaversineInM(*posA.GeographicCoordinates, *posB.GeographicCoordinates) ProcedureReturn (1000 * HaversineInKM(@*posA,@*posB)); EndProcedure - Procedure GetPixelCoordFromLocation(*Location.Location, *Pixel.PixelPosition) ; TODO to Optimize - Protected mapWidth.l = Pow(2, PBMap\Zoom + 8) - Protected mapHeight.l = Pow(2, PBMap\Zoom + 8) + Procedure GetPixelCoordFromLocation(*Location.GeographicCoordinates, *Pixel.PixelPosition, Zoom) ; TODO to Optimize + Protected mapWidth.l = Pow(2, Zoom + 8) + Protected mapHeight.l = Pow(2, Zoom + 8) Protected x1.l,y1.l ; get x value x1 = (*Location\Longitude+180)*(mapWidth/360) @@ -654,8 +654,8 @@ Module PBMap Procedure DrawTiles(*Drawing.DrawingParameters, Layer.i, alpha.i=255) ;DisableDebugger Protected x.i, y.i,kq.q - Protected tx = Int(*Drawing\Position\x) ;Don't forget the Int() ! - Protected ty = Int(*Drawing\Position\y) + Protected tx = Int(*Drawing\TilePosition\x) ;Don't forget the Int() ! + Protected ty = Int(*Drawing\TilePosition\y) Protected nx = *Drawing\CenterX / PBMap\TileSize ;How many tiles around the point Protected ny = *Drawing\CenterY / PBMap\TileSize Protected px, py, img, tilex,tiley, key.s, CacheFile.s @@ -760,12 +760,12 @@ Module PBMap StrokePath(1) EndProcedure - Procedure DrawDegrees(*Drawing.DrawingParameters,alpha=192) + Procedure DrawDegrees(*Drawing.DrawingParameters, alpha=192) Protected tx, ty, nx,ny,nx1,ny1,x,y,n,cx,dperpixel.d - Protected pos1.PixelPosition,pos2.PixelPosition,Degrees1.Location,degrees2.Location + Protected pos1.PixelPosition,pos2.PixelPosition,Degrees1.GeographicCoordinates,degrees2.GeographicCoordinates Protected realx - tx = Int(*Drawing\Position\x) - ty = Int(*Drawing\Position\y) + tx = Int(*Drawing\TilePosition\x) + ty = Int(*Drawing\TilePosition\y) nx = *Drawing\CenterX / PBMap\TileSize ;How many tiles around the point ny = *Drawing\CenterY / PBMap\TileSize *Drawing\Bounds\NorthWest\x = tx-nx-1 @@ -773,8 +773,8 @@ Module PBMap *Drawing\Bounds\SouthEast\x = tx+nx+2 *Drawing\Bounds\SouthEast\y = ty+ny+2 ; Debug "------------------" - XY2LatLon(*Drawing\Bounds\NorthWest, @Degrees1) - XY2LatLon(*Drawing\Bounds\SouthEast, @Degrees2) + XY2LatLon(*Drawing\Bounds\NorthWest, @Degrees1, PBMap\Zoom) + XY2LatLon(*Drawing\Bounds\SouthEast, @Degrees2, PBMap\Zoom) ;ensure we stay positive for the drawing nx = Mod(Mod(Round(Degrees1\Longitude, #PB_Round_Down)-1, 360) + 360, 360) ny = Round(Degrees1\Latitude, #PB_Round_Up) +1 @@ -785,15 +785,15 @@ Module PBMap Degrees2\Longitude = nx1 Degrees2\Latitude = ny1 ; Debug "NW : " + StrD(Degrees1\Longitude) + " ; NE : " + StrD(Degrees2\Longitude) - LatLon2Pixel(@Degrees1, @pos1) - LatLon2Pixel(@Degrees2, @pos2) + LatLon2Pixel(@Degrees1, @pos1, PBMap\Zoom) + LatLon2Pixel(@Degrees2, @pos2, PBMap\Zoom) VectorFont(FontID(PBMap\Font), 10) VectorSourceColor(RGBA(0, 0, 0, alpha)) ;draw latitudes For y = ny1 To ny Degrees1\Longitude = nx Degrees1\Latitude = y - LatLon2Pixel(@Degrees1, @pos1) + LatLon2Pixel(@Degrees1, @pos1, PBMap\Zoom) MovePathCursor(pos1\x, pos1\y) AddPathLine( pos2\x, pos1\y) MovePathCursor(10, pos1\y) @@ -804,7 +804,7 @@ Module PBMap Repeat Degrees1\Longitude = x Degrees1\Latitude = ny - LatLon2Pixel(@Degrees1, @pos1) + LatLon2Pixel(@Degrees1, @pos1, PBMap\Zoom) MovePathCursor(pos1\x, pos1\y) AddPathLine( pos1\x, pos2\y) MovePathCursor(pos1\x,10) @@ -835,14 +835,14 @@ Module PBMap Procedure DrawTrack(*Drawing.DrawingParameters) Protected Pixel.PixelPosition - Protected Location.Location + Protected Location.GeographicCoordinates Protected km.f, memKm.i If ListSize(PBMap\track())>0 ;Trace Track ForEach PBMap\track() If *Drawing\TargetLocation\Latitude<>0 And *Drawing\TargetLocation\Longitude<>0 ;GetPixelCoordFromLocation(@PBMap\track(),@Pixel) - LatLon2Pixel(@PBMap\track(),@Pixel) + LatLon2Pixel(@PBMap\track(), @Pixel, PBMap\Zoom) If ListIndex(PBMap\track())=0 MovePathCursor(Pixel\X, Pixel\Y) Else @@ -864,7 +864,7 @@ Module PBMap Location\Longitude=PBMap\track()\Longitude EndIf ;GetPixelCoordFromLocation(@PBMap\track(),@Pixel) - LatLon2Pixel(@PBMap\track(),@Pixel) + LatLon2Pixel(@PBMap\track(),@Pixel, PBMap\Zoom) If Int(km)<>memKm memKm=Int(km) If PBMap\Zoom>10 @@ -907,7 +907,7 @@ Module PBMap ForEach PBMap\Marker() If PBMap\Marker()\Location\Latitude <> 0 And PBMap\Marker()\Location\Longitude <> 0 ;GetPixelCoordFromLocation(PBMap\Marker()\Location, @Pixel) - LatLon2Pixel(PBMap\Marker()\Location, @Pixel) + LatLon2Pixel(PBMap\Marker()\Location, @Pixel, PBMap\Zoom) If Pixel\X >= 0 And Pixel\Y >= 0 And Pixel\X < GadgetWidth(PBMap\Gadget) And Pixel\Y < GadgetHeight(PBMap\Gadget) ; Only if visible ^_^ If PBMap\Marker()\CallBackPointer > 0 CallFunctionFast(PBMap\Marker()\CallBackPointer, Pixel\X, Pixel\Y) @@ -929,7 +929,7 @@ Module PBMap *Drawing\CenterX = GadgetWidth(PBMap\Gadget) / 2 *Drawing\CenterY = GadgetHeight(PBMap\Gadget) / 2 ;Pixel shift, aka position in the tile - Px = *Drawing\Position\x : Py = *Drawing\Position\y + Px = *Drawing\TilePosition\x : Py = *Drawing\TilePosition\y *Drawing\DeltaX = Px * ts - (Int(Px) * ts) ;Don't forget the Int() ! *Drawing\DeltaY = Py * ts - (Int(Py) * ts) *Drawing\TargetLocation\Latitude = PBMap\TargetLocation\Latitude @@ -971,6 +971,19 @@ Module PBMap ;Drawing() EndProcedure + Procedure.d MouseLongitude() + Protected MouseX.d = (PBMap\PixelPosition\x - GadgetWidth(PBMap\Gadget) / 2 + GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseX)) / PBMap\TileSize + Protected n.d = Pow(2.0, PBMap\Zoom) + ;double mod is to ensure the longitude to be in the range [-180;180[ + ProcedureReturn Mod(Mod(MouseX / n * 360.0, 360.0) + 360.0, 360.0) - 180 + EndProcedure + + Procedure.d MouseLatitude() + Protected MouseY.d = (PBMap\PixelPosition\y - GadgetHeight(PBMap\Gadget) / 2 + GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseY)) / PBMap\TileSize + Protected n.d = Pow(2.0, PBMap\Zoom) + ProcedureReturn Degree(ATan(SinH(#PI * (1.0 - 2.0 * MouseY / n)))) + EndProcedure + Procedure SetLocation(latitude.d, longitude.d, zoom = 15, Mode.i = #PB_Absolute) Select Mode Case #PB_Absolute @@ -984,10 +997,10 @@ Module PBMap EndSelect If PBMap\Zoom > PBMap\ZoomMax : PBMap\Zoom = PBMap\ZoomMax : EndIf If PBMap\Zoom < PBMap\ZoomMin : PBMap\Zoom = PBMap\ZoomMin : EndIf - LatLon2XY(@PBMap\TargetLocation, @PBMap\Drawing) + LatLon2XY(@PBMap\TargetLocation, @PBMap\Drawing, PBMap\Zoom) ;Convert X, Y in tile.decimal into real pixels - PBMap\Position\x = PBMap\Drawing\Position\x * PBMap\TileSize - PBMap\Position\y = PBMap\Drawing\Position\y * PBMap\TileSize + PBMap\PixelPosition\x = PBMap\Drawing\TilePosition\x * PBMap\TileSize + PBMap\PixelPosition\y = PBMap\Drawing\TilePosition\y * PBMap\TileSize PBMap\Drawing\PassNb = 1 PBMap\Redraw = #True ;Drawing() @@ -1047,10 +1060,10 @@ Module PBMap EndSelect If PBMap\Zoom > PBMap\ZoomMax : PBMap\Zoom = PBMap\ZoomMax : EndIf If PBMap\Zoom < PBMap\ZoomMin : PBMap\Zoom = PBMap\ZoomMin : EndIf - LatLon2XY(@PBMap\TargetLocation, @PBMap\Drawing\Position) + LatLon2XY(@PBMap\TargetLocation, @PBMap\Drawing\TilePosition, PBMap\Zoom) ;Convert X, Y in tile.decimal into real pixels - PBMap\Position\X = PBMap\Drawing\Position\x * PBMap\TileSize - PBMap\Position\Y = PBMap\Drawing\Position\y * PBMap\TileSize + PBMap\PixelPosition\X = PBMap\Drawing\TilePosition\x * PBMap\TileSize + PBMap\PixelPosition\Y = PBMap\Drawing\TilePosition\y * PBMap\TileSize ;First drawing PBMap\Redraw = #True ;Drawing() @@ -1075,35 +1088,46 @@ Module PBMap ;Zoom on x, y position relative to the canvas gadget Procedure SetZoomOnPosition(x, y, zoom) + Debug "----" + Debug MouseLatitude() + Debug MouseLongitude() + Protected MouseX.d, MouseY.d - Protected OldPx.d, OldPy.d, OldMx.d, OldMy.d - Protected MapWidth = Pow(2, PBMap\Zoom) * PBMap\TileSize + Protected OldPx.d, OldPy.d, OldMx.d, OldMy.d, Px.d, Py.d + Protected CenterX = GadgetWidth(PBMap\Gadget) / 2, CenterY = GadgetHeight(PBMap\Gadget) / 2 + ;Fast and dirty code - OldPx = PBMap\Position\x : OldPy = PBMap\Position\y - OldMx = OldPx + GadgetWidth(PBMap\Gadget) / 2 - x - OldMy = OldPy + GadgetHeight(PBMap\Gadget) / 2 - y + OldPx = PBMap\PixelPosition\x : OldPy = PBMap\PixelPosition\y + OldMx = OldPx + CenterX - x + OldMy = OldPy + CenterY - y PBMap\Zoom = PBMap\Zoom + zoom If PBMap\Zoom > PBMap\ZoomMax : PBMap\Zoom = PBMap\ZoomMax : EndIf If PBMap\Zoom < PBMap\ZoomMin : PBMap\Zoom = PBMap\ZoomMin : EndIf + Protected MapWidth = Pow(2, PBMap\Zoom) * PBMap\TileSize + ;Centered Zoom - LatLon2XY(@PBMap\TargetLocation, @PBMap\Drawing\Position) + LatLon2XY(@PBMap\TargetLocation, @PBMap\Drawing\TilePosition, PBMap\Zoom) ;Convert X, Y in tile.decimal into real pixels - MouseX = PBMap\Drawing\Position\x * PBMap\TileSize + GadgetWidth(PBMap\Gadget) / 2 - x - MouseY = PBMap\Drawing\Position\y * PBMap\TileSize + GadgetHeight(PBMap\Gadget) / 2 - y - If MouseX > MapWidth - Debug "kaboum" - EndIf - Debug "------" ;TODO bug when zoom near the wrap - Debug "Mx : " +StrD(MouseX) - Debug PBMap\Position\x - ;Cross-multiply to get the new center - PBMap\Position\x = (OldPx * MouseX) / OldMx - PBMap\Position\y = (OldPy * MouseY) / OldMy - ;PBMap tile position in tile.decimal - PBMap\Drawing\Position\x = PBMap\Position\x / PBMap\TileSize - PBMap\Drawing\Position\y = PBMap\Position\y / PBMap\TileSize - PBMap\Drawing\PassNb = 1 - XY2LatLon(@PBMap\Drawing, @PBMap\TargetLocation) +; Px = PBMap\Drawing\TilePosition\x * PBMap\TileSize +; Py = PBMap\Drawing\TilePosition\y * PBMap\TileSize +; MouseX = Px + CenterX - x +; MouseY = Py + CenterY - y +; +; If MouseX > MapWidth +; Debug "kaboum" +; EndIf +; ; Debug "------" ;TODO bug when zoom near the wrap +; ; Debug "Mx : " +StrD(MouseX) +; ; Debug PBMap\TilePosition\x +; ;Cross-multiply to get the new center +; PBMap\PixelPosition\x = (OldPx * MouseX) / OldMx +; PBMap\PixelPosition\y = (OldPy * MouseY) / OldMy +; ;PBMap tile position in tile.decimal +; PBMap\Drawing\TilePosition\x = PBMap\PixelPosition\x / PBMap\TileSize +; PBMap\Drawing\TilePosition\y = PBMap\PixelPosition\y / PBMap\TileSize +; PBMap\Drawing\PassNb = 1 + XY2LatLon(@PBMap\Drawing, @PBMap\TargetLocation, PBMap\Zoom) + LatLon2Pixel(@PBMap\TargetLocation, @PBMap\PixelPosition, PBMap\Zoom) ;Start drawing PBMap\Redraw = #True ;Drawing() @@ -1131,7 +1155,7 @@ Module PBMap Procedure CanvasEvents() Protected MouseX.i, MouseY.i - Protected Marker.Position, *Tile.Tile, MapWidth = Pow(2, PBMap\Zoom) * PBMap\TileSize + Protected Marker.Coordinates, *Tile.Tile, MapWidth = Pow(2, PBMap\Zoom) * PBMap\TileSize PBMap\Moving = #False Select EventType() Case #PB_EventType_MouseWheel @@ -1141,18 +1165,18 @@ Module PBMap Else ;Absolute zoom (centered on the center of the map) SetZoom(GetGadgetAttribute(PBMap\Gadget,#PB_Canvas_WheelDelta), #PB_Relative) - EndIf + EndIf Case #PB_EventType_LeftButtonDown ;Check if we select a marker - MouseX = PBMap\Position\x - GadgetWidth(PBMap\Gadget) / 2 + GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseX) - MouseY = PBMap\Position\y - GadgetHeight(PBMap\Gadget) / 2 + GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseY) + MouseX = PBMap\PixelPosition\x - GadgetWidth(PBMap\Gadget) / 2 + GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseX) + MouseY = PBMap\PixelPosition\y - GadgetHeight(PBMap\Gadget) / 2 + GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseY) ;Clip MouseX to the map range (in X, the map is infinite) MouseX = Mod(Mod(MouseX, MapWidth) + MapWidth, MapWidth) ForEach PBMap\Marker() - LatLon2XY(@PBMap\Marker()\Location, @Marker) + LatLon2XY(@PBMap\Marker()\Location, @Marker, PBMap\Zoom) Marker\x * PBMap\TileSize Marker\y * PBMap\TileSize -; Debug "Pos : " + StrD(Marker\x) + " ; Drawing pos : " + StrD(PBMap\Drawing\Position\x) + ;Debug "Pos : " + StrD(Marker\x) + " ; Drawing pos : " + StrD(PBMap\Drawing\TilePosition\x) If Distance(Marker\x, Marker\y, MouseX, MouseY) < 8 PBMap\EditMarkerIndex = ListIndex(PBMap\Marker()) Break @@ -1169,25 +1193,22 @@ Module PBMap ;Move marker If PBMap\EditMarkerIndex > -1 SelectElement(PBMap\Marker(), PBMap\EditMarkerIndex) - LatLon2XY(@PBMap\Marker()\Location, @Marker) + LatLon2XY(@PBMap\Marker()\Location, @Marker, PBMap\Zoom) Marker\x + MouseX / PBMap\TileSize Marker\y + MouseY / PBMap\TileSize - XY2LatLon(@Marker, @PBMap\Marker()\Location) + XY2LatLon(@Marker, @PBMap\Marker()\Location, PBMap\Zoom) Else ;New move values ;PBMap\Position\x - MouseX ;Ensures that pixel position stay in the range [0..2^Zoom*PBMap\TileSize[ coz of the wrapping of the map - PBMap\Position\x = PBMap\Position\x - MouseX - If PBMap\Position\x < 0 - PBMap\Position\x + Pow(2, PBMap\Zoom) * PBMap\TileSize - EndIf - PBMap\Position\x = Mod(PBMap\Position\x, Pow(2, PBMap\Zoom) * PBMap\TileSize) - PBMap\Position\y - MouseY + PBMap\PixelPosition\x - MouseX + PBMap\PixelPosition\x = Mod(Mod(PBMap\PixelPosition\x, MapWidth) + MapWidth, MapWidth) + PBMap\PixelPosition\y - MouseY ;PBMap tile position in tile.decimal - PBMap\Drawing\Position\x = PBMap\Position\x / PBMap\TileSize - PBMap\Drawing\Position\y = PBMap\Position\y / PBMap\TileSize + PBMap\Drawing\TilePosition\x = PBMap\PixelPosition\x / PBMap\TileSize + PBMap\Drawing\TilePosition\y = PBMap\PixelPosition\y / PBMap\TileSize PBMap\Drawing\PassNb = 1 - XY2LatLon(@PBMap\Drawing, @PBMap\TargetLocation) + XY2LatLon(@PBMap\Drawing, @PBMap\TargetLocation, PBMap\Zoom) ;If CallBackLocation send Location to function If PBMap\CallBackLocation > 0 CallFunctionFast(PBMap\CallBackLocation, @PBMap\TargetLocation) @@ -1202,10 +1223,10 @@ Module PBMap If PBMap\EditMarkerIndex > -1 PBMap\EditMarkerIndex = -1 Else ;Move Map - PBMap\Drawing\Position\x = PBMap\Position\x / PBMap\TileSize - PBMap\Drawing\Position\y = PBMap\Position\y / PBMap\TileSize - MyDebug("PBMap\Drawing\Position\x " + Str(PBMap\Drawing\Position\x) + " ; PBMap\Drawing\Position\y " + Str(PBMap\Drawing\Position\y) ) - XY2LatLon(@PBMap\Drawing, @PBMap\TargetLocation) + PBMap\Drawing\TilePosition\x = PBMap\PixelPosition\x / PBMap\TileSize + PBMap\Drawing\TilePosition\y = PBMap\PixelPosition\y / PBMap\TileSize + MyDebug("PBMap\Drawing\TilePosition\x " + Str(PBMap\Drawing\TilePosition\x) + " ; PBMap\Drawing\TilePosition\y " + Str(PBMap\Drawing\TilePosition\y) ) + XY2LatLon(@PBMap\Drawing, @PBMap\TargetLocation, PBMap\Zoom) PBMap\Redraw = #True EndIf Case #PB_MAP_REDRAW @@ -1391,8 +1412,8 @@ CompilerIf #PB_Compiler_IsMainFile CompilerEndIf ; IDE Options = PureBasic 5.50 (Windows - x64) -; CursorPosition = 1094 -; FirstLine = 1076 +; CursorPosition = 343 +; FirstLine = 314 ; Folding = ---------- ; EnableThread ; EnableXP From 17f999f11c58fd6754c15314bcf917d8dff474bd Mon Sep 17 00:00:00 2001 From: djes Date: Mon, 5 Sep 2016 17:06:54 +0200 Subject: [PATCH 39/62] wip --- PBMap.pb | 49 +++++++++++++++++++++++++++++++------------------ 1 file changed, 31 insertions(+), 18 deletions(-) diff --git a/PBMap.pb b/PBMap.pb index e511b9d..8e9a313 100644 --- a/PBMap.pb +++ b/PBMap.pb @@ -388,7 +388,7 @@ Module PBMap ;*** Converts coords to tile.decimal ;Warning, structures used in parameters are not tested - Procedure LatLon2XY(*Location.GeographicCoordinates, *Coords.Coordinates, Zoom) + Procedure LatLon2TileXY(*Location.GeographicCoordinates, *Coords.Coordinates, Zoom) Protected n.d = Pow(2.0, Zoom) Protected LatRad.d = Radian(*Location\Latitude) *Coords\x = n * (Mod( *Location\Longitude + 180.0, 360) / 360.0 ) @@ -399,7 +399,7 @@ Module PBMap ;*** Converts tile.decimal to coords ;Warning, structures used in parameters are not tested - Procedure XY2LatLon(*Coords.Coordinates, *Location.GeographicCoordinates, Zoom) + Procedure TileXY2LatLon(*Coords.Coordinates, *Location.GeographicCoordinates, Zoom) Protected n.d = Pow(2.0, Zoom) Protected LatitudeRad.d ;Ensures the longitude to be in the range [-180;180[ @@ -417,7 +417,7 @@ Module PBMap Protected Pos.Coordinates Protected tilemax = Pow(2.0, Zoom) Protected cx.d = PBMap\Drawing\CenterX, dpx.d = PBMap\Drawing\TilePosition\x - LatLon2XY(*Location, @Pos, Zoom) + LatLon2TileXY(*Location, @Pos, Zoom) Protected px.d = Pos\x ;check the x boundaries of the map to adjust the position (coz of the longitude wrapping) If dpx - px > tilemax / 2 @@ -773,8 +773,8 @@ Module PBMap *Drawing\Bounds\SouthEast\x = tx+nx+2 *Drawing\Bounds\SouthEast\y = ty+ny+2 ; Debug "------------------" - XY2LatLon(*Drawing\Bounds\NorthWest, @Degrees1, PBMap\Zoom) - XY2LatLon(*Drawing\Bounds\SouthEast, @Degrees2, PBMap\Zoom) + TileXY2LatLon(*Drawing\Bounds\NorthWest, @Degrees1, PBMap\Zoom) + TileXY2LatLon(*Drawing\Bounds\SouthEast, @Degrees2, PBMap\Zoom) ;ensure we stay positive for the drawing nx = Mod(Mod(Round(Degrees1\Longitude, #PB_Round_Down)-1, 360) + 360, 360) ny = Round(Degrees1\Latitude, #PB_Round_Up) +1 @@ -971,6 +971,19 @@ Module PBMap ;Drawing() EndProcedure + Procedure.d Longitude(x) + Protected NewX.d = (PBMap\PixelPosition\x - GadgetWidth(PBMap\Gadget) / 2 + x) / PBMap\TileSize + Protected n.d = Pow(2.0, PBMap\Zoom) + ;double mod is to ensure the longitude to be in the range [-180;180[ + ProcedureReturn Mod(Mod(NewX / n * 360.0, 360.0) + 360.0, 360.0) - 180 + EndProcedure + + Procedure.d Latitude(y) + Protected NewY.d = (PBMap\PixelPosition\y - GadgetHeight(PBMap\Gadget) / 2 + y) / PBMap\TileSize + Protected n.d = Pow(2.0, PBMap\Zoom) + ProcedureReturn Degree(ATan(SinH(#PI * (1.0 - 2.0 * NewY / n)))) + EndProcedure + Procedure.d MouseLongitude() Protected MouseX.d = (PBMap\PixelPosition\x - GadgetWidth(PBMap\Gadget) / 2 + GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseX)) / PBMap\TileSize Protected n.d = Pow(2.0, PBMap\Zoom) @@ -997,7 +1010,7 @@ Module PBMap EndSelect If PBMap\Zoom > PBMap\ZoomMax : PBMap\Zoom = PBMap\ZoomMax : EndIf If PBMap\Zoom < PBMap\ZoomMin : PBMap\Zoom = PBMap\ZoomMin : EndIf - LatLon2XY(@PBMap\TargetLocation, @PBMap\Drawing, PBMap\Zoom) + LatLon2TileXY(@PBMap\TargetLocation, @PBMap\Drawing, PBMap\Zoom) ;Convert X, Y in tile.decimal into real pixels PBMap\PixelPosition\x = PBMap\Drawing\TilePosition\x * PBMap\TileSize PBMap\PixelPosition\y = PBMap\Drawing\TilePosition\y * PBMap\TileSize @@ -1060,7 +1073,7 @@ Module PBMap EndSelect If PBMap\Zoom > PBMap\ZoomMax : PBMap\Zoom = PBMap\ZoomMax : EndIf If PBMap\Zoom < PBMap\ZoomMin : PBMap\Zoom = PBMap\ZoomMin : EndIf - LatLon2XY(@PBMap\TargetLocation, @PBMap\Drawing\TilePosition, PBMap\Zoom) + LatLon2TileXY(@PBMap\TargetLocation, @PBMap\Drawing\TilePosition, PBMap\Zoom) ;Convert X, Y in tile.decimal into real pixels PBMap\PixelPosition\X = PBMap\Drawing\TilePosition\x * PBMap\TileSize PBMap\PixelPosition\Y = PBMap\Drawing\TilePosition\y * PBMap\TileSize @@ -1089,8 +1102,8 @@ Module PBMap ;Zoom on x, y position relative to the canvas gadget Procedure SetZoomOnPosition(x, y, zoom) Debug "----" - Debug MouseLatitude() - Debug MouseLongitude() + Debug Latitude(x) + Debug Longitude(y) Protected MouseX.d, MouseY.d Protected OldPx.d, OldPy.d, OldMx.d, OldMy.d, Px.d, Py.d @@ -1106,7 +1119,7 @@ Module PBMap Protected MapWidth = Pow(2, PBMap\Zoom) * PBMap\TileSize ;Centered Zoom - LatLon2XY(@PBMap\TargetLocation, @PBMap\Drawing\TilePosition, PBMap\Zoom) + LatLon2TileXY(@PBMap\TargetLocation, @PBMap\Drawing\TilePosition, PBMap\Zoom) ;Convert X, Y in tile.decimal into real pixels ; Px = PBMap\Drawing\TilePosition\x * PBMap\TileSize ; Py = PBMap\Drawing\TilePosition\y * PBMap\TileSize @@ -1126,7 +1139,7 @@ Module PBMap ; PBMap\Drawing\TilePosition\x = PBMap\PixelPosition\x / PBMap\TileSize ; PBMap\Drawing\TilePosition\y = PBMap\PixelPosition\y / PBMap\TileSize ; PBMap\Drawing\PassNb = 1 - XY2LatLon(@PBMap\Drawing, @PBMap\TargetLocation, PBMap\Zoom) + ;TileXY2LatLon(@PBMap\Drawing\TilePosition, @PBMap\TargetLocation, PBMap\Zoom) LatLon2Pixel(@PBMap\TargetLocation, @PBMap\PixelPosition, PBMap\Zoom) ;Start drawing PBMap\Redraw = #True @@ -1173,7 +1186,7 @@ Module PBMap ;Clip MouseX to the map range (in X, the map is infinite) MouseX = Mod(Mod(MouseX, MapWidth) + MapWidth, MapWidth) ForEach PBMap\Marker() - LatLon2XY(@PBMap\Marker()\Location, @Marker, PBMap\Zoom) + LatLon2TileXY(@PBMap\Marker()\Location, @Marker, PBMap\Zoom) Marker\x * PBMap\TileSize Marker\y * PBMap\TileSize ;Debug "Pos : " + StrD(Marker\x) + " ; Drawing pos : " + StrD(PBMap\Drawing\TilePosition\x) @@ -1193,10 +1206,10 @@ Module PBMap ;Move marker If PBMap\EditMarkerIndex > -1 SelectElement(PBMap\Marker(), PBMap\EditMarkerIndex) - LatLon2XY(@PBMap\Marker()\Location, @Marker, PBMap\Zoom) + LatLon2TileXY(@PBMap\Marker()\Location, @Marker, PBMap\Zoom) Marker\x + MouseX / PBMap\TileSize Marker\y + MouseY / PBMap\TileSize - XY2LatLon(@Marker, @PBMap\Marker()\Location, PBMap\Zoom) + TileXY2LatLon(@Marker, @PBMap\Marker()\Location, PBMap\Zoom) Else ;New move values ;PBMap\Position\x - MouseX @@ -1208,7 +1221,7 @@ Module PBMap PBMap\Drawing\TilePosition\x = PBMap\PixelPosition\x / PBMap\TileSize PBMap\Drawing\TilePosition\y = PBMap\PixelPosition\y / PBMap\TileSize PBMap\Drawing\PassNb = 1 - XY2LatLon(@PBMap\Drawing, @PBMap\TargetLocation, PBMap\Zoom) + TileXY2LatLon(@PBMap\Drawing, @PBMap\TargetLocation, PBMap\Zoom) ;If CallBackLocation send Location to function If PBMap\CallBackLocation > 0 CallFunctionFast(PBMap\CallBackLocation, @PBMap\TargetLocation) @@ -1226,7 +1239,7 @@ Module PBMap PBMap\Drawing\TilePosition\x = PBMap\PixelPosition\x / PBMap\TileSize PBMap\Drawing\TilePosition\y = PBMap\PixelPosition\y / PBMap\TileSize MyDebug("PBMap\Drawing\TilePosition\x " + Str(PBMap\Drawing\TilePosition\x) + " ; PBMap\Drawing\TilePosition\y " + Str(PBMap\Drawing\TilePosition\y) ) - XY2LatLon(@PBMap\Drawing, @PBMap\TargetLocation, PBMap\Zoom) + TileXY2LatLon(@PBMap\Drawing, @PBMap\TargetLocation, PBMap\Zoom) PBMap\Redraw = #True EndIf Case #PB_MAP_REDRAW @@ -1412,8 +1425,8 @@ CompilerIf #PB_Compiler_IsMainFile CompilerEndIf ; IDE Options = PureBasic 5.50 (Windows - x64) -; CursorPosition = 343 -; FirstLine = 314 +; CursorPosition = 430 +; FirstLine = 415 ; Folding = ---------- ; EnableThread ; EnableXP From b2b6a48d8908fce07ca3d1a82bb93fd61c8d7e35 Mon Sep 17 00:00:00 2001 From: djes Date: Tue, 6 Sep 2016 12:46:50 +0200 Subject: [PATCH 40/62] Cleanup --- PBMap.pb | 212 +++++++++++++++++++++++++++---------------------------- 1 file changed, 105 insertions(+), 107 deletions(-) diff --git a/PBMap.pb b/PBMap.pb index 8e9a313..40f910b 100644 --- a/PBMap.pb +++ b/PBMap.pb @@ -65,16 +65,16 @@ Module PBMap Latitude.d EndStructure + Structure PixelCoordinates + x.i + y.i + EndStructure + Structure Coordinates x.d y.d EndStructure - Structure PixelPosition - x.i - y.i - EndStructure - ;- Tile Structure Structure Tile Position.Coordinates @@ -95,13 +95,13 @@ Module PBMap EndStructure Structure DrawingParameters - TilePosition.Coordinates + TileCoordinates.Coordinates Bounds.TileBounds Canvas.i PBMapTileX.i PBMapTileY.i PBMapZoom.i - TargetLocation.GeographicCoordinates + GeographicCoordinates.GeographicCoordinates CenterX.i CenterY.i DeltaX.i @@ -128,7 +128,7 @@ Module PBMap EndStructure Structure Marker - Location.GeographicCoordinates ; Marker latitude and longitude + GeographicCoordinates.GeographicCoordinates ; Marker latitude and longitude color.l ; Marker color CallBackPointer.i ; @Procedure(X.i, Y.i) to DrawPointer (you must use VectorDrawing lib) EndStructure @@ -144,14 +144,14 @@ Module PBMap Gadget.i ; Canvas Gadget Id Font.i ; Font to uses when write on the map Timer.i - TargetLocation.GeographicCoordinates ; Latitude and Longitude from focus point + GeographicCoordinates.GeographicCoordinates ; Latitude and Longitude from focus point Drawing.DrawingParameters ; Drawing parameters based on focus point ; CallBackLocation.i ; @Procedure(latitude.d,lontitude.d) CallBackMainPointer.i ; @Procedure(X.i, Y.i) to DrawPointer (you must use VectorDrawing lib) ; - PixelPosition.PixelPosition ; Actual focus point coords in pixels (global) - MoveStartingPoint.PixelPosition ; Start mouse position coords when dragging the map + PixelCoordinates.PixelCoordinates ; Actual focus point coords in pixels (global) + MoveStartingPoint.PixelCoordinates ; Start mouse position coords when dragging the map ; Array ServerURL.s(0) ; Web URL ex: http://tile.openstreetmap.org/ NumberOfMapLayers.i ; The number of map tile layers; @@ -401,22 +401,22 @@ Module PBMap ;Warning, structures used in parameters are not tested Procedure TileXY2LatLon(*Coords.Coordinates, *Location.GeographicCoordinates, Zoom) Protected n.d = Pow(2.0, Zoom) - Protected LatitudeRad.d ;Ensures the longitude to be in the range [-180;180[ *Location\Longitude = Mod(Mod(*Coords\x / n * 360.0, 360.0) + 360.0, 360.0) - 180 -; *Location\Longitude = Mod(*Coords\x / n * 360.0, 360.0) -; If *Location\Longitude < 0 -; *Location\Longitude + 360 -; EndIf -; *Location\Longitude = Mod(*Location\Longitude, 360.0) - 180 - LatitudeRad = ATan(SinH(#PI * (1.0 - 2.0 * *Coords\y / n))) - *Location\Latitude = Degree(LatitudeRad) + *Location\Latitude = Degree(ATan(SinH(#PI * (1.0 - 2.0 * *Coords\y / n)))) EndProcedure - Procedure LatLon2Pixel(*Location.GeographicCoordinates, *Pixel.PixelPosition, Zoom) + Procedure Pixel2LatLon(*Coords.PixelCoordinates, *Location.GeographicCoordinates, Zoom) + Protected n.d = PBMap\TileSize * Pow(2.0, Zoom) + ;Ensures the longitude to be in the range [-180;180[ + *Location\Longitude = Mod(Mod(*Coords\x / n * 360.0, 360.0) + 360.0, 360.0) - 180 + *Location\Latitude = Degree(ATan(SinH(#PI * (1.0 - 2.0 * *Coords\y / n)))) + EndProcedure + + Procedure LatLon2Pixel(*Location.GeographicCoordinates, *Pixel.PixelCoordinates, Zoom) Protected Pos.Coordinates Protected tilemax = Pow(2.0, Zoom) - Protected cx.d = PBMap\Drawing\CenterX, dpx.d = PBMap\Drawing\TilePosition\x + Protected cx.d = PBMap\Drawing\CenterX, dpx.d = PBMap\Drawing\TileCoordinates\x LatLon2TileXY(*Location, @Pos, Zoom) Protected px.d = Pos\x ;check the x boundaries of the map to adjust the position (coz of the longitude wrapping) @@ -433,7 +433,7 @@ Module PBMap ;Debug "c0" *Pixel\x = cx + (px - dpx) * PBMap\TileSize EndIf - *Pixel\y = PBMap\Drawing\CenterY + (Pos\y - PBMap\Drawing\TilePosition\y) * PBMap\TileSize + *Pixel\y = PBMap\Drawing\CenterY + (Pos\y - PBMap\Drawing\TileCoordinates\y) * PBMap\TileSize ;Debug "Longitude : " + StrD(*Location\Longitude) + " ; Pos : " + StrD(Pos\x) + " ; Drawing pos : " + StrD(PBMap\Drawing\Position\x) + "/" + Str(tilemax) + ; " ; XY : " + Str(*Pixel\x) + "," + Str(*Pixel\y) EndProcedure @@ -456,7 +456,7 @@ Module PBMap ProcedureReturn (1000 * HaversineInKM(@*posA,@*posB)); EndProcedure - Procedure GetPixelCoordFromLocation(*Location.GeographicCoordinates, *Pixel.PixelPosition, Zoom) ; TODO to Optimize + Procedure GetPixelCoordFromLocation(*Location.GeographicCoordinates, *Pixel.PixelCoordinates, Zoom) ; TODO to Optimize Protected mapWidth.l = Pow(2, Zoom + 8) Protected mapHeight.l = Pow(2, Zoom + 8) Protected x1.l,y1.l @@ -471,13 +471,13 @@ Module PBMap ; Debug y1 Protected x2.l, y2.l ; get x value - x2 = (PBMap\TargetLocation\Longitude+180)*(mapWidth/360) + x2 = (PBMap\GeographicCoordinates\Longitude+180)*(mapWidth/360) ; convert from degrees To radians - latRad = PBMap\TargetLocation\Latitude*#PI/180; + latRad = PBMap\GeographicCoordinates\Latitude*#PI/180; ; get y value mercN = Log(Tan((#PI/4)+(latRad/2))) y2 = (mapHeight/2)-(mapWidth*mercN/(2*#PI)); -; Debug "targetlocation" +; Debug "GeographicCoordinates" ; Debug x1 ; Debug y1 *Pixel\x=GadgetWidth(PBMap\Gadget)/2 - (x2-x1) @@ -654,8 +654,8 @@ Module PBMap Procedure DrawTiles(*Drawing.DrawingParameters, Layer.i, alpha.i=255) ;DisableDebugger Protected x.i, y.i,kq.q - Protected tx = Int(*Drawing\TilePosition\x) ;Don't forget the Int() ! - Protected ty = Int(*Drawing\TilePosition\y) + Protected tx = Int(*Drawing\TileCoordinates\x) ;Don't forget the Int() ! + Protected ty = Int(*Drawing\TileCoordinates\y) Protected nx = *Drawing\CenterX / PBMap\TileSize ;How many tiles around the point Protected ny = *Drawing\CenterY / PBMap\TileSize Protected px, py, img, tilex,tiley, key.s, CacheFile.s @@ -702,11 +702,11 @@ Module PBMap ; Else ; MaxNbTile=GadgetHeight(PBMap\Gadget)/PBMap\TileSize ; EndIf - ; Protected Scale.d= 40075*Cos(Radian(PBMap\TargetLocation\Latitude))/Pow(2,PBMap\Zoom) + ; Protected Scale.d= 40075*Cos(Radian(PBMap\GeographicCoordinates\Latitude))/Pow(2,PBMap\Zoom) ; Protected Limit.d=Scale*(MaxNbTile)*1.5 ; Debug "Cache cleaning" ; ForEach PBMap\MemCache\Images() - ; Protected Distance.d = HaversineInKM(@PBMap\MemCache\Images()\Location, @PBMap\TargetLocation) + ; Protected Distance.d = HaversineInKM(@PBMap\MemCache\Images()\Location, @PBMap\GeographicCoordinates) ; Debug "Limit:"+StrD(Limit)+" Distance:"+StrD(Distance) ; If Distance>Limit And IsImage(PBMap\MemCache\Images()\nImage) ; LockMutex(PBMap\MemCache\Images()\Mutex) @@ -741,7 +741,7 @@ Module PBMap Procedure DrawScale(*Drawing.DrawingParameters,x,y,alpha=80) ;TODO Add Option and function to display Scale on Map Protected sunit.s - Protected Scale.d= 40075*Cos(Radian(PBMap\TargetLocation\Latitude))/Pow(2,PBMap\Zoom) / 2 + Protected Scale.d= 40075*Cos(Radian(PBMap\GeographicCoordinates\Latitude))/Pow(2,PBMap\Zoom) / 2 Select PBMap\Options\ScaleUnit Case #SCALE_Nautical @@ -762,10 +762,10 @@ Module PBMap Procedure DrawDegrees(*Drawing.DrawingParameters, alpha=192) Protected tx, ty, nx,ny,nx1,ny1,x,y,n,cx,dperpixel.d - Protected pos1.PixelPosition,pos2.PixelPosition,Degrees1.GeographicCoordinates,degrees2.GeographicCoordinates + Protected pos1.PixelCoordinates,pos2.PixelCoordinates,Degrees1.GeographicCoordinates,degrees2.GeographicCoordinates Protected realx - tx = Int(*Drawing\TilePosition\x) - ty = Int(*Drawing\TilePosition\y) + tx = Int(*Drawing\TileCoordinates\x) + ty = Int(*Drawing\TileCoordinates\y) nx = *Drawing\CenterX / PBMap\TileSize ;How many tiles around the point ny = *Drawing\CenterY / PBMap\TileSize *Drawing\Bounds\NorthWest\x = tx-nx-1 @@ -834,13 +834,13 @@ Module PBMap EndProcedure Procedure DrawTrack(*Drawing.DrawingParameters) - Protected Pixel.PixelPosition + Protected Pixel.PixelCoordinates Protected Location.GeographicCoordinates Protected km.f, memKm.i If ListSize(PBMap\track())>0 ;Trace Track ForEach PBMap\track() - If *Drawing\TargetLocation\Latitude<>0 And *Drawing\TargetLocation\Longitude<>0 + If *Drawing\GeographicCoordinates\Latitude<>0 And *Drawing\GeographicCoordinates\Longitude<>0 ;GetPixelCoordFromLocation(@PBMap\track(),@Pixel) LatLon2Pixel(@PBMap\track(), @Pixel, PBMap\Zoom) If ListIndex(PBMap\track())=0 @@ -894,8 +894,8 @@ Module PBMap ; Add a Marker To the Map Procedure AddMarker(Latitude.d, Longitude.d, color.l=-1, CallBackPointer.i = -1) AddElement(PBMap\Marker()) - PBMap\Marker()\Location\Latitude = Latitude - PBMap\Marker()\Location\Longitude = Mod(Mod(Longitude, 360) + 360, 360) + PBMap\Marker()\GeographicCoordinates\Latitude = Latitude + PBMap\Marker()\GeographicCoordinates\Longitude = Mod(Mod(Longitude, 360) + 360, 360) PBMap\Marker()\color = color PBMap\Marker()\CallBackPointer = CallBackPointer PBMap\Redraw = #True @@ -903,11 +903,11 @@ Module PBMap ; Draw all markers on the screen ! Procedure DrawMarkers(*Drawing.DrawingParameters) - Protected Pixel.PixelPosition + Protected Pixel.PixelCoordinates ForEach PBMap\Marker() - If PBMap\Marker()\Location\Latitude <> 0 And PBMap\Marker()\Location\Longitude <> 0 - ;GetPixelCoordFromLocation(PBMap\Marker()\Location, @Pixel) - LatLon2Pixel(PBMap\Marker()\Location, @Pixel, PBMap\Zoom) + If PBMap\Marker()\GeographicCoordinates\Latitude <> 0 And PBMap\Marker()\GeographicCoordinates\Longitude <> 0 + ;GetPixelCoordFromLocation(PBMap\Marker()\GeographicCoordinates, @Pixel) + LatLon2Pixel(PBMap\Marker()\GeographicCoordinates, @Pixel, PBMap\Zoom) If Pixel\X >= 0 And Pixel\Y >= 0 And Pixel\X < GadgetWidth(PBMap\Gadget) And Pixel\Y < GadgetHeight(PBMap\Gadget) ; Only if visible ^_^ If PBMap\Marker()\CallBackPointer > 0 CallFunctionFast(PBMap\Marker()\CallBackPointer, Pixel\X, Pixel\Y) @@ -928,12 +928,13 @@ Module PBMap ;Precalc some values *Drawing\CenterX = GadgetWidth(PBMap\Gadget) / 2 *Drawing\CenterY = GadgetHeight(PBMap\Gadget) / 2 + *Drawing\GeographicCoordinates\Latitude = PBMap\GeographicCoordinates\Latitude + *Drawing\GeographicCoordinates\Longitude = PBMap\GeographicCoordinates\Longitude + LatLon2TileXY(*Drawing\GeographicCoordinates, *Drawing\TileCoordinates, PBMap\Zoom) ;Pixel shift, aka position in the tile - Px = *Drawing\TilePosition\x : Py = *Drawing\TilePosition\y + Px = *Drawing\TileCoordinates\x : Py = *Drawing\TileCoordinates\y *Drawing\DeltaX = Px * ts - (Int(Px) * ts) ;Don't forget the Int() ! *Drawing\DeltaY = Py * ts - (Int(Py) * ts) - *Drawing\TargetLocation\Latitude = PBMap\TargetLocation\Latitude - *Drawing\TargetLocation\Longitude = PBMap\TargetLocation\Longitude ;Main drawing stuff StartVectorDrawing(CanvasVectorOutput(PBMap\Gadget)) ;TODO add in layers of tiles ;this way we can cache them as 0 base 1.n layers @@ -972,27 +973,27 @@ Module PBMap EndProcedure Procedure.d Longitude(x) - Protected NewX.d = (PBMap\PixelPosition\x - GadgetWidth(PBMap\Gadget) / 2 + x) / PBMap\TileSize + Protected NewX.d = (PBMap\PixelCoordinates\x - GadgetWidth(PBMap\Gadget) / 2 + x) / PBMap\TileSize Protected n.d = Pow(2.0, PBMap\Zoom) ;double mod is to ensure the longitude to be in the range [-180;180[ ProcedureReturn Mod(Mod(NewX / n * 360.0, 360.0) + 360.0, 360.0) - 180 EndProcedure Procedure.d Latitude(y) - Protected NewY.d = (PBMap\PixelPosition\y - GadgetHeight(PBMap\Gadget) / 2 + y) / PBMap\TileSize + Protected NewY.d = (PBMap\PixelCoordinates\y - GadgetHeight(PBMap\Gadget) / 2 + y) / PBMap\TileSize Protected n.d = Pow(2.0, PBMap\Zoom) ProcedureReturn Degree(ATan(SinH(#PI * (1.0 - 2.0 * NewY / n)))) EndProcedure Procedure.d MouseLongitude() - Protected MouseX.d = (PBMap\PixelPosition\x - GadgetWidth(PBMap\Gadget) / 2 + GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseX)) / PBMap\TileSize + Protected MouseX.d = (PBMap\PixelCoordinates\x - GadgetWidth(PBMap\Gadget) / 2 + GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseX)) / PBMap\TileSize Protected n.d = Pow(2.0, PBMap\Zoom) ;double mod is to ensure the longitude to be in the range [-180;180[ ProcedureReturn Mod(Mod(MouseX / n * 360.0, 360.0) + 360.0, 360.0) - 180 EndProcedure Procedure.d MouseLatitude() - Protected MouseY.d = (PBMap\PixelPosition\y - GadgetHeight(PBMap\Gadget) / 2 + GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseY)) / PBMap\TileSize + Protected MouseY.d = (PBMap\PixelCoordinates\y - GadgetHeight(PBMap\Gadget) / 2 + GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseY)) / PBMap\TileSize Protected n.d = Pow(2.0, PBMap\Zoom) ProcedureReturn Degree(ATan(SinH(#PI * (1.0 - 2.0 * MouseY / n)))) EndProcedure @@ -1000,25 +1001,25 @@ Module PBMap Procedure SetLocation(latitude.d, longitude.d, zoom = 15, Mode.i = #PB_Absolute) Select Mode Case #PB_Absolute - PBMap\TargetLocation\Latitude = latitude - PBMap\TargetLocation\Longitude = longitude + PBMap\GeographicCoordinates\Latitude = latitude + PBMap\GeographicCoordinates\Longitude = longitude PBMap\Zoom = zoom Case #PB_Relative - PBMap\TargetLocation\Latitude + latitude - PBMap\TargetLocation\Longitude + longitude + PBMap\GeographicCoordinates\Latitude + latitude + PBMap\GeographicCoordinates\Longitude + longitude PBMap\Zoom + zoom EndSelect If PBMap\Zoom > PBMap\ZoomMax : PBMap\Zoom = PBMap\ZoomMax : EndIf If PBMap\Zoom < PBMap\ZoomMin : PBMap\Zoom = PBMap\ZoomMin : EndIf - LatLon2TileXY(@PBMap\TargetLocation, @PBMap\Drawing, PBMap\Zoom) + LatLon2TileXY(@PBMap\GeographicCoordinates, @PBMap\Drawing\TileCoordinates, PBMap\Zoom) ;Convert X, Y in tile.decimal into real pixels - PBMap\PixelPosition\x = PBMap\Drawing\TilePosition\x * PBMap\TileSize - PBMap\PixelPosition\y = PBMap\Drawing\TilePosition\y * PBMap\TileSize + PBMap\PixelCoordinates\x = PBMap\Drawing\TileCoordinates\x * PBMap\TileSize + PBMap\PixelCoordinates\y = PBMap\Drawing\TileCoordinates\y * PBMap\TileSize PBMap\Drawing\PassNb = 1 PBMap\Redraw = #True ;Drawing() If PBMap\CallBackLocation > 0 - CallFunctionFast(PBMap\CallBackLocation, @PBMap\TargetLocation) + CallFunctionFast(PBMap\CallBackLocation, @PBMap\GeographicCoordinates) EndIf EndProcedure @@ -1060,7 +1061,7 @@ Module PBMap Protected lat.d = centerY; SetLocation(lat,lon, Round(zoom,#PB_Round_Down)) Else - SetLocation(PBMap\TargetLocation\Latitude, PBMap\TargetLocation\Longitude, 15) + SetLocation(PBMap\GeographicCoordinates\Latitude, PBMap\GeographicCoordinates\Longitude, 15) EndIf EndProcedure @@ -1073,15 +1074,15 @@ Module PBMap EndSelect If PBMap\Zoom > PBMap\ZoomMax : PBMap\Zoom = PBMap\ZoomMax : EndIf If PBMap\Zoom < PBMap\ZoomMin : PBMap\Zoom = PBMap\ZoomMin : EndIf - LatLon2TileXY(@PBMap\TargetLocation, @PBMap\Drawing\TilePosition, PBMap\Zoom) + LatLon2TileXY(@PBMap\GeographicCoordinates, @PBMap\Drawing\TileCoordinates, PBMap\Zoom) ;Convert X, Y in tile.decimal into real pixels - PBMap\PixelPosition\X = PBMap\Drawing\TilePosition\x * PBMap\TileSize - PBMap\PixelPosition\Y = PBMap\Drawing\TilePosition\y * PBMap\TileSize + PBMap\PixelCoordinates\X = PBMap\Drawing\TileCoordinates\x * PBMap\TileSize + PBMap\PixelCoordinates\Y = PBMap\Drawing\TileCoordinates\y * PBMap\TileSize ;First drawing PBMap\Redraw = #True ;Drawing() If PBMap\CallBackLocation > 0 - CallFunctionFast(PBMap\CallBackLocation, @PBMap\TargetLocation) + CallFunctionFast(PBMap\CallBackLocation, @PBMap\GeographicCoordinates) EndIf EndProcedure @@ -1110,7 +1111,7 @@ Module PBMap Protected CenterX = GadgetWidth(PBMap\Gadget) / 2, CenterY = GadgetHeight(PBMap\Gadget) / 2 ;Fast and dirty code - OldPx = PBMap\PixelPosition\x : OldPy = PBMap\PixelPosition\y + OldPx = PBMap\PixelCoordinates\x : OldPy = PBMap\PixelCoordinates\y OldMx = OldPx + CenterX - x OldMy = OldPy + CenterY - y PBMap\Zoom = PBMap\Zoom + zoom @@ -1119,10 +1120,10 @@ Module PBMap Protected MapWidth = Pow(2, PBMap\Zoom) * PBMap\TileSize ;Centered Zoom - LatLon2TileXY(@PBMap\TargetLocation, @PBMap\Drawing\TilePosition, PBMap\Zoom) + LatLon2TileXY(@PBMap\GeographicCoordinates, @PBMap\Drawing\TileCoordinates, PBMap\Zoom) ;Convert X, Y in tile.decimal into real pixels -; Px = PBMap\Drawing\TilePosition\x * PBMap\TileSize -; Py = PBMap\Drawing\TilePosition\y * PBMap\TileSize +; Px = PBMap\Drawing\TileCoordinates\x * PBMap\TileSize +; Py = PBMap\Drawing\TileCoordinates\y * PBMap\TileSize ; MouseX = Px + CenterX - x ; MouseY = Py + CenterY - y ; @@ -1131,33 +1132,33 @@ Module PBMap ; EndIf ; ; Debug "------" ;TODO bug when zoom near the wrap ; ; Debug "Mx : " +StrD(MouseX) -; ; Debug PBMap\TilePosition\x +; ; Debug PBMap\TileCoordinates\x ; ;Cross-multiply to get the new center -; PBMap\PixelPosition\x = (OldPx * MouseX) / OldMx -; PBMap\PixelPosition\y = (OldPy * MouseY) / OldMy +; PBMap\PixelCoordinates\x = (OldPx * MouseX) / OldMx +; PBMap\PixelCoordinates\y = (OldPy * MouseY) / OldMy ; ;PBMap tile position in tile.decimal -; PBMap\Drawing\TilePosition\x = PBMap\PixelPosition\x / PBMap\TileSize -; PBMap\Drawing\TilePosition\y = PBMap\PixelPosition\y / PBMap\TileSize +; PBMap\Drawing\TileCoordinates\x = PBMap\PixelCoordinates\x / PBMap\TileSize +; PBMap\Drawing\TileCoordinates\y = PBMap\PixelCoordinates\y / PBMap\TileSize ; PBMap\Drawing\PassNb = 1 - ;TileXY2LatLon(@PBMap\Drawing\TilePosition, @PBMap\TargetLocation, PBMap\Zoom) - LatLon2Pixel(@PBMap\TargetLocation, @PBMap\PixelPosition, PBMap\Zoom) + ;TileXY2LatLon(@PBMap\Drawing\TileCoordinates, @PBMap\GeographicCoordinates, PBMap\Zoom) + LatLon2Pixel(@PBMap\GeographicCoordinates, @PBMap\PixelCoordinates, PBMap\Zoom) ;Start drawing PBMap\Redraw = #True ;Drawing() ;If CallBackLocation send Location to function If PBMap\CallBackLocation > 0 - CallFunctionFast(PBMap\CallBackLocation, @PBMap\TargetLocation) + CallFunctionFast(PBMap\CallBackLocation, @PBMap\GeographicCoordinates) EndIf EndProcedure Procedure.d GetLatitude() -; ProcedureReturn 0-(90-Mod((PBMap\TargetLocation\Latitude+90),180)) - ProcedureReturn PBMap\TargetLocation\Latitude +; ProcedureReturn 0-(90-Mod((PBMap\GeographicCoordinates\Latitude+90),180)) + ProcedureReturn PBMap\GeographicCoordinates\Latitude EndProcedure Procedure.d GetLongitude() -; ProcedureReturn 0-(180-Mod((PBMap\TargetLocation\Longitude+180),360)) - ProcedureReturn PBMap\TargetLocation\Longitude +; ProcedureReturn 0-(180-Mod((PBMap\GeographicCoordinates\Longitude+180),360)) + ProcedureReturn PBMap\GeographicCoordinates\Longitude EndProcedure Procedure.i GetZoom() @@ -1168,7 +1169,7 @@ Module PBMap Procedure CanvasEvents() Protected MouseX.i, MouseY.i - Protected Marker.Coordinates, *Tile.Tile, MapWidth = Pow(2, PBMap\Zoom) * PBMap\TileSize + Protected MarkerCoords.Coordinates, *Tile.Tile, MapWidth = Pow(2, PBMap\Zoom) * PBMap\TileSize PBMap\Moving = #False Select EventType() Case #PB_EventType_MouseWheel @@ -1177,20 +1178,20 @@ Module PBMap SetZoomOnPosition(GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseX), GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseY), GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_WheelDelta)) Else ;Absolute zoom (centered on the center of the map) - SetZoom(GetGadgetAttribute(PBMap\Gadget,#PB_Canvas_WheelDelta), #PB_Relative) + SetZoom(GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_WheelDelta), #PB_Relative) EndIf Case #PB_EventType_LeftButtonDown ;Check if we select a marker - MouseX = PBMap\PixelPosition\x - GadgetWidth(PBMap\Gadget) / 2 + GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseX) - MouseY = PBMap\PixelPosition\y - GadgetHeight(PBMap\Gadget) / 2 + GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseY) + MouseX = PBMap\PixelCoordinates\x - GadgetWidth(PBMap\Gadget) / 2 + GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseX) + MouseY = PBMap\PixelCoordinates\y - GadgetHeight(PBMap\Gadget) / 2 + GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseY) ;Clip MouseX to the map range (in X, the map is infinite) MouseX = Mod(Mod(MouseX, MapWidth) + MapWidth, MapWidth) ForEach PBMap\Marker() - LatLon2TileXY(@PBMap\Marker()\Location, @Marker, PBMap\Zoom) - Marker\x * PBMap\TileSize - Marker\y * PBMap\TileSize - ;Debug "Pos : " + StrD(Marker\x) + " ; Drawing pos : " + StrD(PBMap\Drawing\TilePosition\x) - If Distance(Marker\x, Marker\y, MouseX, MouseY) < 8 + LatLon2TileXY(@PBMap\Marker()\GeographicCoordinates, @MarkerCoords, PBMap\Zoom) + MarkerCoords\x * PBMap\TileSize + MarkerCoords\y * PBMap\TileSize + ;Debug "Pos : " + StrD(Marker\x) + " ; Drawing pos : " + StrD(PBMap\Drawing\TileCoordinates\x) + If Distance(MarkerCoords\x, MarkerCoords\y, MouseX, MouseY) < 8 PBMap\EditMarkerIndex = ListIndex(PBMap\Marker()) Break EndIf @@ -1206,27 +1207,24 @@ Module PBMap ;Move marker If PBMap\EditMarkerIndex > -1 SelectElement(PBMap\Marker(), PBMap\EditMarkerIndex) - LatLon2TileXY(@PBMap\Marker()\Location, @Marker, PBMap\Zoom) - Marker\x + MouseX / PBMap\TileSize - Marker\y + MouseY / PBMap\TileSize - TileXY2LatLon(@Marker, @PBMap\Marker()\Location, PBMap\Zoom) + LatLon2TileXY(@PBMap\Marker()\GeographicCoordinates, @MarkerCoords, PBMap\Zoom) + MarkerCoords\x + MouseX / PBMap\TileSize + MarkerCoords\y + MouseY / PBMap\TileSize + TileXY2LatLon(@MarkerCoords, @PBMap\Marker()\GeographicCoordinates, PBMap\Zoom) Else ;New move values ;PBMap\Position\x - MouseX ;Ensures that pixel position stay in the range [0..2^Zoom*PBMap\TileSize[ coz of the wrapping of the map - PBMap\PixelPosition\x - MouseX - PBMap\PixelPosition\x = Mod(Mod(PBMap\PixelPosition\x, MapWidth) + MapWidth, MapWidth) - PBMap\PixelPosition\y - MouseY - ;PBMap tile position in tile.decimal - PBMap\Drawing\TilePosition\x = PBMap\PixelPosition\x / PBMap\TileSize - PBMap\Drawing\TilePosition\y = PBMap\PixelPosition\y / PBMap\TileSize - PBMap\Drawing\PassNb = 1 - TileXY2LatLon(@PBMap\Drawing, @PBMap\TargetLocation, PBMap\Zoom) + PBMap\PixelCoordinates\x - MouseX + PBMap\PixelCoordinates\x = Mod(Mod(PBMap\PixelCoordinates\x, MapWidth) + MapWidth, MapWidth) + PBMap\PixelCoordinates\y - MouseY + Pixel2LatLon(@PBMap\PixelCoordinates, @PBMap\GeographicCoordinates, PBMap\Zoom) ;If CallBackLocation send Location to function If PBMap\CallBackLocation > 0 - CallFunctionFast(PBMap\CallBackLocation, @PBMap\TargetLocation) + CallFunctionFast(PBMap\CallBackLocation, @PBMap\GeographicCoordinates) EndIf EndIf + PBMap\Drawing\PassNb = 1 PBMap\Redraw = #True PBMap\MoveStartingPoint\x = GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseX) PBMap\MoveStartingPoint\y = GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseY) @@ -1236,10 +1234,10 @@ Module PBMap If PBMap\EditMarkerIndex > -1 PBMap\EditMarkerIndex = -1 Else ;Move Map - PBMap\Drawing\TilePosition\x = PBMap\PixelPosition\x / PBMap\TileSize - PBMap\Drawing\TilePosition\y = PBMap\PixelPosition\y / PBMap\TileSize - MyDebug("PBMap\Drawing\TilePosition\x " + Str(PBMap\Drawing\TilePosition\x) + " ; PBMap\Drawing\TilePosition\y " + Str(PBMap\Drawing\TilePosition\y) ) - TileXY2LatLon(@PBMap\Drawing, @PBMap\TargetLocation, PBMap\Zoom) +; PBMap\Drawing\TileCoordinates\x = PBMap\PixelCoordinates\x / PBMap\TileSize +; PBMap\Drawing\TileCoordinates\y = PBMap\PixelCoordinates\y / PBMap\TileSize +; MyDebug("PBMap\Drawing\TileCoordinates\x " + Str(PBMap\Drawing\TileCoordinates\x) + " ; PBMap\Drawing\TileCoordinates\y " + Str(PBMap\Drawing\TileCoordinates\y) ) +; TileXY2LatLon(@PBMap\Drawing\TileCoordinates, @PBMap\GeographicCoordinates, PBMap\Zoom) PBMap\Redraw = #True EndIf Case #PB_MAP_REDRAW @@ -1425,9 +1423,9 @@ CompilerIf #PB_Compiler_IsMainFile CompilerEndIf ; IDE Options = PureBasic 5.50 (Windows - x64) -; CursorPosition = 430 -; FirstLine = 415 -; Folding = ---------- +; CursorPosition = 408 +; FirstLine = 397 +; Folding = ----------- ; EnableThread ; EnableXP ; EnableUnicode \ No newline at end of file From 9665398eec8d62a36615eca79c187f9d8b15c31d Mon Sep 17 00:00:00 2001 From: djes Date: Tue, 6 Sep 2016 17:17:56 +0200 Subject: [PATCH 41/62] Better LatLon2Pixel and bughunt Wheelmouse zoom still not working. --- PBMap.pb | 75 +++++++++++++++++++++++++++++++------------------------- 1 file changed, 42 insertions(+), 33 deletions(-) diff --git a/PBMap.pb b/PBMap.pb index 40f910b..696155b 100644 --- a/PBMap.pb +++ b/PBMap.pb @@ -415,25 +415,29 @@ Module PBMap Procedure LatLon2Pixel(*Location.GeographicCoordinates, *Pixel.PixelCoordinates, Zoom) Protected Pos.Coordinates - Protected tilemax = Pow(2.0, Zoom) - Protected cx.d = PBMap\Drawing\CenterX, dpx.d = PBMap\Drawing\TileCoordinates\x - LatLon2TileXY(*Location, @Pos, Zoom) - Protected px.d = Pos\x + Protected tilemax = Pow(2.0, Zoom) * PBMap\TileSize + Protected cx.d = PBMap\Drawing\CenterX + Protected dpx.d = PBMap\PixelCoordinates\x + + Protected LatRad.d = Radian(*Location\Latitude) + Protected px = tilemax * (Mod( *Location\Longitude + 180.0, 360) / 360.0 ) + Protected py = tilemax * ( 1.0 - Log(Tan(LatRad) + (1.0/Cos(LatRad))) / #PI ) / 2.0 + ;check the x boundaries of the map to adjust the position (coz of the longitude wrapping) If dpx - px > tilemax / 2 ;Debug "c1" - *Pixel\x = cx + (px - dpx + tilemax) * PBMap\TileSize + *Pixel\x = cx + (px - dpx + tilemax) ElseIf px - dpx > tilemax / 2 ;Debug "c2" - *Pixel\x = cx + (px - dpx - tilemax) * PBMap\TileSize + *Pixel\x = cx + (px - dpx - tilemax) ElseIf px - dpx < 0 ;Debug "c3" - *Pixel\x = cx - (dpx - px) * PBMap\TileSize + *Pixel\x = cx - (dpx - px) Else ;Debug "c0" - *Pixel\x = cx + (px - dpx) * PBMap\TileSize + *Pixel\x = cx + (px - dpx) EndIf - *Pixel\y = PBMap\Drawing\CenterY + (Pos\y - PBMap\Drawing\TileCoordinates\y) * PBMap\TileSize + *Pixel\y = PBMap\Drawing\CenterY + (py - PBMap\PixelCoordinates\y) ;Debug "Longitude : " + StrD(*Location\Longitude) + " ; Pos : " + StrD(Pos\x) + " ; Drawing pos : " + StrD(PBMap\Drawing\Position\x) + "/" + Str(tilemax) + ; " ; XY : " + Str(*Pixel\x) + "," + Str(*Pixel\y) EndProcedure @@ -972,14 +976,14 @@ Module PBMap ;Drawing() EndProcedure - Procedure.d Longitude(x) + Procedure.d Pixel2Lon(x) Protected NewX.d = (PBMap\PixelCoordinates\x - GadgetWidth(PBMap\Gadget) / 2 + x) / PBMap\TileSize Protected n.d = Pow(2.0, PBMap\Zoom) ;double mod is to ensure the longitude to be in the range [-180;180[ ProcedureReturn Mod(Mod(NewX / n * 360.0, 360.0) + 360.0, 360.0) - 180 EndProcedure - Procedure.d Latitude(y) + Procedure.d Pixel2Lat(y) Protected NewY.d = (PBMap\PixelCoordinates\y - GadgetHeight(PBMap\Gadget) / 2 + y) / PBMap\TileSize Protected n.d = Pow(2.0, PBMap\Zoom) ProcedureReturn Degree(ATan(SinH(#PI * (1.0 - 2.0 * NewY / n)))) @@ -1102,25 +1106,30 @@ Module PBMap ;Zoom on x, y position relative to the canvas gadget Procedure SetZoomOnPosition(x, y, zoom) - Debug "----" - Debug Latitude(x) - Debug Longitude(y) - - Protected MouseX.d, MouseY.d - Protected OldPx.d, OldPy.d, OldMx.d, OldMy.d, Px.d, Py.d - Protected CenterX = GadgetWidth(PBMap\Gadget) / 2, CenterY = GadgetHeight(PBMap\Gadget) / 2 - - ;Fast and dirty code - OldPx = PBMap\PixelCoordinates\x : OldPy = PBMap\PixelCoordinates\y - OldMx = OldPx + CenterX - x - OldMy = OldPy + CenterY - y - PBMap\Zoom = PBMap\Zoom + zoom - If PBMap\Zoom > PBMap\ZoomMax : PBMap\Zoom = PBMap\ZoomMax : EndIf - If PBMap\Zoom < PBMap\ZoomMin : PBMap\Zoom = PBMap\ZoomMin : EndIf - Protected MapWidth = Pow(2, PBMap\Zoom) * PBMap\TileSize +; Debug "----" +; Debug Latitude(x) +; Debug Longitude(y) +; +; Protected MouseX.d, MouseY.d +; Protected OldPx.d, OldPy.d, OldMx.d, OldMy.d, Px.d, Py.d +; Protected CenterX = GadgetWidth(PBMap\Gadget) / 2, CenterY = GadgetHeight(PBMap\Gadget) / 2 +; +; ;Fast and dirty code +; OldPx = PBMap\PixelCoordinates\x : OldPy = PBMap\PixelCoordinates\y +; OldMx = OldPx + CenterX - x +; OldMy = OldPy + CenterY - y + PBMap\Zoom = PBMap\Zoom + zoom + If PBMap\Zoom > PBMap\ZoomMax : PBMap\Zoom = PBMap\ZoomMax : EndIf + If PBMap\Zoom < PBMap\ZoomMin : PBMap\Zoom = PBMap\ZoomMin : EndIf + LatLon2TileXY(@PBMap\GeographicCoordinates, @PBMap\Drawing\TileCoordinates, PBMap\Zoom) + ;Convert X, Y in tile.decimal into real pixels + PBMap\PixelCoordinates\X = PBMap\Drawing\TileCoordinates\x * PBMap\TileSize + PBMap\PixelCoordinates\Y = PBMap\Drawing\TileCoordinates\y * PBMap\TileSize + ;First drawing + ;Protected MapWidth = Pow(2, PBMap\Zoom) * PBMap\TileSize ;Centered Zoom - LatLon2TileXY(@PBMap\GeographicCoordinates, @PBMap\Drawing\TileCoordinates, PBMap\Zoom) + ;LatLon2TileXY(@PBMap\GeographicCoordinates, @PBMap\Drawing\TileCoordinates, PBMap\Zoom) ;Convert X, Y in tile.decimal into real pixels ; Px = PBMap\Drawing\TileCoordinates\x * PBMap\TileSize ; Py = PBMap\Drawing\TileCoordinates\y * PBMap\TileSize @@ -1141,7 +1150,7 @@ Module PBMap ; PBMap\Drawing\TileCoordinates\y = PBMap\PixelCoordinates\y / PBMap\TileSize ; PBMap\Drawing\PassNb = 1 ;TileXY2LatLon(@PBMap\Drawing\TileCoordinates, @PBMap\GeographicCoordinates, PBMap\Zoom) - LatLon2Pixel(@PBMap\GeographicCoordinates, @PBMap\PixelCoordinates, PBMap\Zoom) + ;LatLon2Pixel(@PBMap\GeographicCoordinates, @PBMap\PixelCoordinates, PBMap\Zoom) ;Start drawing PBMap\Redraw = #True ;Drawing() @@ -1181,11 +1190,12 @@ Module PBMap SetZoom(GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_WheelDelta), #PB_Relative) EndIf Case #PB_EventType_LeftButtonDown - ;Check if we select a marker + ;LatLon2Pixel(@PBMap\GeographicCoordinates, @PBMap\PixelCoordinates, PBMap\Zoom) ;TODO MouseX = PBMap\PixelCoordinates\x - GadgetWidth(PBMap\Gadget) / 2 + GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseX) MouseY = PBMap\PixelCoordinates\y - GadgetHeight(PBMap\Gadget) / 2 + GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseY) ;Clip MouseX to the map range (in X, the map is infinite) MouseX = Mod(Mod(MouseX, MapWidth) + MapWidth, MapWidth) + ;Check if we select a marker ForEach PBMap\Marker() LatLon2TileXY(@PBMap\Marker()\GeographicCoordinates, @MarkerCoords, PBMap\Zoom) MarkerCoords\x * PBMap\TileSize @@ -1213,7 +1223,6 @@ Module PBMap TileXY2LatLon(@MarkerCoords, @PBMap\Marker()\GeographicCoordinates, PBMap\Zoom) Else ;New move values - ;PBMap\Position\x - MouseX ;Ensures that pixel position stay in the range [0..2^Zoom*PBMap\TileSize[ coz of the wrapping of the map PBMap\PixelCoordinates\x - MouseX PBMap\PixelCoordinates\x = Mod(Mod(PBMap\PixelCoordinates\x, MapWidth) + MapWidth, MapWidth) @@ -1423,8 +1432,8 @@ CompilerIf #PB_Compiler_IsMainFile CompilerEndIf ; IDE Options = PureBasic 5.50 (Windows - x64) -; CursorPosition = 408 -; FirstLine = 397 +; CursorPosition = 430 +; FirstLine = 415 ; Folding = ----------- ; EnableThread ; EnableXP From 26265c21a00e5a04d729d318717296b8550abb8b Mon Sep 17 00:00:00 2001 From: djes Date: Wed, 7 Sep 2016 11:55:53 +0200 Subject: [PATCH 42/62] Clarification on LatLon2PixelRel/LatLon2Pixel --- PBMap.pb | 111 +++++++++++++++++++++++++------------------------------ 1 file changed, 51 insertions(+), 60 deletions(-) diff --git a/PBMap.pb b/PBMap.pb index 696155b..02179ef 100644 --- a/PBMap.pb +++ b/PBMap.pb @@ -413,16 +413,22 @@ Module PBMap *Location\Latitude = Degree(ATan(SinH(#PI * (1.0 - 2.0 * *Coords\y / n)))) EndProcedure + ;Lat Lon coordinates 2 pixel absolute [0 to 2^Zoom * TileSize [ Procedure LatLon2Pixel(*Location.GeographicCoordinates, *Pixel.PixelCoordinates, Zoom) - Protected Pos.Coordinates + Protected tilemax = Pow(2.0, Zoom) * PBMap\TileSize + Protected LatRad.d = Radian(*Location\Latitude) + *Pixel\x = tilemax * (Mod( *Location\Longitude + 180.0, 360) / 360.0 ) + *Pixel\y = tilemax * ( 1.0 - Log(Tan(LatRad) + (1.0/Cos(LatRad))) / #PI ) / 2.0 + EndProcedure + + ;Lat Lon coordinates 2 pixel relative to the center of view + Procedure LatLon2PixelRel(*Location.GeographicCoordinates, *Pixel.PixelCoordinates, Zoom) Protected tilemax = Pow(2.0, Zoom) * PBMap\TileSize Protected cx.d = PBMap\Drawing\CenterX Protected dpx.d = PBMap\PixelCoordinates\x - Protected LatRad.d = Radian(*Location\Latitude) Protected px = tilemax * (Mod( *Location\Longitude + 180.0, 360) / 360.0 ) Protected py = tilemax * ( 1.0 - Log(Tan(LatRad) + (1.0/Cos(LatRad))) / #PI ) / 2.0 - ;check the x boundaries of the map to adjust the position (coz of the longitude wrapping) If dpx - px > tilemax / 2 ;Debug "c1" @@ -438,10 +444,10 @@ Module PBMap *Pixel\x = cx + (px - dpx) EndIf *Pixel\y = PBMap\Drawing\CenterY + (py - PBMap\PixelCoordinates\y) - ;Debug "Longitude : " + StrD(*Location\Longitude) + " ; Pos : " + StrD(Pos\x) + " ; Drawing pos : " + StrD(PBMap\Drawing\Position\x) + "/" + Str(tilemax) + - ; " ; XY : " + Str(*Pixel\x) + "," + Str(*Pixel\y) EndProcedure + + ; HaversineAlgorithm ; http://andrew.hedges.name/experiments/haversine/ Procedure.d HaversineInKM(*posA.GeographicCoordinates, *posB.GeographicCoordinates) @@ -789,15 +795,15 @@ Module PBMap Degrees2\Longitude = nx1 Degrees2\Latitude = ny1 ; Debug "NW : " + StrD(Degrees1\Longitude) + " ; NE : " + StrD(Degrees2\Longitude) - LatLon2Pixel(@Degrees1, @pos1, PBMap\Zoom) - LatLon2Pixel(@Degrees2, @pos2, PBMap\Zoom) + LatLon2PixelRel(@Degrees1, @pos1, PBMap\Zoom) + LatLon2PixelRel(@Degrees2, @pos2, PBMap\Zoom) VectorFont(FontID(PBMap\Font), 10) VectorSourceColor(RGBA(0, 0, 0, alpha)) ;draw latitudes For y = ny1 To ny Degrees1\Longitude = nx Degrees1\Latitude = y - LatLon2Pixel(@Degrees1, @pos1, PBMap\Zoom) + LatLon2PixelRel(@Degrees1, @pos1, PBMap\Zoom) MovePathCursor(pos1\x, pos1\y) AddPathLine( pos2\x, pos1\y) MovePathCursor(10, pos1\y) @@ -808,7 +814,7 @@ Module PBMap Repeat Degrees1\Longitude = x Degrees1\Latitude = ny - LatLon2Pixel(@Degrees1, @pos1, PBMap\Zoom) + LatLon2PixelRel(@Degrees1, @pos1, PBMap\Zoom) MovePathCursor(pos1\x, pos1\y) AddPathLine( pos1\x, pos2\y) MovePathCursor(pos1\x,10) @@ -846,7 +852,7 @@ Module PBMap ForEach PBMap\track() If *Drawing\GeographicCoordinates\Latitude<>0 And *Drawing\GeographicCoordinates\Longitude<>0 ;GetPixelCoordFromLocation(@PBMap\track(),@Pixel) - LatLon2Pixel(@PBMap\track(), @Pixel, PBMap\Zoom) + LatLon2PixelRel(@PBMap\track(), @Pixel, PBMap\Zoom) If ListIndex(PBMap\track())=0 MovePathCursor(Pixel\X, Pixel\Y) Else @@ -868,7 +874,7 @@ Module PBMap Location\Longitude=PBMap\track()\Longitude EndIf ;GetPixelCoordFromLocation(@PBMap\track(),@Pixel) - LatLon2Pixel(@PBMap\track(),@Pixel, PBMap\Zoom) + LatLon2PixelRel(@PBMap\track(),@Pixel, PBMap\Zoom) If Int(km)<>memKm memKm=Int(km) If PBMap\Zoom>10 @@ -911,7 +917,7 @@ Module PBMap ForEach PBMap\Marker() If PBMap\Marker()\GeographicCoordinates\Latitude <> 0 And PBMap\Marker()\GeographicCoordinates\Longitude <> 0 ;GetPixelCoordFromLocation(PBMap\Marker()\GeographicCoordinates, @Pixel) - LatLon2Pixel(PBMap\Marker()\GeographicCoordinates, @Pixel, PBMap\Zoom) + LatLon2PixelRel(PBMap\Marker()\GeographicCoordinates, @Pixel, PBMap\Zoom) If Pixel\X >= 0 And Pixel\Y >= 0 And Pixel\X < GadgetWidth(PBMap\Gadget) And Pixel\Y < GadgetHeight(PBMap\Gadget) ; Only if visible ^_^ If PBMap\Marker()\CallBackPointer > 0 CallFunctionFast(PBMap\Marker()\CallBackPointer, Pixel\X, Pixel\Y) @@ -1105,52 +1111,36 @@ Module PBMap EndProcedure ;Zoom on x, y position relative to the canvas gadget + ;TODO Procedure SetZoomOnPosition(x, y, zoom) -; Debug "----" -; Debug Latitude(x) -; Debug Longitude(y) -; -; Protected MouseX.d, MouseY.d -; Protected OldPx.d, OldPy.d, OldMx.d, OldMy.d, Px.d, Py.d -; Protected CenterX = GadgetWidth(PBMap\Gadget) / 2, CenterY = GadgetHeight(PBMap\Gadget) / 2 -; -; ;Fast and dirty code -; OldPx = PBMap\PixelCoordinates\x : OldPy = PBMap\PixelCoordinates\y -; OldMx = OldPx + CenterX - x -; OldMy = OldPy + CenterY - y - PBMap\Zoom = PBMap\Zoom + zoom - If PBMap\Zoom > PBMap\ZoomMax : PBMap\Zoom = PBMap\ZoomMax : EndIf - If PBMap\Zoom < PBMap\ZoomMin : PBMap\Zoom = PBMap\ZoomMin : EndIf - LatLon2TileXY(@PBMap\GeographicCoordinates, @PBMap\Drawing\TileCoordinates, PBMap\Zoom) - ;Convert X, Y in tile.decimal into real pixels + Protected MouseX.d, MouseY.d + Protected OldPx.d, OldPy.d, OldMx.d, OldMy.d, Px.d, Py.d + Protected CenterX = GadgetWidth(PBMap\Gadget) / 2, CenterY = GadgetHeight(PBMap\Gadget) / 2 + ;Fast and dirty code + OldPx = PBMap\PixelCoordinates\x : OldPy = PBMap\PixelCoordinates\y + OldMx = OldPx + CenterX - x + OldMy = OldPy + CenterY - y + PBMap\Zoom = PBMap\Zoom + zoom + If PBMap\Zoom > PBMap\ZoomMax : PBMap\Zoom = PBMap\ZoomMax : EndIf + If PBMap\Zoom < PBMap\ZoomMin : PBMap\Zoom = PBMap\ZoomMin : EndIf + LatLon2TileXY(@PBMap\GeographicCoordinates, @PBMap\Drawing\TileCoordinates, PBMap\Zoom) + ;Convert X, Y in tile.decimal into real pixels PBMap\PixelCoordinates\X = PBMap\Drawing\TileCoordinates\x * PBMap\TileSize PBMap\PixelCoordinates\Y = PBMap\Drawing\TileCoordinates\y * PBMap\TileSize - ;First drawing - ;Protected MapWidth = Pow(2, PBMap\Zoom) * PBMap\TileSize - - ;Centered Zoom - ;LatLon2TileXY(@PBMap\GeographicCoordinates, @PBMap\Drawing\TileCoordinates, PBMap\Zoom) ;Convert X, Y in tile.decimal into real pixels -; Px = PBMap\Drawing\TileCoordinates\x * PBMap\TileSize -; Py = PBMap\Drawing\TileCoordinates\y * PBMap\TileSize -; MouseX = Px + CenterX - x -; MouseY = Py + CenterY - y -; -; If MouseX > MapWidth -; Debug "kaboum" -; EndIf -; ; Debug "------" ;TODO bug when zoom near the wrap -; ; Debug "Mx : " +StrD(MouseX) -; ; Debug PBMap\TileCoordinates\x -; ;Cross-multiply to get the new center -; PBMap\PixelCoordinates\x = (OldPx * MouseX) / OldMx -; PBMap\PixelCoordinates\y = (OldPy * MouseY) / OldMy -; ;PBMap tile position in tile.decimal -; PBMap\Drawing\TileCoordinates\x = PBMap\PixelCoordinates\x / PBMap\TileSize -; PBMap\Drawing\TileCoordinates\y = PBMap\PixelCoordinates\y / PBMap\TileSize -; PBMap\Drawing\PassNb = 1 - ;TileXY2LatLon(@PBMap\Drawing\TileCoordinates, @PBMap\GeographicCoordinates, PBMap\Zoom) - ;LatLon2Pixel(@PBMap\GeographicCoordinates, @PBMap\PixelCoordinates, PBMap\Zoom) + Px = PBMap\Drawing\TileCoordinates\x * PBMap\TileSize + Py = PBMap\Drawing\TileCoordinates\y * PBMap\TileSize + MouseX = Px + CenterX - x + MouseY = Py + CenterY - y + ;Cross-multiply to get the new center + PBMap\PixelCoordinates\x = (OldPx * MouseX) / OldMx + PBMap\PixelCoordinates\y = (OldPy * MouseY) / OldMy + ;PBMap tile position in tile.decimal + PBMap\Drawing\TileCoordinates\x = PBMap\PixelCoordinates\x / PBMap\TileSize + PBMap\Drawing\TileCoordinates\y = PBMap\PixelCoordinates\y / PBMap\TileSize + PBMap\Drawing\PassNb = 1 + TileXY2LatLon(@PBMap\Drawing\TileCoordinates, @PBMap\GeographicCoordinates, PBMap\Zoom) + ;LatLon2PixelRel(@PBMap\GeographicCoordinates, @PBMap\PixelCoordinates, PBMap\Zoom) ;Start drawing PBMap\Redraw = #True ;Drawing() @@ -1190,14 +1180,14 @@ Module PBMap SetZoom(GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_WheelDelta), #PB_Relative) EndIf Case #PB_EventType_LeftButtonDown - ;LatLon2Pixel(@PBMap\GeographicCoordinates, @PBMap\PixelCoordinates, PBMap\Zoom) ;TODO + LatLon2Pixel(@PBMap\GeographicCoordinates, @PBMap\PixelCoordinates, PBMap\Zoom) MouseX = PBMap\PixelCoordinates\x - GadgetWidth(PBMap\Gadget) / 2 + GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseX) MouseY = PBMap\PixelCoordinates\y - GadgetHeight(PBMap\Gadget) / 2 + GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseY) ;Clip MouseX to the map range (in X, the map is infinite) MouseX = Mod(Mod(MouseX, MapWidth) + MapWidth, MapWidth) ;Check if we select a marker ForEach PBMap\Marker() - LatLon2TileXY(@PBMap\Marker()\GeographicCoordinates, @MarkerCoords, PBMap\Zoom) + LatLon2TileXY(@PBMap\Marker()\GeographicCoordinates, @MarkerCoords, PBMap\Zoom) ;This line could be removed as the coordinates don't have to change but I want to be sure we rely only on geographic coordinates MarkerCoords\x * PBMap\TileSize MarkerCoords\y * PBMap\TileSize ;Debug "Pos : " + StrD(Marker\x) + " ; Drawing pos : " + StrD(PBMap\Drawing\TileCoordinates\x) @@ -1207,8 +1197,8 @@ Module PBMap EndIf Next ;Mem cursor Coord - PBMap\MoveStartingPoint\x = GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseX) - PBMap\MoveStartingPoint\y = GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseY) + PBMap\MoveStartingPoint\x = GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseX) + PBMap\MoveStartingPoint\y = GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseY) Case #PB_EventType_MouseMove PBMap\Moving = #True If PBMap\MoveStartingPoint\x <> - 1 @@ -1223,6 +1213,7 @@ Module PBMap TileXY2LatLon(@MarkerCoords, @PBMap\Marker()\GeographicCoordinates, PBMap\Zoom) Else ;New move values + LatLon2Pixel(@PBMap\GeographicCoordinates, @PBMap\PixelCoordinates, PBMap\Zoom) ;This line could be removed as the coordinates don't have to change but I want to be sure we rely only on geographic coordinates ;Ensures that pixel position stay in the range [0..2^Zoom*PBMap\TileSize[ coz of the wrapping of the map PBMap\PixelCoordinates\x - MouseX PBMap\PixelCoordinates\x = Mod(Mod(PBMap\PixelCoordinates\x, MapWidth) + MapWidth, MapWidth) @@ -1432,8 +1423,8 @@ CompilerIf #PB_Compiler_IsMainFile CompilerEndIf ; IDE Options = PureBasic 5.50 (Windows - x64) -; CursorPosition = 430 -; FirstLine = 415 +; CursorPosition = 1117 +; FirstLine = 1108 ; Folding = ----------- ; EnableThread ; EnableXP From 5aba6510b558d49213c158d79843a0e76de57828 Mon Sep 17 00:00:00 2001 From: djes Date: Wed, 7 Sep 2016 12:35:38 +0200 Subject: [PATCH 43/62] wip --- PBMap.pb | 41 +++++++++++++++++------------------------ 1 file changed, 17 insertions(+), 24 deletions(-) diff --git a/PBMap.pb b/PBMap.pb index 02179ef..ae97e9e 100644 --- a/PBMap.pb +++ b/PBMap.pb @@ -419,7 +419,7 @@ Module PBMap Protected LatRad.d = Radian(*Location\Latitude) *Pixel\x = tilemax * (Mod( *Location\Longitude + 180.0, 360) / 360.0 ) *Pixel\y = tilemax * ( 1.0 - Log(Tan(LatRad) + (1.0/Cos(LatRad))) / #PI ) / 2.0 - EndProcedure + EndProcedure ;Lat Lon coordinates 2 pixel relative to the center of view Procedure LatLon2PixelRel(*Location.GeographicCoordinates, *Pixel.PixelCoordinates, Zoom) @@ -430,7 +430,7 @@ Module PBMap Protected px = tilemax * (Mod( *Location\Longitude + 180.0, 360) / 360.0 ) Protected py = tilemax * ( 1.0 - Log(Tan(LatRad) + (1.0/Cos(LatRad))) / #PI ) / 2.0 ;check the x boundaries of the map to adjust the position (coz of the longitude wrapping) - If dpx - px > tilemax / 2 + If dpx - px >= tilemax / 2 ;Debug "c1" *Pixel\x = cx + (px - dpx + tilemax) ElseIf px - dpx > tilemax / 2 @@ -1116,34 +1116,27 @@ Module PBMap Protected MouseX.d, MouseY.d Protected OldPx.d, OldPy.d, OldMx.d, OldMy.d, Px.d, Py.d Protected CenterX = GadgetWidth(PBMap\Gadget) / 2, CenterY = GadgetHeight(PBMap\Gadget) / 2 - ;Fast and dirty code + Protected MapWidth = Pow(2.0, PBMap\Zoom) * PBMap\TileSize + LatLon2Pixel(@PBMap\GeographicCoordinates, @PBMap\PixelCoordinates, PBMap\Zoom) OldPx = PBMap\PixelCoordinates\x : OldPy = PBMap\PixelCoordinates\y OldMx = OldPx + CenterX - x OldMy = OldPy + CenterY - y + ;*** First : Zoom PBMap\Zoom = PBMap\Zoom + zoom If PBMap\Zoom > PBMap\ZoomMax : PBMap\Zoom = PBMap\ZoomMax : EndIf If PBMap\Zoom < PBMap\ZoomMin : PBMap\Zoom = PBMap\ZoomMin : EndIf - LatLon2TileXY(@PBMap\GeographicCoordinates, @PBMap\Drawing\TileCoordinates, PBMap\Zoom) - ;Convert X, Y in tile.decimal into real pixels - PBMap\PixelCoordinates\X = PBMap\Drawing\TileCoordinates\x * PBMap\TileSize - PBMap\PixelCoordinates\Y = PBMap\Drawing\TileCoordinates\y * PBMap\TileSize - ;Convert X, Y in tile.decimal into real pixels - Px = PBMap\Drawing\TileCoordinates\x * PBMap\TileSize - Py = PBMap\Drawing\TileCoordinates\y * PBMap\TileSize - MouseX = Px + CenterX - x - MouseY = Py + CenterY - y - ;Cross-multiply to get the new center - PBMap\PixelCoordinates\x = (OldPx * MouseX) / OldMx - PBMap\PixelCoordinates\y = (OldPy * MouseY) / OldMy - ;PBMap tile position in tile.decimal - PBMap\Drawing\TileCoordinates\x = PBMap\PixelCoordinates\x / PBMap\TileSize - PBMap\Drawing\TileCoordinates\y = PBMap\PixelCoordinates\y / PBMap\TileSize - PBMap\Drawing\PassNb = 1 - TileXY2LatLon(@PBMap\Drawing\TileCoordinates, @PBMap\GeographicCoordinates, PBMap\Zoom) - ;LatLon2PixelRel(@PBMap\GeographicCoordinates, @PBMap\PixelCoordinates, PBMap\Zoom) + LatLon2Pixel(@PBMap\GeographicCoordinates, @PBMap\PixelCoordinates, PBMap\Zoom) + ;*** + Debug OldMx - OldPx + MouseX = PBMap\PixelCoordinates\X + CenterX - x + MouseY = PBMap\PixelCoordinates\Y + CenterY - y + ;Cross-multiply to get the new view center + PBMap\PixelCoordinates\x = (OldPx * MouseX) / OldMx + PBMap\PixelCoordinates\y = (OldPy * MouseY) / OldMy + Pixel2LatLon(@PBMap\PixelCoordinates, @PBMap\GeographicCoordinates, PBMap\Zoom) ;Start drawing + PBMap\Drawing\PassNb = 1 PBMap\Redraw = #True - ;Drawing() ;If CallBackLocation send Location to function If PBMap\CallBackLocation > 0 CallFunctionFast(PBMap\CallBackLocation, @PBMap\GeographicCoordinates) @@ -1423,8 +1416,8 @@ CompilerIf #PB_Compiler_IsMainFile CompilerEndIf ; IDE Options = PureBasic 5.50 (Windows - x64) -; CursorPosition = 1117 -; FirstLine = 1108 +; CursorPosition = 1129 +; FirstLine = 1115 ; Folding = ----------- ; EnableThread ; EnableXP From c698760d7d58881bdbc5933446b2bad0f6ea82d4 Mon Sep 17 00:00:00 2001 From: djes Date: Fri, 9 Sep 2016 12:33:46 +0200 Subject: [PATCH 44/62] SetZoomOnPosition bugfixed and double clic fast go --- PBMap.pb | 54 +++++++++++++++++++++++++++++++++--------------------- 1 file changed, 33 insertions(+), 21 deletions(-) diff --git a/PBMap.pb b/PBMap.pb index ae97e9e..abd0159 100644 --- a/PBMap.pb +++ b/PBMap.pb @@ -107,7 +107,6 @@ Module PBMap DeltaX.i DeltaY.i Dirty.i - PassNB.i End.i EndStructure @@ -1025,7 +1024,6 @@ Module PBMap ;Convert X, Y in tile.decimal into real pixels PBMap\PixelCoordinates\x = PBMap\Drawing\TileCoordinates\x * PBMap\TileSize PBMap\PixelCoordinates\y = PBMap\Drawing\TileCoordinates\y * PBMap\TileSize - PBMap\Drawing\PassNb = 1 PBMap\Redraw = #True ;Drawing() If PBMap\CallBackLocation > 0 @@ -1111,31 +1109,45 @@ Module PBMap EndProcedure ;Zoom on x, y position relative to the canvas gadget - ;TODO Procedure SetZoomOnPosition(x, y, zoom) Protected MouseX.d, MouseY.d Protected OldPx.d, OldPy.d, OldMx.d, OldMy.d, Px.d, Py.d - Protected CenterX = GadgetWidth(PBMap\Gadget) / 2, CenterY = GadgetHeight(PBMap\Gadget) / 2 - Protected MapWidth = Pow(2.0, PBMap\Zoom) * PBMap\TileSize - LatLon2Pixel(@PBMap\GeographicCoordinates, @PBMap\PixelCoordinates, PBMap\Zoom) - OldPx = PBMap\PixelCoordinates\x : OldPy = PBMap\PixelCoordinates\y - OldMx = OldPx + CenterX - x - OldMy = OldPy + CenterY - y + Protected CenterX = GadgetWidth(PBMap\Gadget) / 2 + Protected CenterY = GadgetHeight(PBMap\Gadget) / 2 + x - CenterX + y - CenterY ;*** First : Zoom - PBMap\Zoom = PBMap\Zoom + zoom + PBMap\Zoom + zoom If PBMap\Zoom > PBMap\ZoomMax : PBMap\Zoom = PBMap\ZoomMax : EndIf If PBMap\Zoom < PBMap\ZoomMin : PBMap\Zoom = PBMap\ZoomMin : EndIf LatLon2Pixel(@PBMap\GeographicCoordinates, @PBMap\PixelCoordinates, PBMap\Zoom) - ;*** - Debug OldMx - OldPx - MouseX = PBMap\PixelCoordinates\X + CenterX - x - MouseY = PBMap\PixelCoordinates\Y + CenterY - y - ;Cross-multiply to get the new view center - PBMap\PixelCoordinates\x = (OldPx * MouseX) / OldMx - PBMap\PixelCoordinates\y = (OldPy * MouseY) / OldMy + If Zoom = 1 + PBMap\PixelCoordinates\x + x + PBMap\PixelCoordinates\y + y + ElseIf zoom = -1 + PBMap\PixelCoordinates\x - x/2 + PBMap\PixelCoordinates\y - y/2 + EndIf + Pixel2LatLon(@PBMap\PixelCoordinates, @PBMap\GeographicCoordinates, PBMap\Zoom) + ;Start drawing + PBMap\Redraw = #True + ;If CallBackLocation send Location to function + If PBMap\CallBackLocation > 0 + CallFunctionFast(PBMap\CallBackLocation, @PBMap\GeographicCoordinates) + EndIf + EndProcedure + + ;Go to x, y position relative to the canvas gadget + Procedure GotoPixelRel(x, y) + Protected CenterX = GadgetWidth(PBMap\Gadget) / 2 + Protected CenterY = GadgetHeight(PBMap\Gadget) / 2 + x - CenterX + y - CenterY + LatLon2Pixel(@PBMap\GeographicCoordinates, @PBMap\PixelCoordinates, PBMap\Zoom) + PBMap\PixelCoordinates\x + x + PBMap\PixelCoordinates\y + y Pixel2LatLon(@PBMap\PixelCoordinates, @PBMap\GeographicCoordinates, PBMap\Zoom) ;Start drawing - PBMap\Drawing\PassNb = 1 PBMap\Redraw = #True ;If CallBackLocation send Location to function If PBMap\CallBackLocation > 0 @@ -1164,6 +1176,8 @@ Module PBMap Protected MarkerCoords.Coordinates, *Tile.Tile, MapWidth = Pow(2, PBMap\Zoom) * PBMap\TileSize PBMap\Moving = #False Select EventType() + Case #PB_EventType_LeftDoubleClick + GotoPixelRel(GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseX), GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseY)) Case #PB_EventType_MouseWheel If PBMap\Options\WheelMouseRelative ;Relative zoom (centered on the mouse) @@ -1217,7 +1231,6 @@ Module PBMap CallFunctionFast(PBMap\CallBackLocation, @PBMap\GeographicCoordinates) EndIf EndIf - PBMap\Drawing\PassNb = 1 PBMap\Redraw = #True PBMap\MoveStartingPoint\x = GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseX) PBMap\MoveStartingPoint\y = GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseY) @@ -1416,8 +1429,7 @@ CompilerIf #PB_Compiler_IsMainFile CompilerEndIf ; IDE Options = PureBasic 5.50 (Windows - x64) -; CursorPosition = 1129 -; FirstLine = 1115 +; CursorPosition = 8 ; Folding = ----------- ; EnableThread ; EnableXP From efdbcc8e4920493c608916a631c8645015dff09d Mon Sep 17 00:00:00 2001 From: djes Date: Fri, 9 Sep 2016 16:02:40 +0200 Subject: [PATCH 45/62] Cleanup + layer update --- PBMap.pb | 208 +++++++++++++++++++++++++++++++------------------------ 1 file changed, 118 insertions(+), 90 deletions(-) diff --git a/PBMap.pb b/PBMap.pb index abd0159..be6e992 100644 --- a/PBMap.pb +++ b/PBMap.pb @@ -37,7 +37,8 @@ DeclareModule PBMap #SCALE_KM = 0 Declare InitPBMap(window) - Declare SetMapServer(ServerURL.s = "http://tile.openstreetmap.org/", TileSize = 256, ZoomMin = 0, ZoomMax = 18) + Declare.i AddMapServerLayer(LayerName.s, Order.i, ServerURL.s = "http://tile.openstreetmap.org/", TileSize = 256, ZoomMin = 0, ZoomMax = 18) + Declare DeleteLayer(Nb.i) Declare MapGadget(Gadget.i, X.i, Y.i, Width.i, Height.i) Declare SetLocation(latitude.d, longitude.d, zoom = 15, mode.i = #PB_Absolute) Declare Drawing() @@ -86,10 +87,10 @@ Module PBMap CacheFile.s GetImageThread.i RetryNb.i - Layer.i + ServerURL.s EndStructure - Structure TileBounds + Structure TileBounds NorthWest.Coordinates SouthEast.Coordinates EndStructure @@ -127,56 +128,61 @@ Module PBMap EndStructure Structure Marker - GeographicCoordinates.GeographicCoordinates ; Marker latitude and longitude - color.l ; Marker color - CallBackPointer.i ; @Procedure(X.i, Y.i) to DrawPointer (you must use VectorDrawing lib) + GeographicCoordinates.GeographicCoordinates ; Marker latitude and longitude + color.l ; Marker color + CallBackPointer.i ; @Procedure(X.i, Y.i) to DrawPointer (you must use VectorDrawing lib) EndStructure Structure Option WheelMouseRelative.i - ScaleUnit.i ; Scale unit to use for measurements + ScaleUnit.i ; Scale unit to use for measurements EndStructure + Structure Layer + Order.i ; Layer nb + Name.s + ServerURL.s ; Web URL ex: http://tile.openstreetmap.org/ + EndStructure + ;-PBMap Structure Structure PBMap - Window.i ; Parent Window - Gadget.i ; Canvas Gadget Id - Font.i ; Font to uses when write on the map + Window.i ; Parent Window + Gadget.i ; Canvas Gadget Id + Font.i ; Font to uses when write on the map Timer.i GeographicCoordinates.GeographicCoordinates ; Latitude and Longitude from focus point - Drawing.DrawingParameters ; Drawing parameters based on focus point - ; - CallBackLocation.i ; @Procedure(latitude.d,lontitude.d) - CallBackMainPointer.i ; @Procedure(X.i, Y.i) to DrawPointer (you must use VectorDrawing lib) - ; - PixelCoordinates.PixelCoordinates ; Actual focus point coords in pixels (global) - MoveStartingPoint.PixelCoordinates ; Start mouse position coords when dragging the map - ; - Array ServerURL.s(0) ; Web URL ex: http://tile.openstreetmap.org/ - NumberOfMapLayers.i ; The number of map tile layers; + Drawing.DrawingParameters ; Drawing parameters based on focus point + ; + CallBackLocation.i ; @Procedure(latitude.d,lontitude.d) + CallBackMainPointer.i ; @Procedure(X.i, Y.i) to DrawPointer (you must use VectorDrawing lib) + ; + PixelCoordinates.PixelCoordinates ; Actual focus point coords in pixels (global) + MoveStartingPoint.PixelCoordinates ; Start mouse position coords when dragging the map + ; + List Layers.Layer() - ZoomMin.i ; Min Zoom supported by server - ZoomMax.i ; Max Zoom supported by server - Zoom.i ; Current zoom - TileSize.i ; Tile size downloaded on the server ex : 256 - ; - HDDCachePath.S ; Path where to load and save tiles downloaded from server - MemCache.TileMemCach ; Images in memory cache - ; + ZoomMin.i ; Min Zoom supported by server + ZoomMax.i ; Max Zoom supported by server + Zoom.i ; Current zoom + TileSize.i ; Tile size downloaded on the server ex : 256 + ; + HDDCachePath.S ; Path where to load and save tiles downloaded from server + MemCache.TileMemCach ; Images in memory cache + ; Redraw.i Moving.i - Dirty.i ; To signal that drawing need a refresh - ; + Dirty.i ; To signal that drawing need a refresh + ; MainDrawingThread.i - TileThreadMutex.i; ;Mutex to protect resources - List track.GeographicCoordinates() ; To display a GPX track - List Marker.Marker() ; To diplay marker + TileThreadMutex.i; ;Mutex to protect resources + List track.GeographicCoordinates() ; To display a GPX track + List Marker.Marker() ; To diplay marker EditMarkerIndex.l - ImgLoading.i ;Image Loading Tile - ImgNothing.i ;Image Nothing Tile + ImgLoading.i ;Image Loading Tile + ImgNothing.i ;Image Nothing Tile - Options.option ; + Options.option ; EndStructure #PB_MAP_REDRAW = #PB_EventType_FirstCustomValue + 1 @@ -306,8 +312,7 @@ Module PBMap PBMap\Window = Window PBMap\Timer = 1 PBMap\Options\WheelMouseRelative = #True - SetMapServer("http://tile.openstreetmap.org/") - + AddMapServerLayer("OSM", 1, "http://tile.openstreetmap.org/") ;-Preferences ;Use this to create and customize your preferences file for the first time ; CreatePreferences(GetHomeDirectory() + "PBMap.prefs") @@ -336,13 +341,24 @@ Module PBMap TechnicalImagesCreation() EndProcedure - Procedure SetMapServer(ServerURL.s = "http://tile.openstreetmap.org/", TileSize = 256, ZoomMin = 0, ZoomMax = 18) - PBMAP\NumberOfMapLayers + 1 - ReDim PBMap\ServerURL(PBMAP\NumberOfMapLayers) - PBMap\ServerURL(PBMAP\NumberOfMapLayers-1) = ServerURL - PBMap\ZoomMin = ZoomMin - PBMap\ZoomMax = ZoomMax - PBMap\TileSize = TileSize + Procedure.i AddMapServerLayer(LayerName.s, Order.i, ServerURL.s = "http://tile.openstreetmap.org/", TileSize = 256, ZoomMin = 0, ZoomMax = 18) + Protected *Ptr = AddElement(PBMap\Layers()) + If *Ptr + PBMap\Layers()\Name = LayerName + PBMap\Layers()\Order = Order + PBMap\Layers()\ServerURL = ServerURL + SortStructuredList(PBMap\Layers(), #PB_Sort_Ascending, OffsetOf(Layer\Order),TypeOf(Layer\Order)) + ProcedureReturn *Ptr + Else + ProcedureReturn #False + EndIf + EndProcedure + + Procedure DeleteLayer(*Ptr) + ChangeCurrentElement(PBMap\Layers(), *Ptr) + DeleteElement(PBMap\Layers()) + FirstElement(PBMap\Layers()) + SortStructuredList(PBMap\Layers(), #PB_Sort_Ascending, OffsetOf(Layer\Order),TypeOf(Layer\Order)) EndProcedure Procedure Quit() @@ -395,8 +411,8 @@ Module PBMap MyDebug("Latitude : " + StrD(*Location\Latitude) + " ; Longitude : " + StrD(*Location\Longitude), 5) MyDebug("Coords X : " + Str(*Coords\x) + " ; Y : " + Str(*Coords\y), 5) EndProcedure - - ;*** Converts tile.decimal to coords + + ;*** Converts tile.decimal to coords ;Warning, structures used in parameters are not tested Procedure TileXY2LatLon(*Coords.Coordinates, *Location.GeographicCoordinates, Zoom) Protected n.d = Pow(2.0, Zoom) @@ -436,8 +452,8 @@ Module PBMap ;Debug "c2" *Pixel\x = cx + (px - dpx - tilemax) ElseIf px - dpx < 0 - ;Debug "c3" - *Pixel\x = cx - (dpx - px) + ;Debug "c3" + *Pixel\x = cx - (dpx - px) Else ;Debug "c0" *Pixel\x = cx + (px - dpx) @@ -445,7 +461,7 @@ Module PBMap *Pixel\y = PBMap\Drawing\CenterY + (py - PBMap\PixelCoordinates\y) EndProcedure - + ; HaversineAlgorithm ; http://andrew.hedges.name/experiments/haversine/ @@ -465,7 +481,7 @@ Module PBMap ProcedureReturn (1000 * HaversineInKM(@*posA,@*posB)); EndProcedure - Procedure GetPixelCoordFromLocation(*Location.GeographicCoordinates, *Pixel.PixelCoordinates, Zoom) ; TODO to Optimize + Procedure GetPixelCoordFromLocation(*Location.GeographicCoordinates, *Pixel.PixelCoordinates, Zoom) ; TODO to Optimize Protected mapWidth.l = Pow(2, Zoom + 8) Protected mapHeight.l = Pow(2, Zoom + 8) Protected x1.l,y1.l @@ -475,20 +491,20 @@ Module PBMap Protected latRad.d = *Location\Latitude*#PI/180; Protected mercN.d = Log(Tan((#PI/4)+(latRad/2))); y1 = (mapHeight/2)-(mapWidth*mercN/(2*#PI)) ; -; Debug "location" -; Debug x1 -; Debug y1 + ; Debug "location" + ; Debug x1 + ; Debug y1 Protected x2.l, y2.l ; get x value x2 = (PBMap\GeographicCoordinates\Longitude+180)*(mapWidth/360) ; convert from degrees To radians latRad = PBMap\GeographicCoordinates\Latitude*#PI/180; - ; get y value + ; get y value mercN = Log(Tan((#PI/4)+(latRad/2))) y2 = (mapHeight/2)-(mapWidth*mercN/(2*#PI)); -; Debug "GeographicCoordinates" -; Debug x1 -; Debug y1 + ; Debug "GeographicCoordinates" + ; Debug x1 + ; Debug y1 *Pixel\x=GadgetWidth(PBMap\Gadget)/2 - (x2-x1) *Pixel\y=GadgetHeight(PBMap\Gadget)/2 - (y2-y1) EndProcedure @@ -546,11 +562,10 @@ Module PBMap ProcedureReturn -1 EndProcedure - Procedure.i GetTileFromWeb(Zoom.i, XTile.i, YTile.i, CacheFile.s, Layer.i) + Procedure.i GetTileFromWeb(TileURL.s, CacheFile.s) Protected *Buffer Protected nImage.i = -1 Protected FileSize.i, timg - Protected TileURL.s = PBMap\ServerURL(Layer) + Str(Zoom) + "/" + Str(XTile) + "/" + Str(YTile) + ".png" If Proxy FileSize = CurlReceiveHTTPToFile(TileURL, CacheFile, ProxyURL$, ProxyPort$, ProxyUser$, ProxyPassword$) If FileSize > 0 @@ -595,8 +610,9 @@ Module PBMap Procedure GetImageThread(*Tile.Tile) Protected nImage.i = -1 + Protected TileURL.s = *Tile\ServerURL + Str(*Tile\PBMapZoom) + "/" + Str(*Tile\PBMapTileX) + "/" + Str(*Tile\PBMapTileY) + ".png" Repeat - nImage = GetTileFromWeb(*Tile\PBMapZoom, *Tile\PBMapTileX, *Tile\PBMapTileY, *Tile\CacheFile, *Tile\Layer) + nImage = GetTileFromWeb(TileURL, *Tile\CacheFile) If nImage <> -1 MyDebug("Image key : " + *Tile\key + " web image loaded", 3) *Tile\RetryNb = 0 @@ -611,7 +627,7 @@ Module PBMap PostEvent(#PB_Event_Gadget, PBMap\Window, PBmap\Gadget, #PB_MAP_TILE_CLEANUP, *Tile) ;To free memory outside the thread EndProcedure - Procedure.i GetTile(key.s, CacheFile.s, px.i, py.i, tilex.i, tiley.i, Layer.i) + Procedure.i GetTile(key.s, CacheFile.s, px.i, py.i, tilex.i, tiley.i, ServerURL.s) Protected timg = -1 If FindMapElement(PBMap\MemCache\Images(), key) MyDebug("Key : " + key + " found in memory cache!", 3) @@ -647,7 +663,7 @@ Module PBMap \PBMapZoom = PBMap\Zoom \key = key \CacheFile = CacheFile - \Layer = Layer + \ServerURL = ServerURL \RetryNb = 5 \nImage = -1 MyDebug(" Creating get image thread nb " + Str(\GetImageThread) + " to get " + CacheFile, 3) @@ -660,7 +676,7 @@ Module PBMap ProcedureReturn timg EndProcedure - Procedure DrawTiles(*Drawing.DrawingParameters, Layer.i, alpha.i=255) + Procedure DrawTiles(*Drawing.DrawingParameters, Layer, alpha.i=255) ;DisableDebugger Protected x.i, y.i,kq.q Protected tx = Int(*Drawing\TileCoordinates\x) ;Don't forget the Int() ! @@ -669,6 +685,7 @@ Module PBMap Protected ny = *Drawing\CenterY / PBMap\TileSize Protected px, py, img, tilex,tiley, key.s, CacheFile.s Protected tilemax = 1<= 0 And tiley < tilemax - kq = Layer | (pbmap\zoom << 8) | (tilex << 16) | (tiley << 36) - key = Str(kq) + kq = (PBMap\zoom << 8) | (tilex << 16) | (tiley << 36) + key = PBMap\Layers()\Name + Str(kq) CacheFile = PBMap\HDDCachePath + key + ".png" - - img = GetTile(key, CacheFile, px, py, tilex, tiley, Layer) + img = GetTile(key, CacheFile, px, py, tilex, tiley, PBMap\Layers()\ServerURL) If img <> -1 MovePathCursor(px, py) DrawVectorImage(ImageID(img), alpha) @@ -693,7 +709,7 @@ Module PBMap DrawVectorImage(ImageID(PBMap\ImgLoading), alpha) EndIf Else - If Layer = 0 + If PBMap\Layers()\Name = "" MovePathCursor(px, py) DrawVectorImage(ImageID(PBMap\ImgNothing)) EndIf @@ -768,7 +784,7 @@ Module PBMap AddPathLine(x+128,y+12) StrokePath(1) EndProcedure - + Procedure DrawDegrees(*Drawing.DrawingParameters, alpha=192) Protected tx, ty, nx,ny,nx1,ny1,x,y,n,cx,dperpixel.d Protected pos1.PixelCoordinates,pos2.PixelCoordinates,Degrees1.GeographicCoordinates,degrees2.GeographicCoordinates @@ -781,7 +797,7 @@ Module PBMap *Drawing\Bounds\NorthWest\y = ty-ny-1 *Drawing\Bounds\SouthEast\x = tx+nx+2 *Drawing\Bounds\SouthEast\y = ty+ny+2 -; Debug "------------------" + ; Debug "------------------" TileXY2LatLon(*Drawing\Bounds\NorthWest, @Degrees1, PBMap\Zoom) TileXY2LatLon(*Drawing\Bounds\SouthEast, @Degrees2, PBMap\Zoom) ;ensure we stay positive for the drawing @@ -793,7 +809,7 @@ Module PBMap Degrees1\Latitude = ny Degrees2\Longitude = nx1 Degrees2\Latitude = ny1 -; Debug "NW : " + StrD(Degrees1\Longitude) + " ; NE : " + StrD(Degrees2\Longitude) + ; Debug "NW : " + StrD(Degrees1\Longitude) + " ; NE : " + StrD(Degrees2\Longitude) LatLon2PixelRel(@Degrees1, @pos1, PBMap\Zoom) LatLon2PixelRel(@Degrees2, @pos2, PBMap\Zoom) VectorFont(FontID(PBMap\Font), 10) @@ -886,7 +902,7 @@ Module PBMap EndIf EndProcedure - Procedure DrawMarker(x.i, y.i, color.l = 0) + Procedure DrawMarker(x.i, y.i, color.l = 0) VectorSourceColor(color) MovePathCursor(x, y) AddPathLine(-8, -16, #PB_Path_Relative) @@ -909,7 +925,7 @@ Module PBMap PBMap\Marker()\CallBackPointer = CallBackPointer PBMap\Redraw = #True EndProcedure - + ; Draw all markers on the screen ! Procedure DrawMarkers(*Drawing.DrawingParameters) Protected Pixel.PixelCoordinates @@ -948,8 +964,8 @@ Module PBMap StartVectorDrawing(CanvasVectorOutput(PBMap\Gadget)) ;TODO add in layers of tiles ;this way we can cache them as 0 base 1.n layers ;such as for openseamap tiles which are overlaid. not that efficent from here though. - For a = 0 To PBMap\NumberOfMapLayers - 1 - DrawTiles(*Drawing, a) + ForEach PBMap\Layers() + DrawTiles(*Drawing, ListIndex(PBMap\Layers())) Next DrawTrack(*Drawing) DrawMarkers(*Drawing) @@ -1156,12 +1172,12 @@ Module PBMap EndProcedure Procedure.d GetLatitude() -; ProcedureReturn 0-(90-Mod((PBMap\GeographicCoordinates\Latitude+90),180)) + ; ProcedureReturn 0-(90-Mod((PBMap\GeographicCoordinates\Latitude+90),180)) ProcedureReturn PBMap\GeographicCoordinates\Latitude EndProcedure Procedure.d GetLongitude() -; ProcedureReturn 0-(180-Mod((PBMap\GeographicCoordinates\Longitude+180),360)) + ; ProcedureReturn 0-(180-Mod((PBMap\GeographicCoordinates\Longitude+180),360)) ProcedureReturn PBMap\GeographicCoordinates\Longitude EndProcedure @@ -1221,7 +1237,7 @@ Module PBMap Else ;New move values LatLon2Pixel(@PBMap\GeographicCoordinates, @PBMap\PixelCoordinates, PBMap\Zoom) ;This line could be removed as the coordinates don't have to change but I want to be sure we rely only on geographic coordinates - ;Ensures that pixel position stay in the range [0..2^Zoom*PBMap\TileSize[ coz of the wrapping of the map + ;Ensures that pixel position stay in the range [0..2^Zoom*PBMap\TileSize[ coz of the wrapping of the map PBMap\PixelCoordinates\x - MouseX PBMap\PixelCoordinates\x = Mod(Mod(PBMap\PixelCoordinates\x, MapWidth) + MapWidth, MapWidth) PBMap\PixelCoordinates\y - MouseY @@ -1240,10 +1256,10 @@ Module PBMap If PBMap\EditMarkerIndex > -1 PBMap\EditMarkerIndex = -1 Else ;Move Map -; PBMap\Drawing\TileCoordinates\x = PBMap\PixelCoordinates\x / PBMap\TileSize -; PBMap\Drawing\TileCoordinates\y = PBMap\PixelCoordinates\y / PBMap\TileSize -; MyDebug("PBMap\Drawing\TileCoordinates\x " + Str(PBMap\Drawing\TileCoordinates\x) + " ; PBMap\Drawing\TileCoordinates\y " + Str(PBMap\Drawing\TileCoordinates\y) ) -; TileXY2LatLon(@PBMap\Drawing\TileCoordinates, @PBMap\GeographicCoordinates, PBMap\Zoom) + ; PBMap\Drawing\TileCoordinates\x = PBMap\PixelCoordinates\x / PBMap\TileSize + ; PBMap\Drawing\TileCoordinates\y = PBMap\PixelCoordinates\y / PBMap\TileSize + ; MyDebug("PBMap\Drawing\TileCoordinates\x " + Str(PBMap\Drawing\TileCoordinates\x) + " ; PBMap\Drawing\TileCoordinates\y " + Str(PBMap\Drawing\TileCoordinates\y) ) + ; TileXY2LatLon(@PBMap\Drawing\TileCoordinates, @PBMap\GeographicCoordinates, PBMap\Zoom) PBMap\Redraw = #True EndIf Case #PB_MAP_REDRAW @@ -1308,6 +1324,7 @@ CompilerIf #PB_Compiler_IsMainFile #String_1 #Gdt_LoadGpx #Gdt_AddMarker + #Gdt_AddOpenseaMap EndEnumeration Structure Location @@ -1316,8 +1333,8 @@ CompilerIf #PB_Compiler_IsMainFile EndStructure Procedure UpdateLocation(*Location.Location) -; SetGadgetText(#String_0, StrD(0-(90-Mod((*Location\Latitude+90),180)))) -; SetGadgetText(#String_1, StrD(0-(180-Mod((*Location\Longitude+180),360)))) + ; SetGadgetText(#String_0, StrD(0-(90-Mod((*Location\Latitude+90),180)))) + ; SetGadgetText(#String_1, StrD(0-(180-Mod((*Location\Longitude+180),360)))) SetGadgetText(#String_0, StrD(*Location\Latitude)) SetGadgetText(#String_1, StrD(*Location\Longitude)) ProcedureReturn 0 @@ -1356,6 +1373,7 @@ CompilerIf #PB_Compiler_IsMainFile ResizeGadget(#Text_4,WindowWidth(#Window_0)-170,#PB_Ignore,#PB_Ignore,#PB_Ignore) ResizeGadget(#Gdt_AddMarker,WindowWidth(#Window_0)-170,#PB_Ignore,#PB_Ignore,#PB_Ignore) ResizeGadget(#Gdt_LoadGpx,WindowWidth(#Window_0)-170,#PB_Ignore,#PB_Ignore,#PB_Ignore) + ResizeGadget(#Gdt_AddOpenseaMap,WindowWidth(#Window_0)-170,#PB_Ignore,#PB_Ignore,#PB_Ignore) PBMap::Refresh() EndProcedure @@ -1378,10 +1396,12 @@ CompilerIf #PB_Compiler_IsMainFile TextGadget(#Text_4, 530, 250, 60, 15, "Longitude : ") StringGadget(#String_1, 600, 250, 90, 20, "") ButtonGadget(#Gdt_AddMarker, 530, 280, 150, 30, "Add Marker") - ButtonGadget(#Gdt_LoadGpx, 530, 310, 150, 30, "Load GPX") + ButtonGadget(#Gdt_LoadGpx, 530, 310, 150, 30, "Load GPX") + ButtonGadget(#Gdt_AddOpenseaMap, 530, 340, 150, 30, "OpenSeaMap") Define Event.i, Gadget.i, Quit.b = #False Define pfValue.d + Define OpenSeaMap = 0 ;Our main gadget PBMap::InitPBMap(#Window_0) @@ -1390,7 +1410,6 @@ CompilerIf #PB_Compiler_IsMainFile PBMap::SetCallBackLocation(@UpdateLocation()) PBMap::SetLocation(-36.81148, 175.08634,12) ;PBMap::SetLocation(0, 0) - PBMap::SetMapServer("http://t1.openseamap.org/seamark/") ;add a special osm overlay map PBMAP::SetMapScaleUnit(PBMAP::#SCALE_NAUTICAL) PBMap::AddMarker(49.0446828398, 2.0349812508, -1, @MyMarker()) @@ -1417,7 +1436,15 @@ CompilerIf #PB_Compiler_IsMainFile PBMap::LoadGpxFile(OpenFileRequester("Choose a file to load", "", "*.gpx", 0)) PBMap::ZoomToArea() ; <-To center the view, and zoom on the tracks Case #Gdt_AddMarker - PBMap:: AddMarker(ValD(GetGadgetText(#String_0)), ValD(GetGadgetText(#String_1)), RGBA(Random(255), Random(255), Random(255), 255), @MyMarker()) + PBMap::AddMarker(ValD(GetGadgetText(#String_0)), ValD(GetGadgetText(#String_1)), RGBA(Random(255), Random(255), Random(255), 255), @MyMarker()) + Case #Gdt_AddOpenseaMap + If OpenSeaMap = 0 + OpenSeaMap = PBMap::AddMapServerLayer("OpenSeaMap", 2, "http://t1.openseamap.org/seamark/") ;add a special osm overlay map + Else + PBMap::DeleteLayer(OpenSeaMap) + OpenSeaMap = 0 + EndIf + PBMAP::Refresh() EndSelect Case #PB_Event_SizeWindow ResizeAll() @@ -1426,10 +1453,11 @@ CompilerIf #PB_Compiler_IsMainFile PBMap::Quit() EndIf - + CompilerEndIf ; IDE Options = PureBasic 5.50 (Windows - x64) -; CursorPosition = 8 +; CursorPosition = 310 +; FirstLine = 291 ; Folding = ----------- ; EnableThread ; EnableXP From 0dc468fbbb1138b6960d8324914c10468a3ef78b Mon Sep 17 00:00:00 2001 From: djes Date: Fri, 9 Sep 2016 16:06:49 +0200 Subject: [PATCH 46/62] Cleanup --- PBMap.pb | 41 +++++------------------------------------ 1 file changed, 5 insertions(+), 36 deletions(-) diff --git a/PBMap.pb b/PBMap.pb index be6e992..113588d 100644 --- a/PBMap.pb +++ b/PBMap.pb @@ -460,9 +460,7 @@ Module PBMap EndIf *Pixel\y = PBMap\Drawing\CenterY + (py - PBMap\PixelCoordinates\y) EndProcedure - - - + ; HaversineAlgorithm ; http://andrew.hedges.name/experiments/haversine/ Procedure.d HaversineInKM(*posA.GeographicCoordinates, *posB.GeographicCoordinates) @@ -485,26 +483,17 @@ Module PBMap Protected mapWidth.l = Pow(2, Zoom + 8) Protected mapHeight.l = Pow(2, Zoom + 8) Protected x1.l,y1.l - ; get x value x1 = (*Location\Longitude+180)*(mapWidth/360) ; convert from degrees To radians Protected latRad.d = *Location\Latitude*#PI/180; Protected mercN.d = Log(Tan((#PI/4)+(latRad/2))); y1 = (mapHeight/2)-(mapWidth*mercN/(2*#PI)) ; - ; Debug "location" - ; Debug x1 - ; Debug y1 Protected x2.l, y2.l - ; get x value x2 = (PBMap\GeographicCoordinates\Longitude+180)*(mapWidth/360) ; convert from degrees To radians latRad = PBMap\GeographicCoordinates\Latitude*#PI/180; - ; get y value mercN = Log(Tan((#PI/4)+(latRad/2))) y2 = (mapHeight/2)-(mapWidth*mercN/(2*#PI)); - ; Debug "GeographicCoordinates" - ; Debug x1 - ; Debug y1 *Pixel\x=GadgetWidth(PBMap\Gadget)/2 - (x2-x1) *Pixel\y=GadgetHeight(PBMap\Gadget)/2 - (y2-y1) EndProcedure @@ -538,11 +527,7 @@ Module PBMap Next EndIf EndProcedure - - ; Procedure LoadErrorHandler() - ; MessageRequester("Error", "") - ; EndProcedure - + Procedure.i GetTileFromHDD(CacheFile.s) Protected nImage.i If FileSize(CacheFile) > 0 @@ -579,16 +564,6 @@ Module PBMap If *Buffer nImage = CatchImage(#PB_Any, *Buffer, MemorySize(*Buffer)) If IsImage(nImage) - ; Debug "url: " + TileURL - ; Debug "cache file: " + CacheFile - ; timg = LoadImage(#PB_Any,CacheFile) - ; If timg - ; StartDrawing(ImageOutput(timg)) - ; DrawImage(ImageID(nimage)) - ; StopDrawing() - ; SaveImage(timg, CacheFile, #PB_ImagePlugin_PNG) - ; FreeImage(timg) - ; Else If SaveImage(nImage, CacheFile, #PB_ImagePlugin_PNG, 0, 32) MyDebug("Loaded from web " + TileURL + " as CacheFile " + CacheFile, 3) Else @@ -764,18 +739,15 @@ Module PBMap EndProcedure Procedure DrawScale(*Drawing.DrawingParameters,x,y,alpha=80) - ;TODO Add Option and function to display Scale on Map Protected sunit.s - Protected Scale.d= 40075*Cos(Radian(PBMap\GeographicCoordinates\Latitude))/Pow(2,PBMap\Zoom) / 2 - + Protected Scale.d= 40075*Cos(Radian(PBMap\GeographicCoordinates\Latitude))/Pow(2,PBMap\Zoom) / 2 Select PBMap\Options\ScaleUnit Case #SCALE_Nautical Scale * 0.539957 sunit = " Nm" Case #SCALE_KM; sunit = " Km" - EndSelect - + EndSelect VectorFont(FontID(PBMap\Font), 10) VectorSourceColor(RGBA(0, 0, 0,alpha)) MovePathCursor(x,y) @@ -1333,8 +1305,6 @@ CompilerIf #PB_Compiler_IsMainFile EndStructure Procedure UpdateLocation(*Location.Location) - ; SetGadgetText(#String_0, StrD(0-(90-Mod((*Location\Latitude+90),180)))) - ; SetGadgetText(#String_1, StrD(0-(180-Mod((*Location\Longitude+180),360)))) SetGadgetText(#String_0, StrD(*Location\Latitude)) SetGadgetText(#String_1, StrD(*Location\Longitude)) ProcedureReturn 0 @@ -1456,8 +1426,7 @@ CompilerIf #PB_Compiler_IsMainFile CompilerEndIf ; IDE Options = PureBasic 5.50 (Windows - x64) -; CursorPosition = 310 -; FirstLine = 291 +; CursorPosition = 1411 ; Folding = ----------- ; EnableThread ; EnableXP From f52092c7c6bbd47831e2277e980a72b47e3add6f Mon Sep 17 00:00:00 2001 From: djes Date: Fri, 9 Sep 2016 16:19:00 +0200 Subject: [PATCH 47/62] Update README.md --- README.md | 1 + 1 file changed, 1 insertion(+) diff --git a/README.md b/README.md index 39cd9e3..6e106cc 100644 --- a/README.md +++ b/README.md @@ -11,4 +11,5 @@ http://www.purebasic.fr/french/viewtopic.php?f=3&t=16160 (french) Contributors : Thyphoon djes +Idle Progi1984 From b7943d279b346f7c16cacd2738db69028e0a4d24 Mon Sep 17 00:00:00 2001 From: djes Date: Fri, 9 Sep 2016 17:20:30 +0200 Subject: [PATCH 48/62] Add files via upload --- screenshot.png | Bin 0 -> 545125 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 screenshot.png diff --git a/screenshot.png b/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..0f84c90843cf4a1641404c9e7453499f02287623 GIT binary patch literal 545125 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

U}1i1tP~;mz(nsDO>J|KIdq2I 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

=kL|gR1ty0cK<;0e^lcoi-gLQ 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%0A8~|;oc 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

Tv*joFr7>ksDNxK~@K)y4wKt&=ld?T?b_d za^9|jc|*=`DRXQ6V*>6jDTHT$sJ?}|9=k&-VNNnWhhA?04$@X8d0&&QNpI3BI&sK# zhiIAw77z%IC3Ph>n3b0+p5thC;QY-9g_WWPMNDeHXObw99t#1`i!%KHn+dE;OaMgt z*IdHH`=ZpeFlBu~WsVe?XJ;qc%QHcaRyflnRC(0g^prln#Cp`$Wx5zKkUigxGxDz> z{@l8a%cZ0~Ds~yoo&}h40@KVI6Mw0I*dI!l20Ij|Zg#?vYrTf4X0LkBWAW5V&)cWzs7^Gq-dVw4(l~@=h0N7`Xdzi8YHcuFa^^ zAR*q~Noz^nMrcV%NBwS`N?oh99634~{L)@Ei4d3CKKtPN{#Zp z_oMw5cs?Th`1do9Ek@bG$~ZAcQfjpS#2PIJ*6P8<`nC66c{PQonkGl&ROU~xn=eTW11sIs zQ%G`^wY2;sEme3nHXb=PY%lSAF`2s9Sj;t;vYTRJAs2WB&TA;^iz{B@Zz6IQ(|dV^ zq&CCkBtC2%9O8(<-+~6Tr#UyYp~W~-(0uT>A>m#f>3Eq1)VG%RE(V`6u+%8oWQvcJ zIi?WE&wuoK2H5$@Vcv_h>L=78*7x2s4h9bdlL|}Ga?oSE<&BM)S+i1ujY)CK9BliT zWaGgePj+LDbYq9et3`zhJGJ08UbL#MDkbU}mDgKGXRGb?W6(C<@J+yB6nqvjzL>E6 z7+ultJ^hpUSd<&bDbC+SnUI+n#^N@C@cV*sxp(XDp-jys&hzjz!2oB6 zzk-A=cV~GT83h^6WtmcF+F5Sk+!>zU*t`DxGmMWaeNQcOqNJp~{H^>@I^M80zpfhJ z3a7;(?}0e|%ebokZsdO=S>S(T^{|L#oF!Ciq<=jv!%)~kNqfUrTz1lCk^Lrn{+`&#*2*X-yzryI z^`slu{h}44Q{kmCM)&?C?fTh)z4R1NE(}JU%!2(@IY` z;Hajjz|S=NV%JvrZIlQ;SZLfWiil3H&@yI+Y90x_8T}U zSZlXc97QHqNfytsnd^kbsiG$ zuvX|Mk2NWp$K9k-kHQ{ z$j4kyQ{BxKW@=6N&HMR<@ttaND5CReagb?7=3KH^~Bc=OK{`M`32 z%TE&}Z@r>8%QoXuiqQ_GvM)eMijWBh+sXFHx8=AD`pfCRj>&&E`YiVj*LnEa^N(I z!RGwbTVXL7AMi2W4c?+tvj?&H#u0XyuYOBYi}aEk$(_QBUi`;JkMH@lL?WPE-K#LASp;Q2Npmh=B3YUP^c zil_Fl$W5ky&SnhN|22kHIZS7dt2?(X3Cj_x*&!7)7wGYSG+k44U2WIhVPo5DY&&Ue zH@0oFX__{+?Z&ok+iGk(`Oo`}@n7WPjFF2o_IdWR)|zv!IbRXWYNWOIy{VPhAM9}L2&*Ik#DzP7v_B9nhN@NH# z`0G`;#N(A4Ul;RN+tn+QG9`waH?W`GamYU$4%QuHbleHagLP*IkLdP#kj?H)Vj_q< zhQ_V1{WJ~S@4BpizDn?B$z_48a<)5q1J+5{+B;3?&?`CllB|EeUncC!9NH{k*bxRB zeOC5g$g7ig7&B{YdLQJh>C8-)_Wua5#4LVz+}3!QJZ}e=lKC-r3xtQ&GvI)NxZbo{SlciM1S+@UEV?nZDni1X6b`F z`!hQPy7_MQcfey?Fmqn?iH84;3#gBV0=jgTJC#AF)_TAx1chD5&kqSe>Ln#@*nL*l z*;)ic!5DA^7eNWB>`q{S4g&KrTW+bp*nUM3|BAMU(C5sqfL0EgOez8D_O)Uw~#oIlD>k z6?7F6CV>Q;u0YkijQ8UJ38!px=Amk?_#*k`pp^L3HMW(X4RMfvK%l~vCS(0!3Bk-i zo>f+v?a0BNdRKx#)92&Na2yew)*$qRqJ6M@upB`wX^PoYITl$wqE5Kelyoh6?Olp* zZf=RQzA|XqYSk2N5undhsH4}BP^zV` zBalRaZ~WpJ2j%bdKChwkNdp}TfT>G8_{mn@;=`uP=_E&Odj zKBW5Z{jMt^UFKc{zC2Fz$a)*JsK~i2?-%hT-%0hJ-*4~q9 zV&>XW7UL)(DPe21C(rv4`JERwmNowPh|})1wXg0KHubxFXkFe=J~S6()~S_>p8u-sJNCK%))uxIPG7bz7W6rUhoW>ktHq(k);5u7vkq3mKeO11rb$swd$}<;|K>-9~ zaQ49j%`{`~J+ta#wK3Y*WTSjZX4<@xdr6gfNR`KWa+!P{XGs)UCQwcA41?(G=~Hsv zzNE4mEJ0!oNKs~Bnrp1<3y~7Si7NT_O%8Bw&9-IqNV54D1Ql(`auBe+we%D9p!#ui z^yl{)1gGOlP>De#(G^6XJ;cQkdov)cj+ta;H%FVSszkEQQsutsZiW9F z9<8^C&Z*(m!G_71?V~GjqXHB(eav#sps?>oD=?skxi+pJ1`XiG8?xMlzJlV;I#gG8 zqk!lb)AU6EN=+63VI#F3MiC@|E=hUrOa&j@5D@s|lIxvZa&$y7LT7DL|4(t(xCWLr zbxX6BE9~`st}Ti+JRRspW`24DZYX%da<_3B;pMa9rg=YtP)D|;MiUvwj%VWV;UIXi{p^v<796CY8hvYER zY7HC3%hL#^;pG!>V|Hddzx|Rcrs2qwB#u^Jba6Ped&ElqGzJ5yj)^i4rZi(A85j&g zS_9iitN}xBsc$MQLDdy;0{mcYtYa26Vk8%$-zQXACET9E{b_On{h@YtlgoaTijdNZVsd zn!XzPIHq_Pt8D7LOgRsDnt){psIgkJj^lYxGypu71W*#jRq74CmKVj&*3vHZyq#d! z30#_17uAT#U?+=7NfNB!Co^~C+sfyq_?epaYU=dD2j>^xL+GSNi)!O{{3D@DFfbG& zf-sXjdDIV9#rZcNjO6&rW)GGB^uhi4L>%7L?V(Dj{cJ< ztR_m{X-7s4kfz+U3G5d+>=#`8lc);mi|X~tOsz5CTn`W$ZnEAzVJRXpT2>10>X}g|zMVYzRI+iWtDb$ZC0# zX?$|PMT><-Id^3SSQDr!3R+x%#{5dXHZ>lNE#~w=Fee0*6GP3cZ<|3$g(a+gS3nF7 zv56)TK;0_lHjD{Z;ev;fsb^@FQYvm)q(@wmWR^N;%ib(j@!-i$fbEG!^+YfR5txUE zP=>}Xt5i^V(S<|VtTzl+?Kim&g4PY?3(izMw}Eaf23=8!!&8o$CBw-j5R{rvlzoUT>F} zV`sZH>`zDO?QgzHQzeqa;*rBxQ`mEGO5}5-b9II&r6!CvGOViR-h`2jIhU4_g!s|G zW_t&EG9?vp)YsRXWzmX|>Hwe`3;+lcHVP#|b9U!5{{-Ie5L_IW4Nx-@vC7A4@JRXC(1VN$C*3W-E zo6>m|SR5#A#$tz%zShXm^XzU`q1ZKmsLamSi$iSsMaCBT$0zcOdysKbhV@w5_2FwU z4}ASt)pz^X&?>*IM(@a$I&?so13^rm%g%?}Ps|SlLT%I)%HZ8Xo0~-u=1E!4b1d&q z$-@}Cx%bfY4I#yMqJgq>eE6K@fZ#G_DJUc1Fmfhh}P0rq`oRU|>~ z+2!3druO7zF#=9WNTd7Q9$iCAFbzcU|7!uF3*rS{KK!G5XO5W)hjz`EOA<1*x`ccfy?!Mdx}0VY5*1a|I>QBIaAenuHt z2Nq4U65R5S;1B)lAf>PSim%S$MTI&Noo51M-df5iT1mIB?*JXaP&YI0cWf{~I!-#M zk)bbjjs1tBi5fEUzl#9x7ms3rcZByT^_NsCaN#`@{NgdkYy0fik)iRy17jCi4+8_x z$VPwJ=$d$-t0hl2_1xVpENkLt?3!};pvxo`G)PETBPo?+0sC#>VPaKvj|PAd0|yo1 zgq;LI!LdYhhD?RBQnE0?Pcvrzsdn>wi49)V?tx7gO7p+R!lALwHq`fqbj&9|5Nm@#6R zcTXB|++t9%a>xc^g3m#d zJ6WaqE*u(afTg|d(^`B3Rb~rjQ~lkvSTzYmU3SCB<;VS{LDzei0RaKi#+eYaowg+7 ztIrh<@lQi}tU&)a+>J?)DAcO(adO~KiFw6O4G@T{OggN>c|%H5*itlc+fF~0snc{7 zq~X{GBD6GH9VWDGIH89%l~Sp%4w)}yeh@65?^1eti#{ z=Xpy^uNXg>|GPa+hQ-D~Qv~J$$$x>YdyuO`VR;VT776rY`T69}<6I=oUOPNo#ptWr7q! zLjD?GHl{e$>em;)#J-9|4^mT6Rarp>cJfVjUOa57FO|Ps|BU`p)!{b*`Umj44X5*o zbL6iYemS*HvtUC`1as^FDDakf+(`;#zTOpo`~zV%dT|q`BBgN_fmqu7n|kjRNWaqr zktkV;)qp(8%RK+Zx-nY!!DGwRFI)FdQ5$cG8P#-E*Z3-rN5QJ^ht}l@vexTUOwP@) zj&XFygPd}PXpWrP1|N?|@WGRC*IHjJH+Rx6IQT!ehT6R1E)>e(Mt_B4nM&VF`i*?` z7x&}r?^0d@WA5&!j0IDDQM*j*z`mUo)T2C zLi#?guU$1f6m3+0nrY=FBub$xAAWIo#kIC`hKyD+`{$#kTVq|XQeplmKK7WwpNp3= zODRgp1ep!J_YQ2|z?hA1ql-t7OiKlCF$W1-!lCF%CVKT4gji6!st4>`PC;~ETV!ny z`C0iycXJ69;>N@lSW*}t)5?Ny2`Th^^iU_j5C;pkfdwHw0nq^-0BXaCttzrBaX8sd zf?bQ)(iPGre{D>{udeSQlSbN;)f9QCK67!LtUgqwEf(%AM1E0)W3lt$PZu~Ozazf5 zfeu>yl}%k+{$6$XoV*lYwxpT%&F|lySNymgaZ=QkCp~)lAD^=H0+U1Dh&QZ6a5vlC zJW%RUN^~cm|N3(#qT)q~Q~8Iqvw2T`P0RZ|)eC@UbgxL{OXj&jXuNsTubo`X#XuYa-uEuXTVw?9X@ zoC@mf2&d7#eIw2^ZJ}+P^#WiBj#-gM=C87HhH<+!*|21+Ce<%m47o)n3u71bw1k#e z$7=-!=8bfI|CTT;ExnC=L3B&m$;>!9IUa+C02%a~t%-DPMdMuQa5{uNUYL7zInxQk)<`8sZa|EVkuD=l>f18~p| zp@h8U>dLp>^T}})D=Xl1twlbciFvOl+lXG*`X2qR2dhxJwN)0gWl0NZj7o-%IRqx? zzXr{Pd-)Qu^LZMSLXsD&cxh)84i}XCLvh;LgGXggm!>+!PX|#wq5YohDk?qS&U|@_ zQ4xMpzp|T?$K!TeQs52F(F2~o>XbX%qzGc3ChuSM77i;?3<%2}cE1f~-8dTM;-08FPm@qCbyQ^xYH{BD-D!K*T`@Av+)(fEO6laUcGOA7+rE$FbhwHQiNu zJ>1rKV};e1*<{Mcjb(UQs?j!9mg(s~<*$<~MQ~`jT1~G8@+{!NqNeA|QizD{`NNqY zQ}Gg$g11LQ0&yD#F;bw-o!9#(F5kN;M5V8@yL_AlT&h;u-B3~q?-owIrM1y@|Eo%< z2V+zPoN%bBzOEc1b6sZ zY7{{1^n!nX@5*S?f+V1SzxO2@h5>mKJlosRdErZ?MyM;nnv*R==(`E1$RrJ{eL153 zE5>6>sP9us)5we(NoYP-y~M=QUh_cp`SjkBJo$E-zNRmD7&m(w{Jq@Lnoys8T(M`5 zO@;!bibA}^Ha|npw%OG5*EMg?DMcE(K^M;}O0hu~FgzizdOMXysB%bW z+iTn~>Dzlp{0; zmSsxvSR@(UvQ3 z_j1%X?YkbjN5Y$IcB_F{G;D}Jfx8+6-GC%BwD|Fpf4t+eY zha0qC)1}4zEY&QskG{fK6jQ;1!a6dHGNCo8Ti*Q|t+iUmh{(o+jt;rTDitJQkfb|I z-5SY02T}@fHQ8EO*)b^|?_`Qk@xQSH1WgCr1dgbWQ52k_-JopvtZ$a~C0$56gFT)? z6{AwNh{q&9!KKhv2aKVnfxwFk*WNK8P}3e;$>4V#K}ocU)KN&tv5dp5~6)0&tJcci$Rp zFZ+X!b`S%}6Q*RMZ~b&cp+aGYoT+rH!;Pb0Ctn7OO=NzA^*g&nv0TVdZUz{onKOFO zr{ZF8j0NpxnS^cmoHI;#JPLZ^^)?jr_VzE4_>b#AV`-p>*%ADg!1Y|U}({1>aP7;WR7^e-;vxqwFv{*)@z)vK)k#yVTe!ZXoZ2| z*TX~fX#ZUM&$E(jgol9R(P$92V?~T&R*{d>YK9on*J`#fk$UxK^(g`@)>;)N4O>?# z4G58;7iwYNz=@p>YrbDZyb!|YuK6*QEsCtB4ht}MFsopVGZc^gk>AlQ$}Pi~C>`KG zy~$Yxr;SL6}v4I%vnm0J$s#Uyr_Rm8w<_*9MKV$)h!Rx`l(lCb~ z>h4NU`{uoAbtm(#2v!xZ~kWR^+a_g#6Au+qHKYRk{4D%Q z<=L2pTAT--fZ@CXPVf$k-VgTuf2=gKx8<4F_=6+(j?@YmEf1N`~>btWw);}(sg2LvGVFpC)Iq?i%=0vth94zbwSMg z)F9jR-HDI^SfI-i0k-?Muq5P9o7q&l;d*X3IElmyu)osf{A@|evw;%sF-3VcaO|Cp zHJ75Y4F{N-5+io=fE1}=x7uU=oXt(sCL3W40Kn)|dAMTrTCMgTi;fyIERe|oyLz49 zW4MV>#rxRn!qBe0F-P1!-!E2EYA$G&cK2Ohjd7&DD(@{mW3w^w_Zci7$ozAT^Tnv& zRwcg>E@-yg-)0#=%Jx~Orou@~m!hNvyFMiPtrOsi2MC|txnK(kqI~%?@ZXVd+6qKV zND+j_OT#9%)F}2VZhGWH>3ZB{lJ5wL8R^{1>N4AJ(sAgxzfNqLfAl}BM_%@gk1|<{ zs<43rph0eL&30Pf3%@zT^t40{lzoYX)~Nn&ZNTg9NaTJvXdSJYrWx*(iF?s$v(^Vc z_53s*i`?G&QCe0>-;;t&fk$fdtFKdh$jAF8={_ElZV(z86evX_XcI7sH~$jHm4vm2 zsrSVY#KSlBz!z5puR^QO+#l2Gi0L=?CW)h%VE^yq@7^4lExMspzlFd#5+?;oxjyNfLt1?Y+YdUogvXoWI`&F=cpR`@H(8yL)mEYLA17wGYEbD%j5 z0*_RO-#-!@fHn1U%hQCJz~0vG z9PCfyzF>!%R20mVkgQqVeAr%umn^B?FezgFs?=^*dC$-EYfoR@pHwMKrJ6tDFgFI( znrxUH1mzQPlcwlOk1&<-r$7wQ6tUQfOUe5PGiqV5k(aCnL*TKV{+Dm$2RfO^U-#m2 zr7W8(#sHv=my`f%1|A{(3y>}4;M)O~gM}=c&L!BgA9)focpNEV27#V%1Bz<}aSB@i zAl{@*jQ#B^<+-6AA@SLQ9DXi{m$CvO22qDzYNym@n{&3f!|kxD|Ii^RWSXU}EM}#( zlDx8zB`s)pLUXhrZ~((eP1WW-uBv?G4XR>M_1SJ=$IHWszIB=>2VL0{KdG-4Trd8 zX@jEXw~u$Ht>05n!1-l#8%UyPl{O*PC+25o|9)Ei09MN~NUxW4d0ZnY!4?l|es5js z04!Ga;h8v21b_#&UoY?jpM&`32Gf)R$K} zX^a^+sfj+E;^-{zmy~G4@YtWF&O`fj+A|X{o{q%RzZA`l;wb+}F_w=%^TVY%N9^^4 z%1RjnNJ=}5(mDg*m%a$tH~B5{6cz0PF*F$Kh|ZFcZ;jS&ndyZ}LH$)DVqzP5o7 zs1cKYcsk>=?`uIL${x(xe;pU;t{DeeCP+*8&IvSc*RUBsA81elES~0GvALy>Co}+q)M@oY~aWd@N4!dyeRB z6mv(ZdORaLbec{uFeNm;YMV^90#FLgj-Y>BY zyb8zmuG^r17{vH}DRHjBp}$N1n9Xl8;LYQ5T@UXP|Gfw&A(be5=;7ZpS3pXtUAtsW ztkQD6X6ip?$o>6KI2T68Z%vUbQI2{5NuN9h`#=2)!_p5w?CE` zs?X^|_HA|42p^|o;$yq1yv3>--R+Ktgi=vNcM7B8<*Blt595iD=Vlv|f56H-N)8Qq zoL^K_RTcMu2Z0!|dnYIMC_(Y#gd!~>VO8htqqIC583oqy%1VVSlVVYf`T+Yh{Oxg+ zb$ioaM3IZOM1&8|T0o3jrh`3WrQVQJLi+>H(uw*&!zm~Q%FjbqvC75ZcIBGS-=yQp z_;$))`DrhE9T>c(dhy%5p4vKUxq*{(X*cMyS?Gm2-30A9^ALa71aN5)*PWdB{>Xtd zw2OfTFY=rjDlE>zV(Lu!8al&wS@PWTSZJ~69LeH|TEKUS>hJ+a4igg#2qQwJD&Z_v zGVpgy`b}6A^7-fA4de^G#oir$GF0kex4zH{e5ZPU4rm#~*<7{_=@p~bemW=a9|=C} zJ3I()Ei5Z4{E37>MP16v%X>3FH`V{T8#xh)UCx_*X_24=(pM^`@i5fVxABA5dSJki zZ8q_-T-ax`c_<9k&dkL2A60Kd2bnWC0)ZUxovzN+Uw5s{&o97{?8`$DK98_{+{pYd z?Vm=H0mJqNd2fG1L%r-Rd@^LP>kFa7#VdxXg%&^S*Rbm*qVqwpZql91I;>{jrXP8*(1XUK+bf92k;OGuF2KxJXO7Od>LH)_DBy4Um_G z2k2X$Q-3Rf1x~HM+1!Bx-FfL?#>tnsb(S-NK79LY8y*|0DtKK-2W|HHcc%~?*DpFk zx6_m!Zi-+i^=mpy0Wl=fCCwLsKY50O3yfz!0#Kv3KD(EaGWl-r|EHMY$y9 zRavic0%$!I#YvJ17EigUgvLiiYy==w3ehg|Lq2q=_9$CcOHX=5IqabdBWK@n{Lwo} z)NNM{=FHk)Y5J=d#A-^wA>&X|y&`jE6Gw&mb_bu$-b<&&;b*1zPJnc#al_ zp0@16^UuFKkv8dw!1{v5F*3iVr#Io}Lb~C3E5Go?q)#xPgN7*TlwA{Lx zzyr4zG|Z;BhX#zP$6PX9Y0uV6?R+<^?US;qu7y&2%>3+6KZ)M} zfU)aLwLotCJjEx62wHmdihz!emo^YmbjR1+8Pr)0JATEhSgG|ww>US+H0b`u!}55u$IBkD18YD zAMqqM#TTh5!77dLJboI9GKLVhd9tK=l?9glFq`oP5(MPB62#W$x&;1Wm8>R>*O-u}5P1x&vVw}FBc))q(>N~qqW**Ml9`Vgx#Mh> zhV5DwPk-aNpZ@A0dFI_jWu-$>wx0X!{8!{NwwnS6cenFS3(;ByUS`8GVL5P zM{s6@J{E*NM}#5f@*7p2UYvC;@z#Iu){Y}#X9x%{OZ3^##s6_CHSyUvc*MN6*OiYV zhLSl9EO;K+@#+>?&oS<-l#u%)+`g~LT`Nx~FHx9u2TU6#ErcbULaw=`N8YV5r>Sc1 z1bhxODdJ>@0PxT5%;UZAq~9NwBBkWG6pr!$!r&pF8Y6s1>fV*leTFVfUs=@|V}kSn zq@4Ie9@W~Y)P-ohXiUSGIdTEvZwPJjkAd8NrMsCTWP)qHmV)&DVF5;;`rjDDUE$cx zN;yOnObY%G+%rECGqNEoft)-AZ(D0=89Cc)Gs=eVf4dXxgZL6DaL={?a3UePH-@YP zJKTs6lFv?gh$;?Lvrp`3;s=sCsc+caYcrbSD1ZtGdzqOf`zrPq;I#F00iF>6N^A{xxE5J+;g4q*ig=YpG-FbJN3recAFi zu1Bo5wqPE9AI~-?6fbG9U z-&J)8E|eHlI3{L)Ank30{VGP%xR^}j4p}6od*@E1hCnMQ7oVQTKtbB=&v=Q{_1rb4uOY*LZjG8Nr#A_Z|sR~Zai4M*H=q+7s_Q{k`0NyT6fTvG`L2+`qFD8iBj z3MJ5?O96q0PxxtEy9YhrC8#3QICKW8`6W<>C#y0#k^kF|2sP3~);Q@k=I&`kXo(T| zXQGt|8%B?bMO}L~i3CVX<4znRAxD~`>25VD?Y&7Saq)m4BwTT*LGkS(&o|a#(@bSU zu=)OGT)4wJEudQr1w^%k)N;(o(H=9FFhc;;YfZ4k zg2f$P_xDR2pC6SzpVv?E@Ct&*@OE|Y!N_vchtP0*H`hI}X$xg>Tz(5D7nN(Zl5(j$ zCWviL5d9}$!We$D^&5~SDgUnpSgJux|A($Pa=EVUZ2)jZiIc~cCx~RE?5?_N0hq<%7WtD{WSvF%NeDXG4$XZ=h} zajSh$Hw^D}u}MG>$%YK9`xrE32oQZ7%0}K|r9=|MQoPrGH0D&9^mIRvNUu_5ZM{BV z5vnkDw>c_=QyR6+u0o-MpQ6ySkWN~WIq^je$( z52-ARcK_mhZH9Cf*%)|JJIp>d^Vc$m2$2pjXaHajEt)F1y zTSiB1pMQFSX&I%;1hcLEqk^IxB0}VoqjZ)1q%4|3OD);5w}_G*H5ObWI(YSaCx+Fa zxwuo%>dhdueACJ4X)%6^9QGSjpet`?Jgdt0Q7J8TWlhFD<_JYdu{+6rkD*$akR307 zW8a7zsrl0es!J-T|F%r?cwFCMU&Rwl=RmVuV#{EPIqI3b0qE3g&=j#<*a*^X+^OG0 z2e5wG{jv3l1oW2)>AfveonwD+bWG|jzvVsN)urq7ZsnHXyY2ZfeUurQ{<|w)dhYa| z3)GaH9Od?!OKAc~5ks;6x*q#(cX`LV-Z!ioe40~(Owtuq$}}h)UT7b8>2_?YaG!59 zhF@^Jw|;c$L#CeKr#ISe1_Pls_ocf~*mp}qGUE7s64djx^cgwcd!nCSeTabLirJ_8 zeximE&H=Xq=!9nWiTc_R@)j0p5KsUm)Kn6Zkb2PzT>U5bAuk>+noQz#+#)QktDt5L zBoRUA!)sNcppGID_2@ADjca)Yj~KI&hb;-u=$K!(G^hK`)xlK2MWZ@J$~@ko3ME;- zwq4R8L&(ch9Z9x9>fQ2S%Q@>_5(%30ymbc)(>)5D4xY!erxPw-{*t%WJS?p@5Fp05% ztFt7#EyVwf$zGZMVDqDjp2o&LOjJc1CQ`FC>@O;0HDCxq!rt5FXNI|bY`F!}Q~+bl za09!RjIeWm&NLS8b7+Tp$m6#g1&QGo%~4@iuEgeo=62b*#;H$i!cO)yQ|~8a6vJ|v zQ>9|uXAiHNjonuMX)bo3odj}KwZVI}a6q zpWDT{vd3*Q<^WFAV{~LBgs`8VAIN9UOXQ!IpzGj@vmzB+S(YIWu${h!Z{V-B0LSPs ztb&Oi*1IGK4>U6DK>FSPYn*X-`&TT~aXaYxGT`7_XVlYsb+_kla+@_I^oIH(^fqYT zQalF>rMHO!1W$6erDVDSd7v!QjOXc2ITC2pLQAVefvBiN><|_t4a0P6Ft5rSbHv!y5TmYRnqQzC2a;mPTGod+*n{?SK{kh|9%OEpXS3v}s3?$m zI4Fj>545_esc|@Ye*GiWvVW+Cbf_10v=Jf99E{(YbdTJ&hBkiTc_dWrFD=jw>L@U7 z(f3U5Bjx{M{a%(S+0!6H;|C1Mpj46Wzikz)3uTOWANbjV0R=-yn34bH=ucVYAs(R@ z$eV8oGG)VbbDBDp`dT8jvuDkX%!@PCWV`~I+9dw4Bs#lZlSmNGQBRbB;Kc_Z5evim!tq~{ANTn5}X0CMd zt?4ehAu<{gU^7EH!cag;eRKE`NV5ap(j_}0AGl6I@edp+IT%t7p0o&B?sC8o;o@O+ z%_kFAK3M`!x=W~@Pye#=d_bRz_0a3gLW0ikRyyq_>(Xz_MLXm<%rsUUON)RZI2eEl zt3`n{(k2J_X8KqmL4VvQOWNZy2-I4QrR5&S&g72}ZJvd5pG+@UJ8UErOCbOusu`Q6 zM&hQ+f_*X-cTO+T93xXo!4xgy$<~(glTK_q%r!4|gxOG>x=uvzI9B8X8{SKNdlzf8zZnawdKOTCt+S^auxIZr)j# zz)E^;ycmB8DaA{ml5*#-9iTawpOaEY74@eZ;H{`=qv7Hr7ByGDAfe+K&Bw)LfU-`m zN{w^I-xFh=o~v2=ufJp5OY_(A)nE41v(sZDY8+V!tJM>y7H8+%Qd(Ly@k%9oM9w9< z)n>Tvvz8tH%h`G&zng0ip4(|ZcMx(r)wP}b<+G`_R7RbGEjDom5rTxqnVpEsPQ}}& z6&DTX?$`LbWtfqC;$bQWM=H%ky2tu&;&!2$Jh`xtiVRg%QS(x&uMbc!yj9IFFAO@3 zFhSMc_tqjPQgLs0bBc(fOr?J@zTl^>6QoPVak>k;gDl(uUXW>%u`Wj2Mp_!Qu+FoR zVpCtHjb+-(kwWSEphY2wv&=RE3ir7gaRQqNehXPI^ z0_xrX=-Ob@H&QpZ7H|<_fiUzHlZN|beW#txIdYY-^*7`D;Jqk%uu8dEa;(~+-UK{M z+sDS0#J2S{KPdP0!A! zq#JbK@=x7DK|O~FPK%3b9d&LJi8#vAIz4z{ySuu=1YLprrIQj93+ImS4g8LsYJmdH z`V7*(?`_m0-)Jk@GRkYq&6aw*%HzTk9C=$PgjMC3<1n7UqTR)l=F)mmT1ynL5X0l> z;}eQ(N;ycd{1%s82hVbs9A$s}{?o0R^s}Z=vf%H2+2dR1?lOz)>fkR0g66X-Dj{V} z+|BR|`>eU=i&M^kme#Y^n#HdNE5&DA>lvE$>@6=)Lo3)t9Pkp+H?+Zn$R|{CQldCdZ_9UAf<|Kx#vGv`_RaTH zqH6$`v#dhXr+X9uIebV#Tu!N{9x29pm3zAvX|WP%Vi0uXn*5J-Ut0$Dd;eLxogcCX zc8W1C9UvGrOSr6B=c|TxxS-WF=*?+#J2^i+vO~Zbh5k})|V@p!VX-VXWfCYA0GKpH!h{}p?gSIbDkE5iW?<4TC4&z5mHzu`3Wx1Lf(^j(5 zw1zrAR!>4P%^<}=?|^tLvCkQZA9)k!CdlIVx;a@W8yg+Xi7r!vjl2MbkQ`&;mt@8_CRGNL!on=UO3JV#GYIpgeC@jf$K`cJvfU z?mqpuM*EGKVQCj;t+3{5La+mA&{e4*YeH0j!UoX=mgI}8$S2L`rT#59V zP#NUe?QZTH`M@yLgKe;yh)FlUYMIs$508v^eLNpd@f>E9mX@9^aMPlMie&|SJZEHN z{1lgpLFEM{8bKQ#G2fjnt$Rw|>giQZ6U~uh>w4X5LhqbePn0y+t+@#K*LV-+eSZ`| zLMmu3w5sF6+h$w%F0Ni<)S!OxR`5E%dhMsT!D>%fm7zx{@q5wVzQxze@icjoupwzI z`3u;ao%m$v*iWXeGs}$xk2eqeE=DTYP}Jx(O4UZ);%==HDT3iPK#w7+ zlTaM9PWy2dw{}ZP$1e8_9zQk*FIa zXE3u|T!T-m(8Lw-XL;Ey`qEw@^jrzOTtkH?(?d_st|M$O>NsTb)D<-quTjF3Z#Sx> zQIt^horKA0NtIEPQGPKpVc?~Nfl@8P0!B<(Q7@G1!SVOh=b#cq;_uGtrn3AddCugy zHe5eJ&TvoLKS3kbz!6S?< zsu95FxW96WO7n7O8Edl8r!8m!=8N<74QJz1k3%N023zl^T~*#l-Ff2S`kp&bWec=n z#xh|%dbSo-Y6*u)>eMPhJGKf`#T2R(qTr6pDVFR#+T2WCnlvYek{f+tsd<^JbcWP zJlqN}ObT#Voe3=t?3glJ@oRk73@@Z*a@fFgf5)bu!r$VNt^7O9@Uw?vJs{_>>g;;V&?T~t~g932^jQ%V3gbpVhDnz(%g?f-k4vo)vCcR0nYlf+~oPp47Q)Bzfo6oA(nVRYL zOY#8Rm^(o`d~JCA6Z`}p!R1*KOprVZ8Z3uq_dZPEHY)~u=P%}%0XXW8sd&I7@{tLJOJL`^%lA-%AZ zqqZd*MqlX`%b(d3WhOGT*xX)@Lt<^MY?*G>xa^L&%^!5*v_I{Nb!bW}T^ zcEiV#nYxaP(sdb^K=#1;%}B>wpM`$h%9A>>#Z zQLNcVtvo(gT5v&iwdLVtCLQtnY1nUKRB_a9bq&4yX;Ea5l1_`>Ra-eOw4iU$5y7g} zXchw<{WTto*SbNYS&x(j9F##0;IrIPNW&v`yUxlD4&?EB1QtY&K z!4M7FS*|a#bk+`ypGoqho^=pw2&P?eIr}AB?8(m_Xjox(*%B)jY^1rdlN7DD>aMgI zaH1JtSIG(@L1**wSRWl}ue+ra>BteHcakXLfZjg zk@S`kf|&q7raC+Ez1YXsi$xZgGwQIlxWy%dhFxntt9Na*&ylcCKj%23JsGEQoQjGG zY?p|<)@b96UkB4QZ?tLGPjQvDmZF4-RuFS~#qNGGP1Y zwAJsDQi`9Qh<8(2Z<{}<P4{IRy-xEQ?iodD&a_s#+ZiX{&Ay6EN|xuingG~gRonON zqWRNmFhsunqApjLH$dA+%j%{d_5E=ZPD9)B6#PGL(Bfz$Au;@Tu@3g6?UEq=SWk`$ z4!$jmHpkxlINSOF|8lTQi~EaPaWP1%-g>~13lm-7Wgi2;S}O0_;=-=RuA?qFW^A}*fc{r$5`>mVi{IwM82}e)ad53tEy-CG zp}jfy{7Wf-KO56K#C$V^yno}~0gnbxd5j#4nK&NqX_A|UvcewMI!_g0GJRlhr%?O` z-l}Jm&{$Q0edSw=%_iHg8rYiOA9mmXSvT2Nx=sgw0{r$92>iWo{wqMIlz`6H)2FV0 zrMD}vt0_HbE?NQN?_dAV=I*x-{_a;XYVyt3=+Z1Ai^29>UAILAuwZY?q5C7&B#uA4 zgx;b1WoU6(mjFd#sWPqwzg_FB%;j+ElQ`(RIx}BLdKrD$<-OC8bOxMRJ>A!N3msn|9M<1XbI& zp9EOvE`P9(?%bP!Q;%z;Ecpv??%_$K7tVOf{*DH@J~SLXYIN!s*X}gnCGD(K%qon> zUTdC-yDW&9DUt5cb64mM&cVqG<^&_vT1H;V9%!q_vAT&9lcL78=@TNAaDzuRf+;1Q zILZtTgy9a06ba}G4^Po{P)K6Uro8)5iqH|q*79}v2gYT=*`}(re>yQGU@FyZgoJv* zw&>0?@R2Y4mQ8i2<+WxAqg(}@{%^W{Kdrq@-Rv%q+qc$a7Zu6DLVGdMC{$G)2Be@NoE;|&i0DUJ^IKA?Tw#9L-+qQW6uSsNRWN>yGX)GS^(cE5SO~# zSH-$twE2c@Oip4dllCP$^GQ8WUHyLtJ?l3bc_~o zl8h$xt0e3_Wir!LOl9$YoU!}Tr_Zxd&Yu5ceXdvM z=KpRu@X$GakE`JKcXIXp9(r*D?hk4z$CkKuJE=5)-S<9Z%>s8X5?kH7yG8_@{;Jl8 zY)qD`O8o6UnwFr|Zd$BJ=Fc%r_8)M1LO0}2dp^bK9}$f?#ClASGs|#)PlA;k^MDt| zsBt8ezmY!-uIgIuio}jCj;)>28j8H-QLUKU+U_P(67yGNhDZLYntsQXn^Uha;vtCj zQ#WZQTty8vS`o@)LIp_OH8e)ZM~t_vhXmpxt@w3~@%fO?6e9#fu(7c}IQ1uy(*Og> zjfB|&9ME>&Vf2K|N%V&(|0G2plTC2N5 z&MjYz9xaRPKisC;le!g)+6D#!xA^MGsS3HwA5**mN-8Q)f!}|r(o#_De(>kF6digx z1Nc)E>5#^?UDXn@<)`Q-$7<0qsxo3t$9@fKWkLxuVeaE5Hn&4$=lv}yq8vL_l(s^? zhx!WP1pTL$H59n7z6Kt9Z*o^feetigZr zzS-)uhQ+l9*Jq#sKVKqa@geBHPog7D*|YjO_5WIc_XF#P2~&|PB3?o5W}me)KFl&4 zIV56z4oJZf8NyGX_>Z?q_u)y>=w6CG!|Piedo*a0^ob=3qHoupd;+htahIJ>n;~o< z!5)dP-vK7u#J?(0N4fIBZO-X&mSS!xw2dK~$!ulF1U6H`4JP61R>$J{yxlb8FVq9_ z!lrJQ-`?P57&RTRECf?l!Y4A3ND{g$zR+3H4QwoWxljJ5a{YqQ`LC2P&2z>ba86rn;9{9|KI z8i9eAKc31JUYIl=vUZiu*p5z5A4X*cTe8?KZg_riarA539}JfHXsTjQWovu8k8uMc zh}!dHjJJ^4J1~~g;o{Haq})h1ZnNzF(_zy|MuF!A^w}A(7mn<);UvM5uIu@J{wI## zUCG49-oH2L)7NOHK+LC&?o;>Sd@e~Ibf3*xrG6H}x$!(!QL}Q=z`CK&? z6(s<=i7PJl2ju#{(g5lS#|J94>MPZU&K{N~vRb#Fy{tmGF7C|+0{>ymZf;Tz_cOuE z%{%jPSBi1!tV}x7A@&cU*M%906s(k^T5MM-<6|Of!EC#8`Hti>JqADNHF*Mt(Lf*ZN3LHg>r0cco!Os6>k6bVEK5spSU+yAo2P3# zt`+=Wri=EvDT+;vUzy9Qz5xpZSg%|;?Qd7Jq#rge`<1i*{9@|R!#h28UcplW^C8lI z%TI4S>umR_gXzYJ;*Pe<3Xq3p|vo;)s~O^F3He0(NF*OM=Dmhzj^(_kX~R>1AEGY`}}Yb-FA> zbILdbxtTI71B^b zsPRm9;snQ)vD>y1NJFja%8Ac;n;I%MD@qfJz5H}2* z+i(WG2pn>QVtMV!Xv&L2)0peS$))PAAHYo@n`d^KYr^Fy5Q4*4-43P?9Ty$? zw1D}1+)ZL*nZPZ#(&RoaQyTF1qrgxhCld}a#wyfw;vZ_vtXqt$=c8vv<>0Ox*Y3wu zsrtIFm$poy*{W7#{j?mvBQa;^P!7xMtu(qy$-Iz~UajcMI8@(6PI8Eu#NvYUp=5nG z(A?wO93?Wl*kePBFn^O}{NmjHKbiGM=Q=IZn;3~Ep>4|!GdKrFZ>F{H@QG{ybn%q< za~PsnV4c<8UL4G`!|CEgT@AE3v?L*J|Snn8%Rqx-}2700Rcqdu~JJla{T zTGvJsw*SW)U0~$=OL^V?GW`KQ{%8WW$yHF^%D5Z*mmqhImxk@2+^L{?G^NDJnWnzs zKi4^rrpn2tto+KdiQ)&)`2!XMi<(@0_8YK*)Af*!8oX?@n==lGR9F%1lGN+$h8i}R zlVA%K-&Pc_7uSFqq~rRd@73t;GU-4fi_viTe=s9bsL6$2-J>VXjkcj;;$g!1qe&GImM4-A`_6i$Ul5}~@7K9%YGCK-wrT_KS#Xx8BZ=HRfUt>c z?-5YzOeeVi?8_#1)`qhEu&l0-$)l#uys!$60zp^>Pil~XZ1!inK4X3tFzKL&7Ynv; zrwS$EuA0mNK}g7QI=&Zfml=aT$&GHcwq3ws)|4ZIovC)}j1r8yf>;Z6o&a|nxWMky*#Q%9g#DFX zSJ^q6IagUtzs=Gv!%HwgdnKsNwxK|ieV#$ej#WhiQLV#l*D(YySsv^U>&Xm^RC<{r z_Bi0n>)mH%jw=6Y^reK)lad{Q@fhfIDnyy*{%gMR%%XV~Jt7Tvg2f_;nVjK`A?_c-R8PWOzBSc~**!%6D*ee^3)qvZ| zMsW5aN#IJ|BGT%}X0n|X)|^odHq!N_J~KAPn-#bC93K~W9fgmunoOTx2ozdQ2xQcN zj|6-bj$nXD6Lhw#TT7EnS(n6_l;}fq-)jnFT&~sXaKVB43f)XPZcNQ&HFj^xGWri2 zvA;a3a)b%vJAzs<9oYJ5)Uw_-gq53lrmdZVp0j(7l2&M-~i}- zP8uBR=%@GlPboe2k8!*A z5^qEc)CfLbvuei0Wz$b2fAJrGoD~M+=aDKU0N<6I?5%8PSKUNp(!zVC=M8+vyrIRV z6WPM5E!mbMBNxwyVg@Qr{&eXJtDH2HxP=ObENlG{!xDUx_pk_2tZ(sC&8`lC;1;T& z8QWQ{N_08B(evSMr>lE@5(P(K4KfHr27?1?FohBiO%f;26ZuIgsDw#wN(_K63;h9| zSD+Wv4WF9y8PDxapWJ{KgJnIp1E*nP4PEws?WI&R%R1%7jGZ?_1fP4}9;C>IHZC%1 zLPmR~HkUx9_WEkj%1i27>Hengqb8F2Wp!}mt61{1+(>aCdEq4p z%%q}?h1#>qyW42y?I?J|T2iW?6ktZ=`~g8GN>A#~szFP|E0TKSb+2%TIgexR$c*J#Qc zMInn{_NR9Q5>c$5!^7!(YW5+zbCcah;DWutK3!1TH*mJ(+nex>Wx_Dx_WQcM&uflP zlnkvX*_S{mS?|3_IPV45g&BaZ^B_3JEZ{g{B8ae`?`CD}-$c>>vSC!y7epp^-WRDb z0P!#G-~Qn;!kSqV$88WHvl8{To=sMsTf9IYDV9!Mr5Fd5&~JkG$q{@xcw@{NBbrrL-9#FhR!pw^D{?ZC=mG^h zsi;>G0Wm_8?tC2Pdm!MenG}G0@Jt&WkWN^Dj~V^K^2MJVfV)$>ZZ7r2{-oHHT<%1t zqpW#+<0JwUKd=*N!e` zr>Rn)p*uZ2oshB-%7|*XKoW0K)tDe`DL14)$#`@etA3z;?MX(WKnOI3UC5;iLG7uH zqJx^5&lnX^R$d^N(c|YYQ#}oJpx=GbYujvGZ>FH&-b%%Yq2dykhU@@l|BluJ^Zpbl zZxQ3?2E+!d#~-iP@qpX$LN#{3LfA8o@EzQt{&ixX5w~~966^A!)p>_5wi5(TmqvvrVHke;L$;+{&}6_06I8W<)e zjdu7-LIVF4T1<(OfCQGd=}}IStNpd=YOw?}8n>YY!&f5-u}7#}hFe&1|K=z7OUA&a zv#d1OnVj?ig?Ow8iFA5ulG9@&Y3qa*7Nj=QWxDi<)O7n#GseO61b-Z`a(3U$BoRkm zfZcHXT@+YRh`hIPnce)GSNgA>3k+5DwiEv50D-fP3-FHVb=_b^$!_4{s09CNeOIpk zJ9EUA1HjUbV(NV}Xf7Oy9`DKYmle0NE*b$IuQ~pFDG`CrTRLy{MgT=%@-mL|HB(rV zurVFg7Q^G4EB(cIJ$E)jzvVIoY5te5bQjPe;RtPCVRt#&W4_zk=Pz1eVeka*j2R>& z0v;a@ZHr$T##*e#F7oxT*QdVeAcTY424{Dk_t=6di&k?z_G~%`aw+bC`uREP-7h24=d+$}$={I((kNu~^aNygov${MT{ia)6?*v%x}4lzf?}55ugmHkbl?Cj&#T*h zGTl>3?I@Q1&kL)~Mua6UiVmwnn;ErQrV@-wU_&XgdGOjITrQZQG zlRH}QEInAbP>LEDVPdl!!0vRrfAINY01&=8W~}bsxi>2XdVe_QE+c*~`-`LJ9r@DW zEc_?aQQ!T6J;3LzaoyjE^PC8;j+68174GsT<{BVPdy0UFz2SaFAN*nSYro|#=}z8` z&1xugZw>L|rgN+8H((i;d%_5=tOR)m&SXEX>-UCdl8cTWe$UfXiGU82!z>q)50iAg z_3{CZ#(;R#yZY-beiOHL<}qHqZHI(b3%OsQ6nZ_QK!%M>+qrp&4xN^>2)zJ^0 zYnq~efdye?!bHvM zakK3eW8;KgFEHlWX{{Et6s&|c97`&gW(Qdrq?xJ%=d3%piN-621`Y<2bU%LZ+JhD* z0yF5U^t$!shf3tK@iE@Knx{=>MT`g7P_5KY@@YFGav}gL*G5u&BR(>u5hLcN3&gC* zZ9-|6SK+Y1_|L=un|~`+OAXb-X00O^)m!J~>-O~Y8pI#<4{t}53}91*BRlVdeuj2E z2Rrtajjx%AWO5ztL+HoXC8n<{#dabFmcA~Sk?`~L=jdY^zvKT?K1vt{ zw&QT@evp9B;OSsy?ys%t71+BxKTe~daP1#uEd0?tJ0UH-pBq{Qe0Z5SqzeerSS_X= zU&Z%|z(buwM*~Wl$?<2kn{7kcgN*WiUP}tiJMT}J_sjSFf;;Qt7BM7k42Z7BJIDx~ z9LIAd8VQ2L{c@}M$*9VBa*Y>fV&8k_xPIoV^-}NisRKc3Y~G7=7X{s>N_&fsT?93O z92a!Ro$!~OzUGMUMyptQeFE9q=b4cL-lfnR>->C2dtF0vVZO@jEAaO^< zH^8EXk|D$Ag+t^e4SnNx|AwYr!9;SA^hhZg02dirg#8MYDn1}8TF;sbNFbrXm?cjo zWeZMJb!*29%rBGPa%5=OS_LR2ise0o4g#b-tBdV3<8?IEmC`c}z_O<$Tf~#I3pCx} z^s+n}akZijNP$2{uHCPd^wt@Mo`6n%D1>$7{Ke9&h9CUO>kU>@%tzO{_Bs|%vELfa z%*@j1Bvfp4wCAgk)Kudw?DKn0Gia&y0Ko~SMU54emFEq6hp5?ik1=O`y^>ODST?f| z{8sr`G!QFnU}o%ga&1QoGT9iLTdLl7ZL9=BRrX4NP76&$_Vhn{j5D zqu4JdYckQsait0DR-m!Kd>wGN_6(zh8fmohGr03SLy}a!fn7&io7y0s&qAr8W9(*U zy+dZk!w{DN*8mqEezbvlwwOFJ{5hQaB5H; z!=ow;J|(g}26;8&*lU=bJHpqvEf{KW3F)sJQGVV{oThGBx4oWz$ty#_(PJxp+#_aaE)qL#DZM}QTSPbiPP5V!bO{m29eHN|_dyOX)^6paNZW&wq)e)!pGUOKg#{!uN0Hp@rlCtx-!0n=6H(>wrHVrR`2$vtrcpX~MQ)O+l~ zkHuc2NJKKbWNc5QKG1uTdlW~M^qhfTum2;0$0*nzUe5Q0dtG%n%hS3qwPvtTR5x{% z@a6r-w;)YAbEe@eOk$6N4avX@D<>?4uMsi68+C`aUsJ`f;mmq>XQ-euHod*{9s-h4 zy$)_8U2;4xvTX=JwH?*?3Vi=idc;1DKl`Ns86e-+j`d}To~-ueE_W>OE9WdNzqbno z!)5scs@zDg<)6N{HX6uMbx6FmkXN9Hs|W?8cc*PZD1iLWPVX0;7!5tOn@gKUiyZ&M z@kS=3y=)`i)X$gu1edo%H1xZOHE?pWAo@VQn>FY1Ga1QG>^cwjR*ryU##|ykIw6-K zx|;m%X#*e8;@1*NvUZiY6Q{c&I)OqhBBthxT4R%2QS)u z=>D-9h}|rpk{}M^nCdV2;q7NSBk|^B%A8qw&+!gSOGlVSDSXCRUJ4xx7U?rzJL8S43R8Pq<}uRe2VmR7fCI`+O{o+KN2Nto-mj%$der_ zj{0J4NLu`DZ~EJ7-)1natqi&HT3Z$937_D@QqOBDa{063=JNKBfZxu-6aME8oVG^J z-8|gkC(&A4dy^h;rV>C;@6zq2P91 zS6Db%pUb5=Q)wi|GpNkyD3I5)_5e|>*je<6G?JeWQwCSB0Rh@KnFh_Su4|eV(`W4C z4HFO!o&GOZM4CZpkG~FUab*g%|J0fj`B&YV=QsR#Qr&!ZS z)i8|yVny*Vu+@f>tI6$kTDf`$Zf*SuwS=c;+^IBeYUX%7Ut|Z;j5F#!(G9_wPb-Ox0Qp8?;+TKnxw4M1cgUeefzm25DaM{YL&cD6| ztEZsOzf(5?i)@BESM-rx!#02Rtp$& zH2*g=Z8=stSi-)imsZj91{DKhwVDP{0U(O;*w(Xb)apv@PXCWrj2~C{D_3bxnW;Nz zyw!wZh|i2#i=GI9sP;7-UI&R=CeJ}tsk*^`j+m(Wxr71Z(~JrOIj=Oo}IEfeKy4qaD_XS z{AqOXkIzjFn6nyR3TO(ScB)xzLF;)e$>v?ECa|^{!QN-6O24}ZL%aZuD(<7U>l|jc zxn7hg(AqU|5}Y!&UzoeR8~k+ama=+n<4qKrCA^-KVSoWsJ>RV3(!B8J+2-AD8c{bB z+u!7Q-!?j_6ux{oO_j&#h5W#-18)=oq6m&Lspk%NDOpCVP4VQ!JF2GS0gj2>S6#b~ z2t&;Z3XHl1fahbs!*j$z%`~ltZ*I!PuWU7qP$H?<{otpaF|D30oQ1enMrNIFHAExTIc3%D!f|Bkh@`GQ+ven$!9E`yTFe?KG6 zyxY(_G?}u#u(hSF&UjvI^HjLn(%1QTEsDfQ(Yq!CROEUehQc7G7~CZNCN9_jdb}Ze zgbME#yb(jM!1?=Mxzy14ZUU=m{SESXJ3JuQq0DNg~PNOGqZV=I9nX$)vrv^bg_hlC_-g((KXpzPA3-! zZXWc|Gq2BH8s{As7Y2CZtQ>3&xZ*T3uOJ%&N_`#eQvtsveusePiZH~WrQvDb)}6KH ziV1E4T+MM#q{4%nJ9+z-B|;?P&W|`PwbWDwB7Z~RC@f`4DtuEoTEg+>bL!No z`ymPL$S}G+J*72;gN37DY*pI9ezO+BLEpXi>|aSZs7uxbUMC(gue*wZHLsGo$I)kC zD&=r~3Z!y)0&dFC?Z^+v+4LqCwQO%LJowH}-<}Vtx*s~%hUi;~yEXYewE8*cw&$c; z4E&}BwIKps!=3F0p)|^*A02~c(6-T-CjhgR3*N3_7g>ntC_)gmml$UTM0FE3zekQOoI!M`Q90wJ?1_;SFx>kDpous6{is9Vy+=Gsw{WfTK_$Q0kzlFZQYy9 zPP?Ljp33!2|3_ninJ*LNZ}S6@8c4P}@Y}lq(u?P2u#WZY;1DV|@M=xb<@?(w4wA37_zivb zke>Sm=DS{mm%Z}D?V!z{gZbco?2b2HTYzYSJN#IiLM3>)I6AbM<~QNrqdO>KMdvd) zfsfHK>MUzsj};9^X}t)YHs&0ak}iCd_nf#)5D95mRIfP=0y$dc0kM$Qv3;Y}GZE$* z!oMzGSuRq1BRs-}?o0aXOok~1wW9tRewBO&vG8eF-Ck3{hc+7&=N*bffCn2~VEV_D zEAxaxSmk&B1!8z`dMp}Xv<1GMw_3W22ia<)gHhJ~OV2?91d<&}WO%>45EnF#7m&cr zDvWLMpE=#}vo?euo#};*3oT8#xBj&KI6p`;N1(~Z>3$Dh$x=qO&n}KpvybodH(53% zc5W73_E(2<#2B|QH>NXmoK^19CNOz3SuCqF^CzYY{4gCE*kKdby&eaXD(PV1teYTb z;JknR9^PlXUHet(S<7|01?;D4-Pz4ZZ#ePa!u>uAcU`V~9sT8q-%NqM^teqfXBdT( z7uOqgA+nN4Jxqc<@0|KIhqvV8r7+><^c@rt)kn^%T{{d>X39K(N4DH}atmvpj#jV# zhJ7R66_}?jjY`1wO^a6Q+q%WavRkSit>#NKLuaU^^-DnWhHUa5b4w{9H8CH$1nx)B zC&&Td#_L|`YrkkyVX%d@dTt+w8(GZQcAxlzflGj~`)f#bw8#7X8eaffU`0)Pza|FR zAuph4YfTMGkF{UF^mZ1&Uqu}u=VAZ;9Yql8SfvB7K)(ZIn5EGN3}xT~`uGJabpHSZ zT}vU(!#WAEW;|+`Sa{c9mgwQDi!DOIC@@>QONE?Vxz(FdcIp4BjRfZSz#He-?f^H= z--?_%h@~)@IW-j%fcbwp|zBnmQeO+cBY&oe$Yw zR5`c21v(*o@Y%^lqx)G5MFwu|%7%`0(=)*#1b{@7kNAmfYq4nMX+Ru+3qIaWKqnN* zknRF-g|iX=jY9fv+sG+lvNs|FmY0KZ3rbX@mwTqc%_ohT%@+5IY5#``Cs5H}XxPOd zR$T0jD-7+7zi+gRM7!wBh+=0`gsWh8E~wT8i2Km~`a>s%O#y?5+1qg=|t30l!c$JUL} z*|A1i(G&KnOjSCTX(d1-y&6+V*uQE>P8#28@sbPGAq3&c0WJyvQA_~RQS}Sv>t1?t zY_(xpt|2wi$6km6xvBd3Nf;`)foM}>`&`csgXivdP}J{CBWfbQ{j$=@k7&Nl@XM(y zkmHaCm4S}>X`_leVT2;}$<6g#T#YjC+vgEycQG54wU{bvzUO_H&n1B-jcc2a*iEkl zaS~=2aPD!Y^N07@T8hED3&#wN0;3+vfc9YVox)E$(5h|T-B^x6T6MI{QSLeXz%JH- zGPz_+)nQnHOjfAiDfXHpDFbH52ky}mfsMd4|DDfepP92l0hx=`=%79z;cNF^bTEw? zJ&G8VAc`{DU3nrBYhv4s$lq~>N9D=mFC*e%UnP^;(zw&1sF+I5Yc2^RIQPJ0K!lRq zns8V@bRg2vZ&=Irr&>SA^`;k|3_=$L2ST;{#(&+*lmBq^N(65H7Iq3K!?0u*aXOGP z=n&cPg(?s3qJeoln}ZM%w-PEzRqh#B0CX>Na`uxq#IZ6L(dle)5!+2m_z!o#%|o}-t-kl39QUxMW~CS1IT0f!RqfxaJI1ze9agtxN<4jm7x zGSchMu0qGOv-4Is?dL)6IDrYi&o%)&7_fo6QoS2QY)86kn#9V(K-e$7Ec-(LyBy&ke$IyVuw3YW-AH3i=$#JcwkVG|Ccj? z`Jk~I`# z`S~(^Roz7h~hS9Fasddw#WUhL?*8|Q*zLx zss0WVV=#2FG5@1p-j`1&Lh$f+zTLRIFi7U^A3a?K9(tv-PHfPCE5gHin1i7^!qF>n zKYrZ)7Y!uR=yxE|py7nVYSq5soH!hHyW6%oaz4Xr9!JH_Moc?OVcj0-8?T^{M}&$Z zbg$>FLu{~abe6CKs?*Eu_RcK{*px>z^ylTmVS*k6UfC9S>T&EHPbtj}U^!|$f|p{M z;*!BD%vkD1n9DFzfgdC?x(qJL`3m9NN;2TnNzePUo&{5gSv^np=7dJ>cVyQz$0M-; z+5SvHOI(8jW&_Ulg*_`?pSJ4?Fe>?1h4LB1`ZpA{^NXv)$JPHUo7dj@hi>2{KkHLZ zjV2g4zFQ)6kQ&g#t;v~ZeJn{94Lz}O3x9pq{KXGGbeQ4r2=1$etkRq4HFjFJwdS#F z`*qF}3RHumtgx1_^h{4lp?qB<>}BvFACco}^1yu>`C@7YhR|dBwd(#1f;Q_!gd`_$ z{Q?uuaaKpz=)Zo9jo5}0DVSlevGN5$ZY&n@3Pfrb^WXsBgIM~eg2+d0;SeMwMC_%5 zCo^4#Rn)~PDkQXgh)0qDY=mvW`4O2IWQz^v<_PX_<&%mlUsbgE%wU%=0Nx4Et`>iz zH#>glQ*Ee=$kNyo{5TfZT*hMa2ldJoA2bOAMb4XQhYueXnyhegj<@Uz+7&i`x5hx? z<6aJ8C7K4vO)}!p5sFhiLZc3g_sia4|3@S{w$P*^?$pWwZhCzd=2+b^64%;cm+kL+ zqTi)LPt>(^7gJwU!aGg>M&tFGC329p29cD^U6ds(!1ORYvTQ*F9)mv5JFPr1kJ1@@ zHQdx5v^!N9*A~|R5a`kL*cc&N#+d^~=bHNH!(9KeM@OZ6DYhnF5?!3TCfL(Qvs@^r z=u$0Ml4K88v_@plS61ZV5uA|fdV9b37z%zD)Iq$Uf9O(Oe*N&&sS>vi9oVI~|LC{3 z_OelXa_OFS5oj)GOMl-Occa5S`vP8x4|a|26crn4C;G(sF$1-S@t0*v0T50U}WrYyccjC z1UM1~pmohttzJ^P49iguf5hU+M@y|4vs+Peyn%|*cYe*f)4vp0?S2I;%7iS+)YNLM zUjl2IKTrEUf0E&`94c3om&1k_T}n*+nrL{}d6?Vw<%P-hukiI9F*jt(WZk1tpzE}= z1anDR+dD6_`lX8{e_D=bTVL{Err>d=5u-$PE)s!B`rhmD^QjD7M`D;a65*sIG^BCy z$1_qGtl#on=boRUq!M*&t0`F~^oTOrL(L6YB!Wh5VGoMRB%20)X^+gi`+J}B;+35N z#uy@}Iu~~gyMJ{1EuF{W!31ldx-#7(NykT*m$~sl5v7(m2_{m_*QQ1P=Hgu+FJc=` zr|{u&JI84!@;|O;{lV$K()1Mc`8sIh#c}66@zwS*)&1ILX$+9_k+Z%72n>tyrY6#9 zoXXhRb*H7)Vo_gZa(}ec;_025a}H$N=J9Dbzs`BZ%6u!e(@+rMwk{CZhK!d zC)}>E$|>7;2!jQrwFScFcT?xh7cb@#ipy;ioNn zrcBE@s^ZC|;#or3VKoND=bSiJt_Y8J=;@9O@V@WHbEilSk|y8;+>@y^wpQEC4#x1y zA`lP}KP4yYCOrN|z3mms%-ZEsoAru(`r@267Pd2J6Hzn8}S z^WW>+4+q-X$l*gGRtZHofFg|Z9D}9+^Fa~TICRxMRk??6%{4fc^V8&W*HBl8yhS&+#AA>UQTa(rS&2f2B3C;M>yMNf z*dkg*X-(^|e--J?fztw`Jt&%IKav0$_|G49vS-Q?_R?LFV%5KV6WY?`BZ83jI#VFX z#C1ed`U`xqoYCY;B!~5vNY$1GHS9Yy6=~Rb&*hK0yYA;^2BWv0-;aI-C==kLq8M~= zA(G6Rp7xAKOU7-t5+^8@Y}ax#8$l?pvoX_$v1~!Z(9E;2{4TKCyLlF+tvj)IpRQzZMQ-87)H8w^3^X(GE0r-*oJRiF3b~~8exb<8yW4Juw zsd~cYc08EvhT4?l>146U*@cErn3fH-^7bb0dt?Q8Yi4m3WY&qS_ z&1l_2U4LZwxJMoNXWf0HvDc}$-*5+4xl(&F#mMJn>u4Bj6(2sAxU8*nwboh>Ao;f% z0bm`bk%BT&gMfxi&dNt2HvY^NNDX);YbpsZx4&ldqyTjLOFa)jX_&xBDpOpo`s7xX z{4n|3(HvWw?CUOlfQA(^DLFDBo04b)^^L$ny+&c3Pi62j|4AA{rcXt~tDu9@pPR$j z#Lg$KUZlq8Oz(PGYF49lmvftNhjS+V_wf%Jb^>H7d40NvH#zhA@e|zECZi*rJoYMT zn=aCrag++`|1QnzyFq6;E=RK1;|nJ-8Q+4_1b$AQdhl&<*Yrjfg*v8D*o4;vvqKnK zu9>qivt^H%+KLy(xPN;I@v=?3`9ni+)sRJiXZ;s#-QNNsE`vJ3;Y|$>5Ldh$I50*J zo4MDYjNruLN+VG^kH<72rZvAAz12w?^=tw)Ubo}eQc$qFI~YCKev>b#rl!V4Xs-1r zj)tyWQ#`^#9R({mpHXu58c|YSlV53kRT#(Nd%Dx^ekm&+a%<>#{q*Krp<^39kd2Jo zIg5*MkTjdOxO0JzhkOajc5suqz98#bq&F{gvTf}p$^Q!@ldy2 zQN3%8kT9@We_Juh+}zlT=gj;3Vc_o20u@M2QHkQ<_(W8(-3XTJeEQ!rRP?XkOhoU? zUh2;|8d0yN;!hD@FKqcX-$hJ+K^350Ie)RxJi*o!BY|r2(EDz)=*r`Kh!m(;C+J@A zgKKFac#h?*f{_m#hDo-ff(t9v+)N#E<`1yJowiS=`MS(9=`n;l}?7$(;@^T0$Fv zcXgW|T8Q62WnW(t1il++Aq#GMJ;Z$Qe%@wwY$=Ezd)?r?K*4%kd0n&yP(gt!6f+7Z z)}bxfB$%w}Lu&dMm#z{o59M>@qldHT3PgMvq!5kb;k?LWZ<_XvXui4899E=0Z2Q1% zcIuI(ol33Q_C3lyg%z24%cDRz!&Pbfb^19?ZiZmU8LVWIM{R?II9pS-aRWt0#V(Qa^WW?^-gs_8tBd`L3mJGGzdR_A!;vZ>Z~M1~iJgZc2g4a% zT58mNAtNdnw@r@$P%RmJ+F1sVljLeH{XClq@fXBkX5P3KrY)8aM7NsxaY~VxgP6U4hy6cS{e4d|Eljl-c484n zUkN5VbZZ!W&t-r@I?F1vN}>t^6`MzstE{T3ya+#rgby3I{QA0m;eWvj7`e{>{r5rz zsG&#qe7EK0{}iF}3!mpMeYfkj4hkP|H2bg7UewZ|yxxx! zUnqo_a>ob%uU?bu@JA@1d%jc7emAeE8;FS99+y9gSp8(>B+8JBS@wIY_}o#Lc;Bqp zIDrYr)$6Z6iJCCzmiD)$g$PjMWy46VuYwSx6D4Cot82cs&sfp5p^(4Pp;I+5%0>j$ zAf`KJojZ#CqdoeQ2?RQvng}_nvIGoE#f%a^smuf8SwPwj7y! zxa%*=WpKQ(1NX~K!%j2(I8W)LMQCWW8K6*fX)mV5-ktZAFFn*G+8~sSR#^CM3-xDX zL(ak94$fOCRfZH@H-FtI+N#|Bq=-RfHP_$>U2b4Ht$I`i6dUhE^eo?Mn``D$*3T<; z*4CyB`oX@BD>Esb{f?8H-<(n_h93LnF9M%Y>eSF=gv=b+4*(I*ynQ3~n+SQt~K4IXN$nTVUeGt$&{ z#xgiZE~la%a^di)DWsx2dJ7dG?NdNHenk2FqXvL&gHHg+K$PDKE(@qQ0SM5bMUYAm z0NCH@pa8ZKAyr~4z#eN6XvdE#79f$oBjkWnAFy0YuiE8UXopNF&XiSl-jRl^QXn|b zDu=DArlfW}=mZj6=xFqb{|AvD?dII?c_r<^ju6a{jvkg=r9SVbe!?2yP3X(|e)?ue z3t-EIWO~!q`J#Ebp9T69uj9p0P#*G!T0*oSHQ1d z_a>Wt&*smcmkzI<25vrfcBcc);j-yLt3R}yiq`DM`H`+l_(0H()v~tsm(PcDaPKZh zTko_Xd;FJ|2Jjz&rFnK;N}1fhZ+>-SY{N+}9tt#V^B4THK_OY*(}}fpVBh1ft3!gd zxSBo9;8pjd0x9XnUsqs#+__#>nGHtCJ5!G7i!15xsHJ8Wvjp_G*e%m8k7GvbCzI@Z zUc1QgSi0yC6v2l^u2dD8nviq3^0*U4TCP8!0IGDGTUv4xfQ$_IXfC-j2Qu-_n2;jF zus_dq4(-Fwub6ci5mu<1H!M9s4QhPFOqy2A3mpRe4wv2R!*yZ&uq;d4T{fG_PsGS6 zPT(^8=k%1{lC5*OWIJ-Q)Cg&0NQq74&uDdHrm`AFT;lHXAvBRB7UQV)sFQZ*F3qGl zLwc0Uzk`*<5|jEBPIySt6O+@P7m1m+b`_i0xl9U;&4pT@EAcM|!NNDWaXED&|}VJgByhX9C28 zov{rIaRspfFp^*>1(!_99q=h25uo+s8pEQO!un77dX|Fde|{Hu9nldcsI|$hhu)g{ zN4qMOO4Doh2?sr#qy!?W3?_$Ke+@X%HZMWLO!UiO4A_K#9}ku4sAIXJd+jbMP!7)n zU;&lJG{q6PQj#uui)?(!Qb6tE!m<9Tta>9JPhj=%H8bD1xC=|7meAswe4JQ^MbBmr zAC?W>i-H0@aWVkv$ENq4b=|M}lgS7l_#4=m0YqPG$8leJk8ZtHqo%$(z1zDc!}H3| z2J!$+1^3U9>3dZ=|Jpc<9*ugV#f4ga^sVmER% zTqFNt>;BM`6?a;-1A+}5Xwm(x@n~3c=ZRi3Aa&ebeL1Whdi_6%k-ZH&`6v@OeIm%^ z0yX}ig6Lkcecl;x1=#4)aWoeYQD({@)_g$fve3)zxM#$si^8-s=*&~$A&3^=y+7Oi z!F!16p+el-r*deL1p)j9DX~AD;e7_FyHY z=gh>$duH4&J96xB#xP=DMFoNsA66S(>NztHEYbR1UYxJ8zeJ_Uc&+(2^-mniCof4w ze|!h`eo9?eiRr~!$bQ>uHQBCD>2V{ZiBV2DMVZhi4d%||?k@*+rD4RyiapglmNooX zK3AftI_~zazGN@aA&mU|7t!#%fn+$1ah*77!k#_CG8{MFT7{ClA?~ThVpqyv*f#2?5{^J2;+io{ay;&Ev^^3fK4m| zM**g0J>K#o>c}@R(%P+%Je$6pj!qU5&;cS_>>M@Asig-o9H>PsIAy|by3Y;LzHSa_ zT4>ZLxRzo+cELmqR_E8z5Y3EswkU@k#b|=On)qKQYSTcbga#3%Zlw+UVD#Mq2_^7U z!S_-p*zVn+_Q^&eipwdTR+eH8%W%U+*{SW=Ed?KCnCk&~e$3SA@{67u8dJ zzhI24RJ?3$mkqv`Z#z2xYq<-W8moqzJzMNM-Yq}QUB2|u-R*aPXBp9E0bTj6!gpG`y^{Q80pYdE^ zmSp*z3IoKbC{-4wwCcR0R5|0hgVc@oP%@sT-GF%G$?Uj-l%iw}a@Yi6cw)InS;3%fs|ym{tmG zjsjAA+4m+uk->+>lHKWd>s)#Ghp__re7nJ_nX~phx{F4Pc z{`)3Xqw1?0L$HFyF=F}>7%&*}qWz{b=IkX& zPo|*c(RN92ne_2agZiDGpNnmpJRca#J~HNHC|33@J~#}ob-Zk~wqswfgP{f0#F>tb ztO5E;)0X}pF{avFNN9=^F-}AeI8``s>Eho2vRKjY6p*$G;y*&GL^dk(-&&4QD9{v3 zEM&w53Sk>5voT^@PiMVTK@^Kqp=eqjcMG8e$u+`!e&+)}fPV?4&Et)k15C}iaJc_mW_=MOH@m|lGJLGGI{l04S8V&L zp$F`oU7=lE{Fj^9n5LlVf)M#O4N3h|y%nWujoO=w_v^a3{f=Wj0Y#D?O7lJMrTe^4 zSvQG|x#4n^X3Ez7`V0@+gDem~%&f0pDVA_1#pCs(^Osdhdz=k{%i!Z{v|3O90)AbP zx*7WPJV97zW6JuS4~*@~wgWB4oF3!^019d$?p0k04$zfWA0bbB6W&K!9JKErD6jn(msHd*~Gt39*j z-TU$Bzu3AHTKkcilYj~kj{b!Lq^=~D<)J_#VZxMO)%Z#v%D-P3vC0AEe9GmpW8z$HUPe(-WlfPh zh1IRPQ+u_%Y=fL<*gz$oTtp`4j21U*bEj)jmx*qVz{w zKq+8M{M!pMh0`oHIrghKfR~imK`FQ-P&GvhOLZRLAfJ`>&cV`tCcu+baZ==u7gLp- zvgalCZEZ1RIN_uiRVox^wkRE_xH+R_PA>yTC(B;;%f%cUL1K^>`?D5<$f8{_?h=O` zdg-Ww8!RC-JJhQ2JzWmEno5nDb()*o|240yM8RiY5cpWmR;sl3@1EuC%zSSr-*&y^clOqu z-)tof*@TaU&)$5+*ZQ6Ec+2Phh}R7B!mD?TPB{q}##c*x=rBU*KZTqk^x43k`IjWl6%j^vpYZ3kX;g(_raGG>7}|XC;yGnF>3;Uwjq36; z3ycQ)pMHf+vg2wFY#zQL8OIj#x;InptvKA|m5$GMP+Zu;_A^tVvC+pKntE$=J#P(* z=S#WreDqSQPH0)n`?*n^vtggcFq3q*qn!6es~~fF*k(i^ecM<5<)dqkdE0eTBwC59 z?zpr*6EBn~Jnn5Du8}#<#M1*)6XyDE=-g+=ZTXHggop}ayt(EnB`|`_rfEPe2WA+{ zVvv(E1Eo2>RLIvHvQURHKHx-?TxHWkwnM&-1t1gmpS6scFPV}hGG$ITi;ud`65hD0 z$ka9YGU>i~OAzt4#=m*O%atmTJ<<5Shuy@qF~n*iq(`3KkLOD>m1{)CN`f4>Ft$$m zKIW%D3fPU81pmVE9ZWNoPO{p5nM~ILAe8q!U_4U_H1OZ2fD_?}+0jE7TBh*)#dxoe z2N5KxOi5uL436oSZReBb6qUiY{q}iUGg>@H4NGEneU>=r?w7Oz<0F)+3DCV$oWz-i600i084jp`z&zq_RMbv)TWF%y50=LOj7hvGzfFzQYVa)MU_bzxL+BA-Fy&cffb~!DGSwB^ppuw8`rV+__aJbt%GLPrpk&g_ z*Q|W+^%9o@cww=&!7jOv3of9mM}~@CMUqVe!92Um_;MXM%Xn=%J<48zuwk4b@%-LX z{ZE_H3xEn-_H&8}WxX(`T9n8$Sls8D{Y&7&?zqO$-HNK}Xp8lr^vQZOR;+VKlgI&T zrN4A0P{ru;RC=d)L1FJVeF}c6_o)JncK*yik#KrfI0BbJkTia1NNqp>8m9}AL5WFL zA&JUWMKmB$?08!1{fbf(luc(Gkn~7JJ}0N$DF3q>A)ah<{v}ULy~0C zRdGG)h!AnIO0yC zx<+zvbMfy!v!ZVbmB3Jl$w1zWUtEgFVrWW3=+H30(9X4N6uf^J)JU zN>7`#O3lKTOA!1^XTT&%QXzqah4(sCAxL`Wq1)A7@%;JZYISP1_En*c{itY;I7T)0 z6l3A|zt?8g^Pyvm~(rlW# zZ_TZ^c^Xd&oU;9zJ}FcM!=hLmPuUq}F4JSg#c~xb= zo4sKcArNWon9jxFylo%Zf{6T5=-H>_EipuF`b|oF@2E4ATvFrt5p@f99xZ06|1U_9 zpZMRk45J#qs&f<}6q2WRk*CPyRWS^^1eGBcEVlNFg`N#~_Tjc+)6Oqk=-BW@V_&=R z%g)Bd;d|&)hk(WkQN9Kv*v>;O_tBrj`vIXQpUn^Zt(hLWSh(hC46|e@LlbJ^0Aw*- z=ulhoN{xc{f8Sx4| zi4ETrSVT34CWi|bc91hduBoT-Yk!R(xbQ>t$V*c$co>^2gkibXrNuK%ThulPfhDi+M5%?I{5> zB{;F%;{sa|;tG#NKQk2APvXLPr1s=3;R&*POR{9Nbd+Ud*6B&fC=cJt!m%r&OUaFqS8gbFDqwQWEUUcHc7JZm2cNLO_%^g z&6fiP0P_Nc%N4>Ooyr{G94PJnXE>^bgcMO_9mb^e0}InWDXXtZuR26yW&beZs0!xcIN}%I#>Q4o3}ol`Ei7BU z_gceHH0(D1Y!`IF!OV23dkrYlieKB|vL2wT^^dh?H>3uN-xS;>ECtd5vCdvdw(P~@ zO-Z?K7sFSuDfmGVbODHF`C4lm3*67virLnnsr(vu1L)yCVmr znK^2hjToO?%_IRWX>O4BPV(c(5j9}&7fTO{{krr|l!g&fynsA@>xxd7kD@^pbiEC0 z5_U|NklEqSmwTiUA7p5!u2^a%9)xsOL>Ucqa15s*E zE#V?J#{H#!?OMsdEG8t6V#!T3g}_lnPd7YdblJjDpfcOE$}7#sUVNBy-Gf0oF(q|TL_`x;(Hf1M?ajaeB zvk?57mb2v_!mbR@8jnDtd3EJr_*T9zFUsQJZ)?7A#Cr2MQc(A)xi(DE_ZvtBH8PEm zv_~4x_0qVeRera|A`&ja9S7kEyTqpz>od#;~dG`+Y=TnMEdn4Ye4uq_Dp zIzRQXqF#3S{dbPk=~RnhZqU}B+40D35g6@_=8ZK~$A_RO(Tjmp*bwCFW2aK4jMDJ% zQ82n#X?x_j4cBLY72wAd<3eNa@3T^hmEd%VL`q-->Jz9jn6c3&i{f39$sj3oG@f%F zBB)nP6USd-)N;5)zViaNn(m|H*4LpK)Cy%~#-7|gL@>8$TjYUpuhc*?GH+!Pl|>XYJlt!C%F+fcD*oc6I3E zo2#MTT(@#^uUiJ%#HwF5W(ouxFlwmT>A= z9W`ckXz8vaKCJ%lq0WEypfp7OpFd0(8a6&_qe&%it${AZNaMoe0QQ6J3g>i{s5R-s zdtRQy6!>!3IKZ9syr5oN;lKRyfs&|P>6`6MfCjgfn_hioW%$!R0eeDrwBd{YT8me+i&Bg zv>G#bv6@}+aGUa1zuC2qHp(2GPHww9d_Rhk(T0s0Ot63q$o4VJEi$7i!E< zA=2+J0A(!;d1#uf2xXZN1O+psvD2KwE>z_SZw^goOQMu^*(p5okl~#mvUYAC#KWPr75Ptj59D;NK)|wYa6+!yeRGWNNK-|`_)fx0&%;uRSDhxk;$f! z33p7Ru*4QWJO6jsaw%2~b+TpZylmN929WS-G}`+y+27LLbLvalV;ld=Jme%7Hf&an zK|9BsPFf?}(;xS7uXx<<&l}Jt0tpyUnC~D94>Pjlu|NEDIqja7OCri~OqB2to?f+e z^;J0OSC-0Hj9Vg~1TB3Q#U-eaA&A!SBoH}2**dm!e?ZRTm^Qpg=4PM_Mbnn9B z#M{S=4X|?ymEiS`#VbD<^tKdwQ%@?v|FDG!AS>?gA?!sWJS*=ibp?*ke#o`0KZV%# z%v)sq`b?CsGY-nl6eC_wZEt$K_z?#~pu&AfO<$a)Z44ZYLe}1<5@!FeSj1lNPV)a- z3Q2PLSp9Z-sPB(+5$DrL*Xo^7WzrFL)=HH17-HtP^fth;vr1=<)eP~zxA6H&8Vp}M zyuEO@H3E;f>M3#~k(f!fO6=RPDjzQvFXeTV}5ejntfm@J|i&m-pQkU-!U;0fasNFRmK0TnNLK zI$lk?mIDg;hxr~fx+>W_yCaYCRzzree$nSgj=+*<<&WEHlx*H$Hj~=`{#HRheTGm5 z5`r@Ct&^EA@N4TUgfs`kWJ7eF#05$WP@)`-N0JhOax8Vz+%@uwdaWd;icLAXw64Ux zF58lU4vZK7>m!{)Oc%mKu*g8?T+g_lvOjvD%~eFK#{cbJMsG_oUG;l0?1K zzYIe4JRNuHd(B_mRh>7nB7-4ao>OdsOMuQ7W(3FKOhE#2*2&i!cmrF9QIW|Z#naX= zy$3`im|31?C2eo56nqAL1h`Xrrk_c$Zx8Nn#kpMGrnmcA+Y4gLFkyX*{EzC`UJ zGD1Sgi;_AooS7&~)2xYzW(BUj4}XLpYphEIc5ECqtyq8=UNPw_`SbB|3UK~OsfA29 zFjPU1sr&wa^@(2yw}ObhPKRQ$7($5|YIQKPpBdg)k(?~lb@EaV-LI41Pw{knPpcEa z%1Zl734X=KjC3(m3PFDkcl#+LCZjBr1<1HdxLgb8xM3TWpRTn>t8z@EtS1Yp+jmiw zVGZao4U&ZMd1wI}VXvi`;=t%R);DgfBGX7MKwDJ=Y?1sn zlNCt!&b4VmIymyGCwzoRG+^Uuh;;#h%`15djo6qW6p5FQ=m)X37qFIid)UN}SzttW z5#~8$Bzgxhyk61IS`L5vdzbL1#*Sy!@d&&n<}^cQnb60 zh=DG$TJU&Zik9Rztty(o&i`25s0>Wvc~`wvHaQ5f^8f_PjeDyM#k zy}aFPVp#XxZr4GBPj~|zAhq|(?f&5b!ijHoiXVDrg24VN*PuiB+)~tA2nL+%u6KlM^5i;0t6dEY z`rWJ*hlV7qDaMB9edob>2>cJy0JQ zIdyhjB)fv3ZL8sgRx)ddRu$lcH4^^@oI(+_ot)=(5pcQ}#U%6+PH;5Kw)M-Tl5csfW z25sTv(d(c=G#qO#mIG?&L6iYXhN8mMP*6m3s!L-YT-zdpic8^Jnq%19I8CCX(}l=3 zk8dE!&nW5di@#DWM8nElHwwU*u$my~i^Uhob78y`yi?%h*bA(3&6^(Hplz0-UR!`} z=^K1-Hj_ksG_UZipCa|XNJGYccD3jN%pkozJpt))zUSyQD^ZbkFjVVs5dcLhlaczuv z21v%xc7QTyYJJ%`_V_nz+7fW;GgNno9uroPXa=a}cc)2G!vMrLT2W8CAVDC%|lLv%6jQ zmREB*CMC<>-eT3kqGyFI-!;hEye9Q^YDn0)UmRJ_HELZl&0s`<;GT6P^)SdUq+r*H z2Ft~t5Y4%yC*tIrUL8~JvOq}mAC zJk1Yr(TzEf`()R>mHD~JhWz~ZLwiX}#;L1_2CfLB1NG+7*87_2>!#(~lyU1`0qCvF z7;)SWY4hhpD*kzrQcmuQPe5#|<8){qRq=Do=>M|-B)^b8nw<*LeeXlR?`Oa7^4)i| z@T1*7uNQB%tK$R-$yMbn9o^MZ5e(1&I09j_7H}K74Bt=tC$I&U0!XwFQF0OxLo6OV zxN5ENTN3p4LQd~C7gj?KrmV?yCyzxLdt8#(=Le-;x(X`Dg-F3wDgYcyuGQKVwiL6a z^^4;%|Iy*v<+6D40Bq58W%YYgi4tipcI^%ic=wYXm zDeT%sOIC;eZExnB&W9PbKN9hv4h&ik9-O>(>HiHjrBDFpOQPaRu`&IYbIb_8hr0(r zP0^Zdls-YdK*Y3)b1pR94cJBjXV4F9sujjcdg4l@kwPc7oedsrr!`E>>n)RP4E&W9 z#C=*SsXQd;QbUxRjwn${q%=l=#Jej|GmILib~k-sbE{0Kr)>^4H!n2)gH9bfZ|dSX zQZT?^-qz!M^(Q?A@4qEc|NP@;Jy3vxSW9k=A$#IkKAPOUuyMtxCot=0R~@>Gt2@-{nHm)*Nm;Di%w1U9IvN#yOo(gzPXQ-m zaa}LX&2p%dItKxR@}2HCdmOgPC*CI|vX*6e#JtuNC%8lCj&VWZlaOcVaFxG_b30ix zi$Lge=98EKIUsUyCy?k4Q*0RS)5!lyRmkLiUKeD^#=>npWTPeP0V^A6W`gIosc|*` zAN@(Sq?u;8JVvKx&H4xe#B2|t*l;<7s)yy=sW3TZ?G^twyzf+jh*IO_SOb#Ys_Rxr z$WVgRj&^H6UE%^t{}@(Dq~;0cX#4WAkQE8=?&$^5FlShHoPe|6vdl%^mO0w`gGv~= zrAsc{S@MbcBS~e+1{WWQ48H>#@5}_nSsjw~Qbnxl8yZjo5`VhPzbI~BU&=_2SGASg z;i+T@r)WOnc%XfkE|LHfatu>?AUB0Ej z&*tdoVEb=iV)r|%;}O+L8G}4S4n4?XRep11dcDX^*n`!|!*p$BT_4hLdd2>TTGO5t z_}L2qZee&(QE<8Rr{#%@b=oUC1KPG*;Y=dhki=N41OKhW(yW|Bqs3GaOe2%AK_8yCGt&h_d7QX`>+ zcMlmXo4PN<8?WgO;8U`H}^a!zskZ zc1Ibn5;QF&uG4aiH+}KElQj6Nb0%kX$M%q}`g*2QV7Y-Gw7^a3?|{S79(aIC@GU)} zk`TOAg!F~Ok7R_iDegcIG>k{$RpfCh4t~pMaQb?fv{<_wYDOmr^QtHwld{Bew)cR!| z2@j`(kAM-ty5(Ss1)!sIKFG+$JUh_|)#I@X1Pph=1@V(Fk3B=IkWF1l=sN5-ivZi4 zce>hqV=M15i{{Z0$NJT|C1b?WVXKBOJSn2MJ>T*!1ow_Ee&Yrz*a_b;o2U!N#V*Q* ziUk&K%c%&>hB@xEm~fPNIb8g;3^?+lZJ~LcX|La;rryeCKUq=?I_xFsq1) z06~9?6J~-nO?YcsYV-I7NIjx@B%nnlu_meyM{C5&^3V>foajf3jg5>k@nA4<;%WPu zHSln9Pg8aGt^)IPh_?#0R*RC9{ku&#>QT^Y2?T6k@{KR{lWlho|Jbj2Z|3D@YCxby zyG#X;3Lm5}J7(^1RDw)UPWtFc|EF|I77-1tVkdHb1f!!gUGDSld zwBJ?KMw=?zs)DSIH$S(jjLgVXl|mGX9CcbY(9pxIw$|2OOe*sD7AaIDp=d*n%`!%= z`M)SxRr=a#F2D{TXOEj{qzeFkS(9Dc#?`1gk2L$5B1^dj3_Ty-Bt7M}jxj(YsLQr2 zpb>yz=rD&J9r1lpsY_GX9~^wvo_7T2UpBmDa%1d2b9zi^KDE6DX5K+<4i=p#Sb*fr z=&0R26=`IcW&|6R{o_PmQ}Pw3W}34zR38u8!teAFi41bL1uacj3rm1Lu(P=~#Ov#N zgT)LVv#+Gu<;lfCWBU*bSX(dQLqzbA8a zzU?9*$yJ+dzKlPMmsp5i`VKHmeGGKGovDu^I+V^#3?F#dgcV4UkAU;G*&C})mInp&uzv`h)eO* zT9w5b2gNFA@@#5#QlfjblJSl)+GFQw42UK(%^e?xit?J`ULBOOYHacOpLRDj2;`?1 zeLUnp`&;Z0F|Y35K!&aeNVSYr2#LMWldPc;vON`oGQt5`n|}{$IZPK~$VV!JsguRZ zSVqJ~92dHxBi9>-^(2gown-ez&@6x~6Ch;mi0~5F82-!k1gZY=aGweJIT|tMk8QJN zs~!TtS^Hg1hE(Y9Fv`av!?M;G$F6ywCp%aHL9JZO`@a9(!(`m{6=`l>crQ15{q^GsO@ z_Abip;Up?J!%#{ITtH=$nX?fAz@?t`Qv38N^( zC~OKZ(aIDP!5>U-G-6ps!>>|gVhnWK>JHKb%v6dt1gKzxyqovr zOKHR<#Qog+TFn2z?WN|z1-#$H1Bbl%9^vb6^=J2amOw3BIC6%_us+o+EWIh@#fH&| z@F7r7gH(dm(&@WN7~Z(ug6Z`r_GbIo>+N9QfmZ+qZ1 zMlOR39-Fw@XGQcl!->HovDxT=plE$yi6c+t#3Q0027Iu2IrMEb@GmqF2%-Qg58jD* zjpfSDYT&L|X|Ozm;&H8dwI1sYU2(+zJ-7xJ%_SC;ItjI%lLm8SGi>#pbrC%bm>K+? z2l&4@WDYX`kLWiT*Fl!f5yN!S$YNV1At4Tk8-@i`(&d8Z1w!+zzKuR6=1FWaX{E~4 zs2sy274=xx3_0RV>S^)cg{#t+X~)k11|SowDL8pb!17FtE#|7#2wOU}^bjHqwg-oY zO-xE*bRrdYv_YI9C(}Jsp@W6p!&zwHTe`AoXXo$n>8h2K_jSU7-|-wc%l9$G@%6Cd zefxek3j8cPt*}rC;KnkO6NzKh-Q#Fwr>D2a^&fDPRw5YS^-vjEv$s~|n!5WAl~-T2 zxZw$;jDXDLnujXy-Gniqi>Li6u1_)E>i5e4xaZ)$dip$MH(sySDV}dX z%=6$ao7YD&fekA&wAG{jjzu>Z4&V~9n1eEnKpIgEF@X&z(113tjUgh^%XiZ^*YEL_ z!Gcy8V%{$A>KD=xH;rivxdYDfuzy>!(;^6w6%hs10Qi`TZar33+C+i3a;Q!moX+CX zUKUOMa_s8av@|az4G$^P8TP)B&f&H9dc_ZOkM!&P(~20hizY3azB`cI-4R?&f7wXL zfbVr~`Kl$OHwpD)P4VLAh%RFAZYEY9kqUly_~`R@&5HxAfHhqG0X$iLcZne(I_ zA|rmX+Y_8O!uF_MH{2iO0#o_y#Dst%swieGxB@CgG(c3@F9P8Mvlxu%($@0wAs)2? z^nYLWWjlP%CRY0c4yS_Zx?hOB=hVZltieGS^CE zA=H%F;Zb6P+$r@+A+&qUm9Lt}3q@^pXf4=rK*q3X@XAOM&%KecrToU#?bWPHjx5U; z&xg|Ni~xH0AG7%!_WlEo&JBs}q?6!X$^A8$PvRT^FIh;(=x~0sCFs5hb2d0nw}(co z{L|niUHDihfVE5sggfnaf1Xc&_oS^cdhHDxq}P^txxCWFOt&m+)PnLwp@K{^+Zy85 zCXNN&MBeWCc>Rb&?9J=ozUgOkS1U6D@Mz(D-gMJMN#m%4n&+3TlwdNS|#t|@@nr-8q!TD3;(ep3Kf z$4&NIgytSIZ}p7t9LD7byG0nLXlFtT7Yn;YS%w(!5eo^hmzxjOI$`; zP#tCeq@nb2zl57Kpe=8uJp>=V%y^ZAh?<(wK-WM6Y|(d<5O6pB{Sy0z9-T&~l_Xs{ zRB=>iz|1^~4dQdJu<;-qq z$tn-p!HM=v3&{9~C<%Z5PP8Vs?rPP$WA^?@%{{{%GUG;A^_GbvaQJUUi>CwGtLy2% z>Gz6>iK=Rvt=NHOC>-BLMs~#d^%A}^w(YTz9^ z!q13WnOdRMuj8*fukZ$SkQ~f_oi{f3OQXi#-yQiq)apNH^LVH+a<44n>Y6O`{Ukab zVa0ViT@U!a&dW0x{iiRs)39+cJ7Q4iBCxvs9)?D+0Q z(7 zF)p?fZ?L7)RclgCKY*-Uc4K;RdRdnBMKT;2I7m=|)kZlo=ukP0$iSm8d-l04%(CSW z!FY8B0f^u@iVxAag-zhsu0!{v%} zDYKt_5u0i=>0-5$(4>cMA5`k$X;^T50$Sv@GvW8pp_1BgVDL&y_i|<=KP7PCUeYWo zBEhuJE05AHJ{GLVffUB`j0Qj#74VT%wJedoWFcuiRa_-W*45(1lW#%5o7F$iHnK4S zpFA%k`x$M2d*$^U+86m6xnq}E>ref3A;b9@$Laz`Q-h zLxd>hHKpK(9u6UC9KY^Nnkt}`ATp7_{iI8CO8KxDZq&1N+y46k`)y^Ag2?yV`>OS; ztLawU_XFj9D!JdMXG5`xm?7Sv2rBI8lcSPLZr1ATd|BT&((j|QKgtZj{^{eM2+{xd z1`@OWic-(bPJy=an1G&XKw)Q4M7{mzy8Q*%gtOt9%V1xuIoFB=QBY6`@Jf)T*FQP? z0?(ImPqKCAXUnQ8`L;y&_{~&NFWvqyK}14H`B`OdN@%A^<7t-A0dKc{(0fj-%C!#u zwcmmqIn`wr^@?H!;1>g^r30%3h{J;b8Zte?%T)pnmzq^(n!B1Hlj_^rRImX;JV_Fe zsN$`>2=G41P5>*5%G@Lc=6aJAOMn*+2oY0YO3lqiN3(LJY+Nq=Ts3G;PM)&q*BR+@ zm{UH;2h5EEF9C$ZQ=&1w&5;gRE0f1LdU*myI?wl;t8Qo$Ruu5EzddHQmORao5laA~ zZ}-|pP`f9Yg%#km{4{*m{&q7FBPdPXm~&-8M)uG35F;wLcO1ywU8@r#FY4#l?mjM} zPP}hC*Go1uX;%JwHFlIbf9N?fIaTiys(ji{b{Z-eeV7T&F}Nj4k&jVnMZb4Gb)?Fd z>E+$r<)5|5B6?1rtnoQzzizLpGB5&`REc)ffDgE|c=%Oo2MLk6Nb4v4kS31MUyQ3M!;mC?E&S`BtV|Ed(o{{$CYbQM(o-bOrU0Lf{a@RC>rh?33!A_5U) zK7yp)vp`I97W<4ZSNSIypskChWu`%4B`!Mant#M>2~Wf)rW#Ztaa7lOTvasT>@f=4ptKjMTxl^p}ZfBXlyL& z^Cl&4xK1C8fjt4rd4E8JIsq$0n~r8yYMc?xdXN85R4altF%koz7nhe%0&yU0?kyCyf`*pHLtNh*jw^2_6Py zr>UFF=j}1RmUl1S#JvtICITLbxT8X< zV|m#Lsua+7VHyq>L|p#yawg<5N*&Hu&LR&LU8&LpBW#At#%3?UtCbL^rDIZ*Z!JrY z*i)NTDURdgUB9R`6hC)cIsf?27JcNIKZ0q7ILF;>W%ZhP1E8lU0kCE)BK(F-G`liyEfDRcVbguPg-NggPM@vy4YUE%bzbKi_YW zKcN;l3Y)emo;*pb)?7#{@-)lm_s9&HeYse08l+^hjgRa#8q z?n~ltDKxvCB{@kkg4<7^*E}LcK|-4SNA!y+F2dTf%UPw=*Yg*MvC4Joqu7@007;qg zNg!r5dNo&J7{*+T(w1gx-Md|s$iI;NHRa(R-nxa4D`xz3Xplg#j?94KZ$BBz zrttoFJ5I5Hi=0EoItj8OE~li$C;S7tunG2*nW2Ln6N&X1RrMoTqU$GZ&e%98W;?h;mMX=HByrLo~3l^tsZ zC+moYqS=f@Ef0v0c&*iBgY9cMHXyMT`LKKgu?X9w8E=bog{ZqJFoN{``N%JVBb`hi#Bvz$yU;vy3MlPwmBcAV{ewF8WuVV*dZfe`pcx@V9v=l zDw17QUk{WXVihQl_}rOqpW=S~0%fc<1s`tRZ9|7I!FlkksPSF zvq^1ZZhEt)DA82`{-^ZBy~C7Ruf6n|(ueCUX`?gLrw8z=H|1r~ zr+}K#b8AFZvnNPIhr@GG0by2u9jJ{ilBuaF9-pHGx$DbY9WhT4P$T8DpAt>oKOb(| zs$*4b-R(66|B`TevU%;lDN27EhS!bWPbb7w8^-@xQDZc;IMypFC_dfhuPXiYJXrVh z$o2H4oYsg>j<_RI)|io$kcP;Ei?x`Z$(tWTk8h4dv-5t(HDAb9k_D(3v2-Bw3Su#G z0wuh!ul_gx>D4qhDF73K8qs=X3ivP(^%6;u)3;qUqqgt6x1!T5qC4n=u)apdk zNy0n*2>HxfJgT87H(LrNF`$BaP=J_D5pqkbz}+X$E`mw{Ljf!rD5(g+mp+>FziX^P zX45nD6Bi*meqgF#MnhrdWoN%Cy!9ebF~J;u7{X{{EDSAAibgDod=y7|Y|ZI+*Ot>= zzcvodFDG%}{6xH4eBIu-`XKDW=fnU*kIV9LzH^N7-HGS=|Fr;jbTf~*=EtG~tflkc z@*0G?clOI-I}v$%QQ`q)VJ?O-m!YbCzL)szQF}wdi^Xp&AZ%AZ8JgUb8r^;oaVHdt1dMY+fB*u)d(Z(!#essF1{8#rYZ536VD#(A3&;taeqvDzSct6HcSvK0yxeaf29^;|V~ zf;>e=f+tFq8q)pU-1RL?;lLu~#**)?@CP{bK2AFjYp{B9XUFSNmq+N%So82Akjdx7 z*q62Fe32j{g9>os?=vo? z=?gbFW`k^l*U)C0BxL$=8}jxL9J9B{kA6k#j&%G4&Um)ddhrVtlyJVDcsVwr>pYCe zbT0CtnjGCt_&#{n$^%|tWQu))b;rBviPQg93(aAwk6}4%taa~0=by_3e@?Cy7si|z zs($2gZ|(ZOeD=B7Ip_q%op@OiAT#Z%dqVc2^%rzkT5m)#k4hYGPzxHmC zHEpmqWu~~JI6`ecL<2@66qpW8@jr`CXuhmB9N(vJF@ z@;Ly1gXjxzGFqy~M*~SjO3L75!=A5g-cQkde`nr+Tc3n*1(9{hUQtFluJNuX9p)S=GoY>egwH;67+wk_t^jrcLZVwvsnWGO8am3nU;TFN#^taWI6qa|>k#aVq^n)_>`3sV}sKF)T zD=p7=2Qv@Dx}K-EuwjuGLWKUW?Mj?xK|vNcIXwA+AHLIOqsgV;G@N~W0pcmkfIGVN z8ATZ|;DrfZYy#m0(mp?W#vfiGty<0G6QG^>b7>mdE+A6qG*Y=7LrIzgq#&U5_x$nL z9$6XB0;w>G?!8S~BF6|~IJp)y;Ii(bi-Sg(_5gP40A1ae!x^EaX9#PUo|h&VNUN-4dg>_px2>2llIfDrA-Srx$GEPZ;|p)$Z%sBrkD^3@_hQMIQX1cwXqI|1CR{A{mcJ6J%3DFd0m>1mzWuXDjJr7O&Bj3S>GFXg z<?={|ypO9uWT<`g>jtwmom>tGb>mi#n@wF~xdT`)V#42OZ?kMs=Ov)!w$BgS7Vp zugTx$YL)_T?2D_`XbY`blVBFVl>C9~wrOnAr78*h(&;ZfgpN~@=i61B7Jqq}5u$F4 zJ9T{)?I+pf+He5%fHMZW} zA=!@}=ZG$ok;a(S&PSI3G%}o;uc>>?oeKF{*SNKxfG`Eqt<)6F;<@Djn{DxSA2ck4 zGMDOHd%4mAN(7|~tnZ@Wwgs~$x?HL5G4@NkHH|`Wnc(dy>^wJO=4!SQ2&xwcFhTgM zLcXmWz^g$)%)1|XMH>$k;4LMJe}jkKnnvs*d|qF}!A7~XM{y6YQaM{o$wl=zrVxeQ za_-j;N6bZK^_AgMv#B!hY5L1wiGBg2s-EAJ>ReT$J5U<^V1k2~AOl)>%1I!WoIl+I z50Ya7!bv{A#Uuq!2wj~m#9YZm&i06LsI7WK*+*B@?{|?s2-ZlqxtIs&OE6j-la5+2 zUmR!+z%m~U%*sg!i)~`dB$MQz$%pH+;MT~?5Mu*lUnmH82(O$J2=Y(zsdY`ye}sL4 z1xxOhOba{-E_0+`4?MrlceArB+aiZuODM$S{Rz9?yGZeodt0e#2m15YM(FN^@g|z$5o!^ zsW~WI;+fhw+xYhlAlp*`Jsb#qvou0E8efuJ(+S~k00SRw+HxfOP>wMu(*IS#3<|ZO zSBv?+sNx$N9c9Nzco4X*VK)&~YiR*$3ASM4Jigpb^LlkK(p7KaT zZoC90(dt3MYLd&h;W?WKC`La5APDAkPeY7e4r;eL!RW0>tL)u7#?V{-Ow!wokgOJj zg=_Tp8>Skm@>(E#;D&}DgGeo2$6HE`b(}GZPpCn_X=|Dh(&g$gk?%sW9#mYR<@ci_ z+QmPN5V@ANl*@IydsJZsWk=$V&UP*{=TBY_2@fZ)zEusWDIF!>;VkgNoREoZGw_hB z>W5sNj?D0drKXBXhny5>CbW48Hk4L79J9B|eFL_#Ql4nw0dY;S{@|=Kt%U^gkw;t# z4hqylxFB)?U`@9kahSuKF~1ngQB(QX%6bLoK(XtN3JC*1Tz0%6E9+TjOfO+UsWj?J zz6VeEQf&owczQ{{Tp3hohc3K+oj?=7*zlMvr)!uI1v|5hc`cAh=6J=yoM8198Q=`^+!^o5p&je*yJ)&j1cUXpv z4F~a6#)=SP{x4RgPQpd9v_(s;3;SWh)r|^S$SrF^mgmr{tdFy3$fG;yxy}8)zeP+N zt#GbSs72y5MUW~JqOUDhb?V|Vp`RJS6C_|VnzjO`Sqvo#g%w5nI#~$>4nUr}G=LAY zxkcME>oyhKbjIIv!8k+KwZrafavP;pfnF#2p%S%;8Ei>|<-{{e5E(w~B2MI09;{b5yJ{2ve(I*A-u5D2qv>_ty1Jmai%?E-onf!+g^C&R<{4jdn>; z{fb5KaCgkg+81m_!Vn65R1aVJ+(3fC4&HVM)Z+uEU*?EJ-#kcDmlO)sb+_m*pUT1-OU5+2+%%L5m_miXMPw~qNPG(c;_@;DuYsn@;E3OnZ0W; z(+G~N?IZ!v3kQT%qPhMGq&n#*+<#IkRkH#xvo=G3To!tfgqXA4dOgk&deJO#k2(dY zIPkc^uKqb|yIbQS#jdg6;B$Dq54Rrb5F??ZG-FUs&T< zgR7Qq4yYg--g$RMEj(zLcR9@B$G%!n`cl$jt6B|#lxS+qG4@omEi^N)YZcUgt5&O5 z8UXW%P}Z1?H#EL`0Mps$U46ooYgJRV2356GtqT|4VNO4!#J@lZLTCKe-9Kf zih-jhxx7zzCf^NT)f~GFt!5|2J@P~>LNf+qG!9?O0=DfO;R4}o0tsfqy`daeCb8Ia z)#V-C8%l>og?eK}>g-pN-BE>bE&HTYsQ15YE+kHRn(=jL2v28srmguxl;F`9uGn4F z0C4+_T!?MQb2lUTSPxYhV3wotn z)u27x-`sPwMn_37Nr!E}>pHiC@muxAPeZ!7+M8aOMKkHFXxrKH2Fe`bAorG$hQ%VNQCnq%_0sA^at27G0%-6v4%% z1LLD!-SPFSu>ca+I&=3`*b`k)Kb=;C^}}jUwKsUV3QMkmen!20XOyPP0!hmEoN0{| z(zX*cXpy#<7E=7{{4E-Hs!6ic{yb!Ub)#D9KcyR7hG7!e4V5Q-?ot5U!zZW7d5hSC zgf?@Ap1e)ViOkTi;R8ltJE?wXluXnC9xOPVIOERvDhr3NPK~a_L?@M`CJu~o>7O+s zD>Y06uw&!{ytoUsQ!O%s^~;tkW`#k`)alOD%jVqS#rihd*5<169KpL^X_L4X9Tu7^ zSllSS-t9}z$|GTXQhe_}8xHtbsv+#a1b)fz*B@q{u#L1nD2_tN9O3D?EV=wmAJoXL zbNgc6cW6{JM7P$L`w;fI`k50>_Y4s%# zl-1IHFzeN9r;{G3ueOR-b7~ewpZu^8pjueXNT_%?(sJ0Wl=u|_0*?Zr?|gFNEURiux&iMdhqI=RmUey-wt}v=nx8Enubzv zwY>h5CSmYE!g#w+-eK~%SeI6#w{b~&9^yJ1CNu|5mrcX_=diy{6fYo*VqfsqxDyju zE4@2g4Q2&iBqN4Nc-~>Qa~27u7r45@;%*5}lU)=}!K2ZaC(;SbdV4$xTnU;!dd+Wc z?CCy`4v`wXtrY`aNHVlJitsivN^E_3Ofj>PQhq(_FH2V&F=UvZm=bHCzlWSH*Z+ky zqNXLRwqUbE&bOaSc`B)EUw{s{bV7&SFuoX}@IyGycw;LO0u)L&;YCTGMaqQow%MRuzd!95+MQ^*OjvsbnAL`kXWX6$WeGTS z_j%31q7Co9;;fNkR6mQ8wsH34SO2VlB>~(Dp0%{UHqIS4v06}!MyB$m=zNSsUW3{q zi}m{pvwzN_$0MwGyHf74Nh>(PlA?Wr#l#EJbhd>;ksQx<*f9ZUmk5<{zboBa55QsO zNPPV+ir(+oQbN@a{`8uegk=jOM_`iJnr+~-#W#e`yEgAr#QolyV{i^utC#$*Ms?9T z%tiWCj4#$K7!_{dYIsZIooSFa5npQ|T+l9MC$SJX%09BQZgJB|e1OmR z0Ozi4ahs;Nw)};f$r;1H?hm?)9+6kaKp`>H8z-gO@cWT!#klB*?ZBFMdw_Zg8!6 zA39NqJ2*((En{14{_dbWldtz{YxU~1W8j8ed?`kC);$gT<6cPO{WfsyNtktVIYoZT zzHU^Dx06x|+Ki1j12JZfqw}o-nn@?VS%%vH_4_`DsHdP2mt_?@c(i3(1avP7_~qG# zt$PELB}{usTQ}(X?G3GHBrG+h6Mj|I!2?_$_P-u|P48o4SPTi1Fp93vy^lAm_Xy7D zbnKGh3p6I@lycSC?dczFjkP;9+BZ$E+COW%Hi5pSQgh}iAVwF{MveS{Fp;JyAIWd| zZ{)c=!yjyjKzidN9ohH{g`!!A3e>B#W>#E;&$@B?Z$SAmN@fxafj^vL$`W|s-HZ@6 zjs)l7V2|7CR(8nUTe`}l1dVc0y+1Zr3FhH{MegA_J^e)cY1!uML`wjf3oQnw;X?9= zJ_KA>&c>IFj~DSen@Zt(7#?zLKjFs;wG8HABgbJ^_4<#5aiEv%$iDxB^wG7n_Kt!P z+)CCtS%^HF)qFsBTxk`YDA~XlWn47$v(f#wKUB2)J2L|v;x7vW{>)GFF{m8UuMomB z{QZS?E*u^4}53$nL=sS9_MVaw@0|%z&9cNP?W$G z`I#dAoD6hJi9YjWbMAv;Ux{=_RaJT7rvcfsC?EqrH3=%O#id*DhO1loe7W-;_cYe0 zCN}yU61tqqH%#@bFD0X89cFZ;A6LO{9AJY|-(di1TGc6$u@@W}^+M4~C@hsM&@nJ4 zUf=E`0nMe#e#PAw(VRHi;{7^R>GB2)fM5;it6`$mJh}OjmD*k#t7z}wWx?~> z@h)fh7E9WH&OQBS|MuieeRYo@=B8F^%0L0SAo)Ic)y3!~ z*Ts-20gqxJL$m%wG)Ddp($u800^51m*pfY$d|+FtsXFl#1E?gvmi!ZahK4MHymfl- z6gi0XX`ea)L@k#{AfiG3Gsz*)Y=>;c>}k(163F&u#fjzvhK5${B4dZ-XPV7L{uY+S zD4d)vghm~t^?TZcLOO5z(_*>m>guQGznFsEH*yB1E6e=pr0p0m!pbvh^13gHq6v2~ z26HFgJ^N5aI-qcS_IZ;~sf<9k{}2`WFu9W9_<8$T^Gb_`>1|RLU!$k* z(OAUh`+0I;G&&r+rJAck`zoxhM6tj(Ucu5qjc8$nPJ~=olDj*dv%Zk{g%HKRKF3X1 zo~~P%bM;3|IFaFWdwq>6M^550U&b+AbUhub)M#CI%H}5%e#LEh`TM`IvCYhc9#!65 zB^_CEbfUM>vw5W1*tRqysKg3<6?B@s*6Y8SoqABDXg;M$b-jm-{__Qqa?oy)i9D)N zeHl{UGQ88&Q3_0h`tM}iE9RiRA6dqk^Lw$Yp2QmNRwRq=!l=&9rLTn}ja7Sd|3^I8 zRxkOln7#F&$QPtupn>>`6(E@1M?3xv8$XWGHa=o?(se!4efZ11#s0D)YOH}TA0_Pu!Cj^Mqq%!E&22@qB;?5Qt`L<+L7O3(8SbIzoU zuB;@McR+~B-qDKbU(^U88LF}+vM|AC5XR21!1kWQm<7nmZ+Y1AQWee$Mk5Hc8rS7BjOJsk03sSnb$Do-fyfE`l==G z4K?ujZ%tQ$?$RW8kAm%C;|%gn{7qkda-wwpc?tVE4<_U3PygDKukeS9-Fw8r^D<+v@j=Eq~&^7r72kB zp^71A%b4r|nJKMn%3yP8)|~YPz!Bn_5+;)-YjC%+<;(#4&#(@~6Ailq{lQ&T-40t@ ze`e{{@?r?YH2TD!SN`Wf&{j3}SjUAMZDe1DoC=emL_#)f1UST}#=4n(Z)bF=+)MvG zjKK_MweD^ee}g-(&?6bTaI@Ac^9@B!*4NWkjmDehKbH0fL15aFM_32nqbp(iEXt~m z8MzJ>0gJNw+gk)3$Z)Oc=iU-Yj@V2xhrx7J?gQK++hxHi!5|xyUO|2m=OV`ZYzi<#M&HxIu zF_+?&`RrfY7t~_zm@8!@1 z?60B@w0O25Cqa!E9+br#fJzZ77ha~~G=u&91tG&^=FPOL+5)U3!sg9G3S#u*(~Jmk z)_GpUR&R>FrxJ8fcOvXfp9M*L#UEs)K2XvQVrc1K&trbg)h-=+XG=O9obH=m*@fGEt37gtv z=xoNV!4fvsi48lZFzHoOQdNO(WCf@nxv<;&)dKfdo=3hHp4Z+T&v;L#%njy~$48Mi zHk3H}?2h|dUxEsg+FCS#+P&=a?9V}!%rKkroq5CEbXf!zMEvPjZ=o4|qAI1FK%I!~ zvRVAEg&;(_YHb!iwHzrDT*u*f*D!?=%04&YZoS}DQJd0qkIYUSYnn7E@Erkrie9gliy?5S0FqZb9v z{6oY1q*PC){_IgeQ;yHDs}H^;7$?ho4Kh-)%Fe+YWcuCy&3uXr$fdDEJ)&8oXfua|WmpxnnGOlyYlopk(}bp6x+y3FyU zRA!-@Z733AdOk+5W;Dm|A1b9v8aPXHiH}RQ6NDtGlZx4t;jo{(1Ie<9zC@EV4U?~H z6%*muA{x#ziX(6w!#;g)|2jXbYxe}BQ|Gx~!qZkdP!fryZ~#@ffc-D&vk5z4)gIR? zNd&o=i&ndV?FcyLzUQuGM~Bh)fSdI{@m27F?#i;y%d^jvW|^9sj%xF1;K^x5=T^0j z?1&x-*B@WmA{Cy%cRhhsmV42(%|)@ zfl@GY9mRvn^^WMEfbQMg%$I5`fd{x~tR zJpIPs^d*vnD~Hw(d_b(^1QsXha3H2;Y8~FUarM$1i zbsbPaI~}lkb^v)!d^JK`r1p8%0XoK6SiTSVC$tj(Sv-AyQ8QMW{Yx`}nN+YTO(b

Br;i_(Uksx-_*hq*t*)1srh{w44DFSE|Gw8h>27jC!oY*a{}kgjGuG#qV4{72tq6DS zU22!^b%3+5e9nx)kyF@x9UUUEkF@snX(X0{g8FTtdymVW#gt*(^#f1-iYDwd@726Mx!|$=jx( zx%}tsVQDvb%>W3vKH(=-l43*K7;TMUGBl4iLj~1JijD4*qI`}6KAUsxG?6ds9-B~3 z=lsyh2tRxXu9RKhwyN?oSZi??3Q9{m@-q+!e9!Fhp(jc)SB_|gz&T#m5WJdD7^1ni zgPu(P3B?Vrw}gEEuUDYP&(_W#`q-hlO}x=g?1KR&Rrw8V#{<-h&T;=Hmhs_P4$cBVnWiE$Br z?&SXGcYnTp98r8nO?v4Pq^=tJvj^(0f6sJH*Plu9G*DjOWS;hdOu2S|1-ak0d8?&_VqxyIviGLzgSw5wDXGq$;?8l%3&gj_)s)5LREKn@-V{QYoJ=g9d(5 zg6*;%RqsXw8Nb_5P{oQ*P;??#=v-`MY;fcc7Y8o!<^(AsogpS0SD2qxT$$ZjMA?vl z^n0o0A}i0aJog+d%DN5)1QFFFi}dCL*il!+GPC;bKXN5V@yCAmB3+SGqzBDKgmj2vXHiuEJ#>ZQ3%nLNTIt@ErQ?;-hBMnun0B$*5-x!|&-jXeLAi~N zX0`l+^cpLK6MGg24UEHD$^DP`Z<;m|B_#F3T*X)_y7~tu@^@X#bi+9&_r}X?low1B z%(UkB5@@>yFC)Fjzg#r`Q$mnYs|FDmcxFpcq= zo3S|Yi9fb>kN0$gSaB)W{V&v7OlLwxoirE=t-kG*_!*b=2yT4NPmBaYD$Kpef+ce?uEvAcnK zvhu%>zVKtUc1^_Vo`@b*yVv_z-Bbn%_Pn`YLKx_tsVX$h20QO67O-TfqEf}0Dj=m= zRs$W5{pdNs8s~g<<2|b#$$0XP>S&$?3jS0lyXhv)d!$Y1mAg+swHQ#F%HS$s;=m8x z;|f1a0w^W5T)3Lv+0uW1Jt%=o@e{8*AA2y+>k7-)4}li(BHx;-T&X1(rc~%y7FQtz zB3=CDY<}CFEe;GUQA@YIv!*-a%twRGWF9NiR&k8-?F+n+e7bcjdSr)M_!H5(g!Eh_ z%x4e|oCRSNB#BJn-$g~)(&f;$tQ5@LL08?nGMHKUBc=4^$+6xZf2>#D2}{$9ZNADU z0EeV=%M-Ch?lHxI7lz*Ky=ymd@rM-O(QXz$$Xqi^PQLl#rHyjC3@{wE{dG>nKAQKi zbcnIDZ?S>Z(_aIx@O_PTJaK_|UGG-04tZG*-0@m3!aYp)y3llXW<2ujcSX3FZ_l*f zn)bF3ln#6+EG}8$eu`OKvL6lUBs8q?v0r7|;7b}W5$B-D^lfiSI%r;FpJATt{NH$% zT6~iy+qH7Aqq+D**Yg4o8o(EN&pzXZk)J@9J^va5pFTmdB}?Xjbr=PF>J&iBk~Qpb zzQ710&0}x+4n|{N41F$cWsB#r)pTe9!mgsr?Lqa?me-Vo2OeG`6VynO=sqt&VIN>O zqRwp~%51IE75iX?^Fa0+weTY~+UK}6fxI1S1rl1-WSJ^PQ1?s?b2c$^^%q_ zpC!x#-;MgCC-#<6)$t25)A8YmTikvmQwPnIb;QD*^@UR;sz|KWUCeKE#6)0#1J*}8rVw$1jj3O(?F%YDzMq5 zo{Jqf=MitAYg+4+jP8=VbYOYo3CeDLFjch}m@xzdZ6S!IY9OTOzx(ZA3n&oi=_AEq z#Z1BUIF0wVOW@6Se2l_|+yZfhk}8Dat%&m6+20r5c|=tRrG3cHAWNa)O;vmI(jqNX z^R;f3@^BfcEC>?w^&?@Wd2%>!f}q7PqRbi5Ftok~!KEJjHY*l(rawHP%f9OE@z58t z&C^XOm%l>jzq&o5IcRPd70HHU&LRJf>M1CFzG#orJjNo&D}L`-@3r3UmK_00kxrV! zH$vE^eq-6wz^?x{J~&r4&g(+|vg4)or2)wHmBAI5fYae7;tatTVw2u@NfwowlAMtF zc#XWgB#ILm+2g^{G+UQ&b*OBZ{Sj9z7%i;QPSKs643SQ|qEI81;#MFSO?Sy3G$orl z8!}p-S#6;u(wK-_OH8xw?v}7!w|Sp&aUw|saBG*KC}8wO%&Ro|+Da-hLaDyPdLk19 zY=sipCx85=mws*DVZ)<+ZskkFgF&D_`Pm&Lb)mQhv!vpnPfJnk8!vm~AfMCZf0XH_=3TGB z^(piFb_Q;j{`RLnb`bh;cxQ(MbaqkMZYCCdxUFJ6``~l}4uAr=iAFbULoZ)u&h`-B z?tAu=)+LC;UXm@7b;PT5|BxYzehEp?Yi?;+md3aQ|Cr-1$P%G=d{{zJ9D+HYMv_Ci zd1viuqu9fBHaUPpSlmH@y7+sTNYVkOIt*EQyJLpkW*bMvR5ce%=9rUhkD`gKhkWgl z|I2Q=Ef_9u`w)-jv~MpK9-ssiTaAm=-B zZR$Nwd>}oH%h2kMzt0t-r*32p!rB-a?_f_G_G$bEo+#kcG?}zxt8B1&9CmCAkb4wL zj&{PHsXig%!MJIPBi>HFr`+g!_MF$x4)4_qj)!>V~T&K)nD>xq}hm_m`g;VPWiPdMy*fxnaO#VQZNzD9DFTugy z6Zj`L?VkbGM*p2|#CK+oF8#P>EH&#GWXOnmW#JGxTM^45ihkiq@heLBcaR#(b)=F+ zJbaSUx=;U9oc??Umw>23{7vZ$;RKJkSnt3^%MPyHG9 zj}MA$3hitpXdtd~a;0v@-3_QNa6I1dMsuo1O1^`1P}=n7p{LWuN+cXvYUy|HQU#YD zcmeK&!)a&4UVmFUiO=_EA_8V6)h>6pgCjGZjgN0Um)OQYFH58mMM43kWxWjf@3CYX zY8BaEMg(=eK1x+WSbvl8CUotYO)wXsDJdG$CNqsad(AKcsq3X44drVb+hztRrz~vZ@|k zR&fQ%$qm9u%1F?p2(_75MXnlxJfKrUu)D10!Nu0)>2)akes3b9*_AZ$?eL>Z zrjYWxxpia_4KA=7iu~=a+q89C{g&j2dVoFv4^qYaD_Aq*v$ZfDn7`j!v1HixiGOt{o&0d;IX ze~1gsa$?fS^L^w5RZ|zzTD_M9Q)y5nli=<$thnp=p|=6T(*7yw(a~2CZ~Tcw;9E>0 zjI+tFwYDl1XM7?TR%xW3hYv&Tl<(-K|NOgk({lNQo> zY&?S@&f?}#lso1*Q@$tW7F7+MmQv-rD;s4#Q)~@<3O5(yvWl!H7&grL_p3!5o65y= zyd|t3wa&cPs72+7xnbkSo{>UEBpDN*>`aSBg zwvd+=i8-<_k6O_UmwYYHh8qrIDX0<|>}4TOgkBmxu8K1p*V_-m*1HxDi)3N3w|QKh zi0d-to=t

Bi;dd@N9fJ312!%CyG_q*FCXDx`wa=~FO+Yru;PCa~k=5!d|s<%)jO z@x=q`-JxKF!tB)l6y@NO@}4M^?n<9wQ8XNYVq=R;@W=ajc1gxTM`q%(4)G~IkwK-A z9=fV!g9{Gr_B`vhj_bFhADbeB-=$y>OV1vrWyre+bg;H_aIrQp5Y+gZGky?B1TrVq zyyn&9z&MMLqF8zQwkusuhKg>BSNM!+7-FXHpj2RtG8kW*j_Q}ONzf9_WT-7vB3?5I z0%cMv4BLK!5UyeNUr|L|;d%4%^--x-h7Q^zu9NB@pxB^^+QD<=uQ{syrD$|tP<9+T z?jakt$6c*R2H+3xS;=fJs&!!$FYpblQ5Eee4z)+wLaK-@j79!uL6H~Mc^ap-M<&dK zG0I3fKx^(4jmVNhSDEC%4io?S)qbVAZgzK}vGgb^UMCSv<5+bXbPF~R&I$Ej-A5bh zOxv5Qm2%~rRB_V86N>mC9I(H(F2Q;~N5_0ERQ@H)=FqQ3y+Uls6e{9FzW1~ygK@@C z<5Q2AP;RSI&QY9`m34)u49T#n)%JW)W3xPIp*p4<_<-}!I?*ch9$z~VGd8Aze;~f{ zYqk5{Mb+$QcKAtJbMSI(oBz8aZOG#)9qpe?GBH6isA>$I~m0>r*daLGPL>-d= zc4nFhB*er01dJAqE*-ora=7c>^)aQsJcoPJ?;l|YAG-|Z3AR#HFMNEf3jz2YPcf;M z8c3dy?BWY|$h3WGNhGYYCEw{FH^$k=yPXi>fMM4m(Jd^HOR@|Fe$21vXy-ypo8(CA z2>Kbm-=*!E1Dgnjl>sTOfz-wpD+xAlY7i`D2r~M2h zg5~M%Rtd@sE^2_XtaD`=O#YvC zpO6N5c`8`$I||G~{1o!1eJu&JLz~nC>34$`^8S=}3pZP(D#ZCF}tiyb^_cT`!zV^Zv2@M=I^@^o^pVSqlY6GG@4_cs3}R8)qVfE0or2dU0;l13NRP!aW;H{<=`A8 z_c*4jI2^F*3wd85FOk)Dp=VeeE-^=IwnwoH$bQ93vm z#CF=C*x)koK15W0BYjOJl<>YgarCh904Z{jlZ|Pu^T#+)sz{Yy-W6fzkHa9dpp}@P zs(h8I8>XOMj_9kS+r=`aEI*ys4FM7XtVY*MpNsHX)=56r%6d9sPE)az7S>E0j&{8< zW89d9-)kHs1OPd4aKp2q5NQ@VpTa2~0ZE-Yp{m9~aLW5!W8hU@;rnF*jbGM@+_t@~ zIt8LOiom<;$Qy?^}pATaeu2q+-QZ3 z>oe|%ogZv)!6>;XqSC?5dPPb)Z43;xx<2O)IhHRcBGxUsKBo@4)Qw*-s3#eJ6vUzA zlKh~fa>gHyaMW$4wfT5_Enng!gBrM!JlP#9tg6E zr7?geTo=rc4)8pXy<9=vZU16i|M_|0{n58M1fNaCW!||~Y^afM=rsOp<_>%-kkAJH z79(k&h92bX`c0iww`yQO@p;$wCMliu9$d8c$Y%n$ikt`@|>B}%I`Lb!Y z>tMjJs2sZc2iWg6tPT)6^Q%l87Pkh@lKW-$7fr2L5};3-oBRTW5#q{F>sxbfYjif zPMmH0l~X_?1y8OhKLh|;(K3^^{mDe?q(bPWOgznY9!9T z&Hm24mZqEcvR4%bS4gN~$e{|0qQtsN5mg=aPBxa8=i|hY!%tl!?V&;&pu95MGq+X@ z9v`({^hH&>*^>jgx?(s3_=%9f%)H$gcsq`)ppS?{X{W=^PR-X3vmAq407_;&`_alzW=R_x0qULeT;xh7-2ah6?+lT3NmwFNhA4` zk+*QnTRW3nv=@GQ@eWG%Ty=g?4D^|BRTNalEE_FrZQ1aH8T6+IjT0w64~0#v@e=`@ z4zCd6`X)=kPPLI+P%pmi+uTE}r&s6q88Dc@cv(z+Fb#}afJ<{{#ez(<2SksyCEgWk zhieTHz>53l0viJO^J*&L4>Q~3PWAkjJVwSC$y`Xn>LxR~n0^<30|V3|zBpDaJnKd@ zMY1^L?hU)dT@g;#Oa>nGRjI&LsrdaQgDTA_4r%_rRcg*BO{0l*e{oLw@yP56N)4uT zkxZT0r2fo%bNPLp&VhNz99L3#`Resa~cX#;bt6O&-=4Gl* zovPX0d-dwIy4gk4VITqK1o?@@?q{bA@v)rRP3q(O41D=gatU#Q;7ETCQMNO?9kQEPZ)!w1kS&=Gm2ea))@w~;ny8;+`gCms1l?o#qjdW zD6i$9Mu2^ZOszunHm`P&+1$g?CXn#%^`6#MOH0IAaHZ1{v%o`gyW-vg;L+;kdS_I- z94R4yzJ6zbV1;$<`3F>-*-D)M*IpArwS%{S1u8UA7PWyNtMCdiQLWun0i}gb6p1iR zOpfAK;Kjm<^~J>jM8%-2vc{+{Wfq@HHM{zt`Wh@iWiG4gsv3w_kJhAA_2eR~^sx8< zmJKuj-sK=b>`q8Y?$p2;zDX_eE4*+N4-cSbk}47vJ9A%oc(n=76d$9~Q4(evJu>g8 zt}N^75{;yJ3taj-!HW`q@lCMzfa8{}@F7rorC4N1)WB-gWWux13Gch*b;ks4#~o|heVz;D|u)#6<@=6Xm#JJKRnU2`P9@uj!xg{LIhBzB7bJ3q6O62GPg53D^Mv6r>g5`a3RClU=k6%p|GpavP2ibIL3BpmdcFA%z<92!~ z*I0Rbg*(&JS4d~sXgLN)=Q-aKAu z(x&HpG&)`3d$D)%Nc;2;w%QdHuZm02NGAb{Vj%KM{tY|(Nq@NjBdFfk>E%nF@l=QVIGX2zG43x$jZhI^`F4(Xitw-3^DiybIFD#gm z3YqC;cbxCU=l#?NGgJiR#@pQ&vN~h}uhqaSCHsG6$~Y(f$dyIgDxa%Qw$UpJE7o1X zKn}u>Hk(FhWOA^ap}uI9$-zBzg?(YE!x^uN=^^T3l{{OL*uOb^4SNplE5j=F+K><7 z+vJWj%i0fB1v%TVv?x(0q+A6M^sjnoms!*&MVW~9H~8VspI(vMgQ7E3gmEiz0F0%> zQ;thPK`1oJ3UR>;+xjxGA0(HF)+rWCM`%fjtmlx1S>iIV)7SJeQ+|E*9FVwhrfi&v z(Zt50EUgtdf8kaYNT?-lQq1h&WqDd8|B32XWxQ9GJxhGy?3vf@>?$C;!ER}!ucAf( zH5_r&^xXMcajiXHbmOcgeSx^|W|K)>5Su1qiu8dP$Atjc5n+N#(rE5yY0Z=~4$tHu zgZRz|mEDGwwc{O+RXwc(YuIoComX0>`(HPso3Phm(lGD-DT7yiIr#OgpHKUSOsnQ1SF%G6?e(oUE#L$q!~Xt#HeuCp%Q_l{13 z-O|hrY|AnXEjET$9Okk;oisw+luEJrAof|@=+iGmu*UbuNXjsBGoQlQ{?W__W;mjO z=Pb{-W@ss2>qt#Hi+acV;gXl5`k)QDx|wG|VxT|-nM>MKMiba%F8v276leACpOs5; zM1ale>!~Z&NPZnRULWNQclj;s+P&CmFU9Gh<*ejCEF_7Kj{Yx5I*94Ujt+$zYa(0Rp#%4o zH*N%;)*kSxLKNstb~a7snFW$$y>HGV^Cpooe)cb&tE`X zteD8Ih-0S7qQ{kr<`KN^FphN>N=gMhr+JYKQDTokc1CgPBo-kgON#pU*oiHFa=inI z42kn=%|ZoJAVX{ca|SIqzVJqC&(uw^diO2sY*xN^-KR&0_DZX0m>a>ZEtg^9V#kwlt>(}b*aQh5 zN$EymVzljW$L-*T!^Z8)L_D%d==}g{8@AYwe@7}eG*5w0u_Kh@{1J-ky_`e z-QhYFhtQdcCFbEu)WF~(?u-X$Wpk|2=E@b;m+K&x0i`jhX?zB{h)}&K|B;P@@Ser7 zwO`GAY}c`CxESQLC_>EjU!63xbroR&WEBUw8)kF9K$XBiCHK3Ot-I=BJEVea5FJoZ zTr9TGe1AVYt?iF}mZ3u4ZoAcUfl7bm{YdgeGw(y}ot@o)^Rq=Q0~y$>UWm@F2;p5x z-==T|ekZZ*6!WBv|A3tI@e?cVoT$ppnz1_USN8TV?^^fwG7j`St8vfeYx(&WQhcDw zTSD?Z!7%g|QkYR-^8jj8`ofI_?~t%0VN1D$--2WqYaYz;j=&Ltcf=*Jb##Sdl+)SD z9*+lKz1|8MkMDbuNL#8jTCvWhC1*xeQcCaueLFvvXBG~wKjCcpb_`a$3$Hx+dS4}c zF@7W5Qg-k78ah_N0-(VNW@|tMmHaUMIeMfr;R8_+gU&vK&$U~eEaptK?R?Z6Wm@x~ zzv@)XKyr<=tt%o;pofKg9z!f;7TTU}?S-lnFR6NsUd2nfSEys8C}XaMq37WeO}^uE zL~a;`>VNwg2@qvv&nM|=gV39*brFo%IUQn#*la5gDk`^t6f+s@b{ka0}7@Aom>G^NvTAP(}h2`Sdsd>qEakYpPgGd)?qSMP;U5nmbN zHG4BXuShN4Fsi5UH|#h(hsedv!>u*}5)dQ5U{X^twHyWt(e{Il*bMV?38Yrirf$-L zGNs@Nytkc|HFoPaUMBR*F#03YZ$cE3;^@&;f{i{P*IKj(o#7-Z3dwu@q57ws?w5G` z%Tx&Dto(B?3b;`aajIBT?`PfC)T<10&3J=ht&j>Aoyh z34LaV=3^p5I>C}}E;tdX(`v1LyK1XqZ*=gb&V3JhmaUI7m{Ncoq=wYu$Tg$pV*1*L z?sU8BM&q=RWwSDjN5-QeV3wM0g$per58~uFO#(Rt>Yx-}o*RfV+y92kke;osaa1qQ%!v1D|G0xh);S^Q7DRV5(?7s^^ z0-(pNd6tGzv#waEho$`36*@H^BU=kD0lsKdmONDN5a5^Dh{yT}nXX`}?EL&(cR<_M zvDSHeC}Y+5uIZPfn}Z*&%rx3A5uZG$e#5#vv4O;pg0VA)V$FMinPan z?<*9fuNU9*7M`E!6ot%m#xpuHHCOXh#`6ys|K31~u!d})0$6cN;R;*0vIX{?}8Y_1O!b; zjn$P=LoCFR#C33Q89nzjie?Eel1@hdIG(V}B0i%V^P5<*wo&K&`5Ku!uZ*g4oshDv zZj3=7p_8}PoGWHq=}jpz8Pp2(=G8`JisFH$Z_{FXu4R+!lm$sh#&9X+w!P;_KFvz`M0wh% zV12?k+^BTOs=A<^@Y}-strZu4aPuBywFkp30vXitU~(b$@JzitW;x}QIsL@Ahj~iq z=!J1qspFEYnzG#u8Hq?5Ubft_$KA5Soo17<9|?gG!Yo>D#cK=?d2!!mYTd#885&sp z{F5Ra!!Z6QJZV?_Pixz7Y&n&b_4W0y!JD|8-AIr#erFxE3V}ovc!OzS&&#uIniNw- zeU2MoE)99Ra9CdO;30x0D=KY4eq$TyQ3X*aCt&SPx2=9}Pl#T}FYKkv390x=m|u`K z3PMnqrBj+U@o^q@E491(V1kb~O8rN2ZTxK8=+n5rVUoB+9ak#oGg?Cdq?k?+SqhJH zt`jm(BZbmTd)VEhcDxc>4c=R`;qtA2@5i`yHMmSN-6@N$(yC#6U&xf3R4Pq+dwUD( z($Lu$QV!jkic`A`UwFR}ihTGu-4Jvg>8OR`gYy|g5w4E==_DUY!;`SH3(*Did1dN$ zzyi$U#kOf>wq#e_3Wb%Hjr4;FajD77bQ7j9CCMpuvLd7}_@52K@C-vql z-x<4hQJU7aEx{eKt7qk1VNLt=%8Cpvra~Zrm&A^UhM)&b%_wj- z=&iLBF#F-H4it+V>i5kgD-v2O@|G54EXaR4)Du;tI$@oikaqA|t2FWF`1hAaRacHd zbFvFFqqF|31dQ>e4S%1%z&K|8DEqpwnn6Kx+A(Pf?qzQ+2w|o%F5ons)OC&4cCJS( zKj!7mMrnY-1?spJhL!?BUp!f+z6cw`x)_wO;T9lQeAQZi);$ygGR!=?sR_O50wEy=sl zy?h7RI9+(Y78iX>b5h`uiDxZLYi>IV^)QGMbq_r+7c0-t^BV$A`SIKCYdzPMRp*@# zTJ#7?f6iK%s>O#%`NK1=QOZxTZ?P4D~m7W7KI^7;CX# zY6t)i#dwCwV#k3=z5l0>KZ z1tsQSCPw40>l>I6!5^pXkP2Ua1l{C!AL+(;ny4HKf4thKmOK*CCgVyA}l{L!9c=u_K{x%d$5|h3&49FQ; zWYvAcUu{xz(*u_VPa3>JTDb(lRb2rp2neU;PGlB*)jvLH>+O=s_buFxEkT~SbzQv# z5+_N&ziAh3P=TZ;A&TCR+(okQE-w}PHc!H!m9(rLt&ppkf20VNTlJR z&$u|*@_Wg;cO38m1Q>GFZ|LlD+qkmam9RFS{E8T=Xv22c9ZouS7P*-glZtT5B6s4< zAi|57D=-dVUiO(R~T0- zCOmb8g8Fg5Q8#Tb$U!f&OLnU*axpL>vfGzh-r#~L+Zto=CF5L$O?_ur#f>@DQGn0z zKY$?)`H4HuCL_&aIn81v%|R#4qPul266s8gxvvjS_#wu^qL)Eh7$&-@Z;BmgYZQ5Y zc~QukFlS>lZj*6B7yUY2UWqOFg7VL=@8l|jT>w9RVSer}wf`R!aS&8cXW>zSX+aLE zCp~#APr#q62v)UY*A>-;-piYgF01>k;0|Ni<^b_H5yt?#p^ zm-#%45Twl9=DD#>A(#F{eY<3p2NhIbZ_Z6{c)ZLd$ay>6_Nb|I?B32g3C4!Pf>9UA#k!tmM+R(UD1`5JNwH`S8j>b8SxY?Ofzqy) zOa+|9AYm(3TkcUxH7Lr@c!HxZAyKrL?Ilubx2~E$(T5H`@2!du0sP5JLYA_7sbonb zTxFyYZ^uLfwGo^!hG-bT=33~k<*VzoT`7i)(1nnFq6u#kfhL4IIlc`R)aK!gO(TWRFcksowxGz5+c0094AVa#aJ)y{ zy0I=>1!FFft*Pgrp}s*M1T^}suHxQrotb$Dr|N(cYtu# z-Z8>pWIg|4pFd za!yInTQ9iJ3^)@2%2+T#rW9}h5)=e5)9~-fk2#cTq#hja9h7e|7L{g$N`WMh!nFC0 zdIP8HiWkd@2L5IqMPcV~c;74cB-BwAGRk=J#yTHBPDo)Nh{|X4N>RMs;O!?JIO4z9hqXZ>6jr_cycau)=he^*&e8_mJnEB1WdmX8uVE_pVS^#exb5T%1Rw9>c__u%WN_&GVg7;5KHy-)X%Rgz>MFGycnu zr)Z@@KH=|d(a z-qYP<{iZQr=zg)d&S9MZNh&KFAHvwntGuFGT0Vm8haApYjF)RO8aNj zc_vqAd|6BU_Q-|0deD$Y{T%4_utrGe3x2_lHn!OM9~_j4J9Qb3AHQpT^fzIEx$z3k z{;$-dI`ad{UZ_D@zrs`<8(4mhZt#!I?QJ^7^3eJq)lb(%v# z6NM(CWl;H>0tT4qECia?w?9>$tG3Gv}gz#%%g}bgl4S=xZ%~j*o{Fb}(4ubF}{?#S?tsi$YXgQ}u=7(^(wi z=Fcx}I*lt3o0VZN>&LVu!@qGnC*m2G8xQB!9Pdc^)@!@2vrdhp;R~Hkj()EBFBsTp ztgO_xwpTcxEraI4ar2KO{hPo4Nr(Fhuo(VX~{#q}dZ4mP!F8r$!1=e_SybY6MgA3YbBehh%$^Y6*LW^=))7sHjV zr@Z_(zoiC?K)=`c$g8Unq8BrA{I^wxd_(hUVCM(=+V_$HX3f)+R(dk(mI4I2s^Zs_V(KlArAvZ!^B`5)*a3oOdqNcK=z+OiQx_ez_|UZ{U^vUJ-n%1Niz;J9*a+ z&(|iLOsx8ad|0YuL>$}blj$!5y+UiOM{N*-_c+L?B70n4h1o(#T>84w|Y z(w-WGN_KF|tY_Cf$M!XIA6B?g$}C7zNMWmI(ksW3Iid_1c3n`&oRES|zMJ8#I8zgl z5m?bu&`HoJ%8-bl0nidESgr(c&IHhC&^&^qLy6YroDzpHI!x4a9GHZ@V3&|Sd?sQ5 zK^S}4h>8DMnMER!9kAQ5WGoIH^lsQy5pb;WtslCSS+5c3o3GYC2LNNk;1YO^MtQq3 z^wnT(5skHbBU{q!A5}%T#$6$X2`Wi46x+@2?ul6)>v?Z*g8j`x^GZZfOjL~>ayXf9Yj-2Kv;t{WTRY@FTnIfy>W+H2d*rp+f1-l- z+;G?8B(q>0uUbKQzZBBydcEE+OG`V}W&r-!<+a}3)z~fM1U?ve?pY{|p@OfUTK#U- zF{_RB_vdh&4>-Wy`!v?Ucb{X@&ejI}@$j}>>u~StOD6C5w$=eY;IKe@0lX;y9Dn&@ zZ}0*#>gn~lEB)^8;%_z>{I)iOG8#%2eD|E^^*km}_YDHjSa=wMv-J-Kzd}|PuS9;w zM+xsQ@XObaM;+vO{qeUnT6k{;6c`vd7;aQMzQx?qb@ao~77xtYC$`KtF6&N00y^s) zA+Yz30l!SIr1&0uZXwYt6(3H&Endd8edUA%QjyKF6wAlZ#qu#U_k^KGC*L8J0yAb% z+ZFc6oB<~RX6A|o-Zmi=FoN*ZK9;6P+B5l3VKzQL`*kcTKU|23q!Z7zyePZ9=v;H~ zi?kSqXcW_(^An61cwZ2lTV*B558svLZ#4gY1TT6+)tJaqU8%9DR%(o)m9gBZG2AFe z+2kTvCMDy!o^o;c1EX%LSuCjU(k|tu#p~P4Wn85K&;f4UuIA8EDj9CvZgD7|528jx zEypn**@I<7{&d@<)K^cVLrG0HP`2QYfJK?tE5$nHpXr_-Fk52Pf6q=NCbMulul#tp zo9!ZIS~km?_Y%S64mXpL;NX>#a?W9=slBbC8>T@ZhldOz;Z_7l;G-6)!;Pt<3P;j^ z5Clt>sflm&2;hfA3~oKAJpog$m&TOYTmD@yqBufjt?OB_#7GKOB{AAK+#RvzEp=;z z%&e)CS7}N8$00YJD5v!IAX`hPzb@4|(7<^Ua#Z{w%A?fzvVIjZ8Pdmj{tz#yeA9k7aw+7+^ z1TYJ?zDW25x60w0?Wx~+yT8GUkmtzRIjduDb19{K=iU!6@Z!H6C5G4x&;I77KvuXJ zYBu74)b}eG{KKpFn;PIWqXDu>dO7J!Fay?=#X|}Eu}`qk zMGXV()H;nD_<*V{7IV$PX2<~P+Ds|{;uYxSgR_4KSPHHCyJhORNA zf`ykr4hYK=!nF^PmvUPKLyMq6Q+ z@$s>jAJ&y?VW|~mp7;6^7xUmwKuMeJmSAm6z25%Ye#OsM@8peqEYs~QIi{!h{I!); zH(p>-@fxw!?>Ua|!@|%0_90#{W1Nl$l(d`q>4Blu@14$bokx)KdGjK$m~R}M(XJ#YMK97 zOa`8dy@bM`p>#P5-}t$t>Ec&}Pq?9-kJ5^5-gh0J8aLT%M876_0tQ4J1j(Aq|M2LsQ5sd#t?kqJ(d83u=*?r7rA<#m)17 z8Tn<-3j^%!eQs14YO0p!#6*cW(WB%)ml}!ZS(dhZTy{np6o3Fo^d_C?n9D4-TGEyu zOwn1gj&b%>N#m6{&EO;XLd2L#ey%J*^aW?s-~b8gv^t|Q>_=4anhPAQ(hZ&uC^7#) zmA1wWFPi=iWI#+h9Avl5+ur~e6(>gRBv~4|H2U}c?p_;1aLI^ZQv*r%dqmQ)`wnA8 z24mODy;=wBt>`d5HB7A%76{h`0E2w#Ie9fOo8z8d;b^N6k8JQV26BA6*5c|~%*7?f z8UCb`Xa|;ZfVHXj9VbHW2f0RYK|_yT_3NyHSyAd*Z=1Em0XJWajM{fmox@I#PhZzP zKX~>Ly(&Sf6}P#b0R~Ao;kxiJ-_s2P|F*tw&4aU+FI+^q%}BCj!Ro>1bo%#){MTK( zR{x{ZQmYNWnZI8QPv1}P7C5*#I`?c?TuW9sgAp;0j=KaQiE z+$FTf4pfiiANm!)l>hknagJ{FEeXT(cFW|WYVq_WbZB*ijEJqlr3Ye4|afJ#I!sd02x9>v-er}9VOV@&CAQ)tL<@$7+!sTK25Nv z7qeO*Dt&+GAAI2+q1Ev&)1C#&2v0cV)N`X60?J6e3P_xOkSFhD09*h?KuE75d=iw)gXA)D}IGiSNBq5_)tDe*lC@lY71H!mQ@= zVS$V&?a?7)?1fFksk^Y~q3qJ`!!Z8973{(O`iHYEW>mug-t+{YUA&0FO2C2XnS;*jUr-fxQIGptT zE!TaHVJ1I^(BV#{ym#Cp1K}ihqAL(oY!pLpgpFb(AQTGKcRL*brs_W9+`CE_8k-{? zpF+Z)Ts06mT3GB&2pAMzZt;;$sMPJn3Hs%;Z(CU>?x?x!AA)e2Fk#6#=05Y4AeAJy zr3r2I+;=(j@+{piaH2KoHGV1o7jv)1^V?lcn2zDteb}eSuOB$x~MDO)AzAs4t1tsRz7JT>RWn^ z>5@5TfS1j6_mZ^b%Q8AaX%|6=sxTC==o4&inI>+ueEZgMT_qE~hxh0H2fImScsp21 zkW?bx`&C{yg`tXdQ(%%fX5Y0T55Kr8rx2$AfR9UR+RW0>PIKQ#Pp1UuDRvDgAj^_q z+)Nky!1b3Mqh#G|j;99&*VzsR0{-P@>K}VDb)FI-Q=^~@&hyL>w-DCZ5;3CmkFa!LokR`tO3i6+=@YslDlU? z5Ny>m)peW%8grr>%5`STdvhvzM$&9O)4_(}sF9|9v{(dWLI!m(fDirkLaZYfV;g-u ziC4NHv@hlgC%BfsOZ-*x_SdX|Q6*j+#^a&V^Y6-9nurkciUI;ykS*`S?n6(Bo<^ zWKWhOZJYMaJti8u+xf2{xRzPrESd^uO;1u#W?H~LMq%UX??4=sFfx!q8El64s5dYc z{xh%Rf$QTN14nB7{#Gl{81cE{*U3}s{fEtDUEobIsIKdNXTdMLMAm2@)iJAdtkGu3 zBA%=pn#CQdj~+sXMzO*OfdmLDz(wH%j=47rsH2KTHjyTZn_v>eIeC9N$h&5O=~4vu zeFi}&$~k3nnRbihB@5&f^Y!fi(0eY4b~g!BEl*kOCgw1TXWJv`DHaX5PX;B=n#df4 z68c)yhk}A!e*f*kG{UsWLL{(v(7AF1)b13fnqgx{PJ0QdG^654`AK1hTqZF_3hgy6 z(G$}jNuA*47ZEloZULTlGpnAFMM6vsP7Jbdft5LD4tKW_KSC}aTK&9~R zJwHHqj(&m*WmDnv?76yafHbbAOUO=1l4O5NPRF9Z(GwNedIp11zZ);AOE>dpqJ^eOh|#x7}}+^nb$HjETooo2K;DKPl<6&Mz`c8vzTB3z%1j9 z>CF?IYa|zfb4ico*;$EPgQxY(7^6f9Uhq6Old0M30JeHO*N$c+>=aH8Q$^eebNJSlev>q!rm)^lrIZv zA9}DjXAP#8Xd(4@bRo>3vC?gY?AXBplcBycmJ?M%isE`H@C!l)JX+cVSq!ag>siJL z(hB*+u|ep&fWXH40h5K263)8%CUv?LzA+)zJPk>Ive4t3>w>^L)5d!|o|urFbClHB zreTyCDtNFH1hfd?%m?rV5pY#^uM)6AM5}<*aZ|n=2wya>igjjQWQeQ&z4{*sI*nYzw>Ip z@H^=IkK0=`3%o@Dt1Z9C`aOq7r`Ks;odv#?S&|_EvaCZeH?FqD2%Ducw!);H9k*qa z07+*DrJ_$A3ZWx?9~Iw#_|u{od} znaN|reZem%*Rhu(Y~V(qzwErH$4?MBQLGF)3TbWg0lNVMFfS#b3ZGUHDgP90T5z!0 zKV;1m{x3$$8VnG}#8t5BQqI4~LO&4hV$-Wjak<`UDfk!EkM{j;wfi0o*4je?Xyo68 z>sD-p-$8=sWPbw**Bp^WGY(6`Dm#wT$P#6mTtu2&Ab|f;-kjsYMTp_et{H zsmnHeyod;(7Dx%b=joLM?jm6B5W@mrW*zeN-ETVRgfyPnh5W88D^KrcNvXDqXC=!< z1lFvos}5_?V*atv4_82tqXg|Nwm<vc-$XR!PEeCl*^CI9+;H9o7CzdX6UaC*Ykv{ zOJ|$KxxY|>gmadWq<$vIzVq+lYtzn>m~5|4@5h1rZz4irOR|D?dnL|)MQLJ6;B_R# zS(q1FFS?e?wz0uPOEt0~0w6Z_r)$`XU~$91*KRHNJ6w8RJ$$hT>aC;qmbd(7*m&0d zk@;8UaDhxt$Bo7c+G`b>wGDr#g@NI!?X{ghh3u?C|C?HkHS(? za7BCGhPb$jEQS!2Bh%u==;?l72!r zo~tSBsH|CCq$wpTQY&b%B|8Wp*N`&%b-OS`J8n%yl$&*-x(SQDaLf#+cwm zg8M5zm8N~u^?wrsW5V;n9ehqz;wb1(zUIaS+<(_5N+D?9ko>VOxr2K=rY9d>xJNCO z3SxKJ?B++?S0{=6*;NgRXqZ0kYg*@_&4ixc{Yz&&X@H=?Y51@$Tube=>T&`(L;|xs zH%=q0?*1hRgb@pF6?&ITQ8I9^q z!OawKA@K1=C4?^Vp}@61yUdFUtcC{sEluZt`Qyr%@ZYx`WA_jt&Et*H`>KJrmes+3 zK>-5>dTVzJ?I+;I$Ld1!M-_aO5i-}{7vRGEeXF3@Fi5@#OW zd>ukzda``Mh&$oi9U_B!WiVOE!nA7|iU3|kp*K1}t~%MI@P$oiim$DD4+9w~&BF6^ z(QsptnV(-Br>al>6LondiaHqV%2Q$X3X_$0nC#>sGTH+{>iRZ%=+POP0WY0l^8c=s z3?jhBC#FbL6y(LM&lR-|O|MhhEf$7fKn=dFy%bgLU?wEydKa;SPg8YbhzF~K&3UE} zRHS0Kd4j*cv>$RrOdU0?Wf(AXFOaS3OyQV+Bq9bk@}U3AN5eVz%$E~Jc|y(yFQ4Q` z@LNi+{gx@9ocwZ^7wcqBg9Db7!U8%I)SUq-Y$`RT6l(9zfHZEzA2E43RkgJ(zFm2+ z#rGl3ItzOftP}dWB}`5*r9hXP^jk6<&fdz1Ap}`cvmvn^hgP&;9e^Mg= z>1qsFdc2Zs96o#GN7G+$Oi9 z2Cm%>B>M)Y`yTt>+7*$0oUBH-zUg>rzYaBXrS~`zZ_FksYSLdX{R@`h1QQ! zgOj!&adtD1piI?kaafsW3EItIR~1iO?%>Vfgq?1V&M<}m#L$rjEe|d2T$ULxcC6He zoRH+=hkvfj99WZOp4pACAX)bhV}zKarI@nRc1mS(>O<2r1cJpT>j5k2*}A$DhCcUM za|h{KQgu(a!~dzhfWwQk&Yg+C_QP#Dj2*Dc73C{*5EW6Nz6K(3`(csZwIoiqkLED4)$wlR`LaQB|sWj=c&wU2-9w4j8o4&DQw zS}!`jxp?N%gA5xi6#@eTXRechW^TR33LlvgE5< zW3{)U{{swrz^1T$iSZXQD5Cg4dwrgZrYx=qOh9?>u8kcMm~&?Va0&i~4uVszw7|#> zq@*{{H~YC2j~y80G{5m^*V14c8?vtJen|gzX8N@>PNGkht@Af_YfZ>gLINz8M=vg< z|Fe09y1tIzzJ)2f@Rs(~2@5~}ZGP_>3|iKES&wUK02XUzb*4G*`>QwQlrWc}(cT`M zi?>h&^%DWW{71gnq|liAUVWoRoOJ~}bi=`ZN{C&us1Gq9oK&B6De#w&U{-Z4eCMFN zc6{sd4h%e$FlAjb^#JqGp?1TG@nqNj^K6dZA@&M%GPkCt1_w5=%<2+$ z6G9}|$Y-kiX5I*+wxD<_L#t{SuqO06_#t>Z#nk)I%{IYvP~@&v5NejLjzq;`9b%36 zi9F6*rpP#BC+gX=!Hj|an{@{{P7wrgoR9k7gc}$rD#fy5|6e~3(tFG7h>j=%g7~<;mt}(c7)VN-*$edSEVDBIAa^jWvmgL_{&tTui+F*1YQWEY zPj;!rpd_*6&zk3l?eFmgeZN|>-J8r;Fr)1a?urLI&-nJ-{rPSu=uHSf4<1} zKWm(`WyZ{|c95savX)@}XleV@og(YvhXv-`1`A1603b%V7eSp|@SP08^8S_$Rf_R*@GZ+mE@Bq})_Pcs@+EnQ>0rml(E?ZJH z9Zhhe=3%;w80CvvtNpqaREYEZ98pOJI@rF-n5J9=_mC-T3aO9pR@$3v3kZChzK(sm zZH`BYoxQ!=HFc-zI=k3gFz|eGUw{CR@PHuA&C;0%8N@ke_7zG9sGzihUjljKC(j#x zb+))gjwFUgm=?Iw(k{}Q@+&g<9z{;q)*1^f-H1@gwkHtGmW0!c9>G0 zzxm^0&|`gOaSBS2Cj@@`z!ody6*>#5?n4Aga}#`uaINgA81dmbCsv_SpKK(g{O_<< zpq1||#+jYiifCyVXt*mhGk_Y_dWA7FE z?QB0HGs9`p>i70eHf?sB8GrD4c=Ot|QTNbE`GQR@sv$vyjjclkubO5NZn2NhG0CHf zbvJild*gnlh$E$3T}bB&*R`o@j0KRi(GkTP1>F4oxNTQ*TyNOxA%1-<^L&3wO?P~o z=el?uH^^_*n@B~>5wLW3Mj-3WKRNmW9h8*-zWJA9`-A6-&7|@++HY17Irpx4zSyk$ z-uQAlE?uW~3VsZCo@ae0nBAI_S7)1UH3%HM;qwGfb~*4o_j}0i1`Rj8UdnkocE2)A z5(>J_owX_{5ja2TDe~{}G5Wtu5WgRe;dmUCOy;HIfO@kw`lg^1e>T?DIZnql`z?Pb zNu}7oRGt_En1u`xfmil0-Y$ij`Ss(4?8Ym$xFeehV$NWEe8HqVX+^6t+;Es6eZ~u` z%=QXDjq<<4c1wC)j7_Rfcq&8<(O(!lIARh0sp|Tmm~XV@$p*Nb>Hx}5nX~ds0g#|n ziUB!mDk;kKZGnUDJ|LbtT}PJH7N3{Yz!|&&DdMM~L_gt~()!4;!mWC@GGjh@OH!#B zb_EbNEu2*HeOkrXv_PjJF5!AQc)w{tApf*GIS-j!Gi5@{arf6BNUr~MeD(CQtII{} zyV7o64wDr<{Meg+NJjbHNxPKM5mCwfQ`{n1prfj)=LT(ANiQ(Uc7zx01Y_6b3;3F8 zvXu(E^Nh_CuY@C}wlDU+17by^AI!0vKjPgAaF3n1u_TIZ8p=7#?)Hg!RxZp?1^SG% z{g7$zwVIhniBo%?h&>sETpVr1b1k16JfSH!Yd#!7sD_ zwY=egiX@c$d~xK-o4d!F5887#D5lOb$<$|b95Jd0)-_<7=c?h+%vv)k50yD; zWTTCCTY4l#*v^R=Vl+!q{Ml~SaWs>dNRkCT;&!H~CKkW9;8IXRf2HtOT*h8y->5EP zsW_S)$&*i|ox`&NdTM{WI-y@|rKjK2#^|OpDj~_o)JFi7ezvsZBYvx*SMiTH+Qc(_2 z(Tb@W7qx}M-#&LQ`XE&I$N|YjmHl|m3OnPJob2DyTXXKs3rxx2HWgZN^oiHtfPEHy znmuzyctA?FOSl$G#44G+zQNM4Es^*A9)3~p#Fcelv3t|WORRM82ept9!JIFzB)KL( zp%&i{c2&TAwZ0KtC{mEC?bE=s4RH&+GYbzN|7pEqGsC@xv7;%-@W`F-0T?(VHf3c+B`#_k^{u(k$|5CTY5H!m8Di$Rhhi1 z>Q_;ecyK>5G>cRrZ+a(7n&*R4~Yxe#<`eO|gA z>()n7&KKSkcAGCY-<~}M_q3aC>aFcke_@0USfq;h*%RjnSOQ zu<0iGi2xJ<#)Z@H)d+5Uuuj3P$DmRp$$#^>sreREEU+_E4z*x_?3f|X(Edos=)(c~ zC^*o1GgOTQ-340i)@ozyFJWrg=zKBlIMHq+r&PtsM_q9EO%QlC%p=rF0kIW8^q+{!hbM6$qt02Dyx(J|aUS0pT`15x7()%(q z%J=N&t?2o-LUL}q)7Kd8)i#q+40XNb*>*?Nle#)rLv(l`$+~r~!?VLKZfs~M_*@ap zZ@QYy_p`z+gHM&djf{DTyO0m{?X-BW{e$lYZ^o=x>J_P@w z@s5oNP6nf&+7lia`$PZ?88AD@p@5caVM~_Tg@*S&I0V`W(Yt$>8M#P- z!vK3+xTj~D05DJ|=u;l(rjlNJh>iRbci*ykIcdro3i1s%P{=kPICd_KjniSuH|GH@ z_tdt3mZ`4Bq~k2~y-kVaXr4doO8_8ufvx`F%asCQ-#Jt}4wAzkh_o#FrHSSGlA_TK zR4Q}T60rU6bEz9l>qupep^Z!NZC!2M*9D}(*&|4S7U}gR!RFoO;A{a;HM#FmcVWzo zU)n6O^V*sy_Zo>NRPjBtH9mHUR1n0or>`7Np2n1cDwEqpQA9DM^YkH1#fOpF2+&#c z&=_F@^=Hz#^N;D6#s6~w(9L~w1Rka!IDM~rM<=(^V#Hc>{zUP0bOeN`qNEK&S+TKr zx38B%PhRt6q@>WO#q>XpsEPh3p9ulRhZ1y!n90mBdc$!+#Z^Yc0rL6jX^+Y0F%XhJiEgsZM0*Xgi z5&N3Io>_vLuAcx&y46>0%Kfw>a_=uEOyMlGcubk|^+8Xy09Q2f@(a*XK?1XrUo5Ka zMPF(`8~Clg<}{zCn886uXpx;D08Roh7#ir#_NX4p#TK2Rho=kc>6X}X1njwlgslWU zk4S)jrLhVtSrTOsevID7psCocvh5@-@K0sr^HKb9mFQ#FO22gRB()IS!1oh53(4U- z(6r?b&nEi?P(-1hm5`HL`*oNhR}_?Mx{glP+pDhoYhG1dPqjGyvh5Z`>5}{pAgF(Z z1Y}vc7ytkyYUIt@tiOHi^n4t@Z29aUdVf1a=EaX>TFgy`a^(7gbfx2($;M$xkp#of zQ<=swh^GI%lGO1T@ag2m!|+RH{v`MpoxcHAx@M=(dx>g$*=+4+SLW+wr(j&x$)%># zaU?-TNCof5Gb#WaE!|7mcs~xQs^8}}k?B+afHce|3HW001w4I&DNS!&y;}mo2G=Ez zVI)?s7{>3;i_$SyBDWgE7MvqKU5_tp^?kZ5v+IYdciV1Qu*1dUq<{FO1eh zXY8n9is(niO<4^RST`POIStq;;6+W)9~q<8%|@LS5Q{a-XB-I-o4-B!bGQFHCKEL* zm{g`mOz1x=Cc8zkS3lZdbvGx#K5%Gt5j7PyuDA&w-H&p+%UCM&olpEwjh2a$Atyp( z$2wWsf_==4kgj)H+#T`UtDUa>)%@IZF8>W;IBi-BweL5Itd(oA1T!j;+&pDq9A&-B zX@fbNCH6pf05lljEV}4oHd&%ODR3ycw@8bqzR8Ug{{?{l{`{W2c`2w=yw3SmVz{>rPV zq>=pETeB}5nY|8lHGzt=%R?>7fvBc+>CrZ(F%q2E_E%~OcDn$uQ)4d?0ZPsS9(;?R7OKxGYYsc@sxjzBf?-6xMY~e&8;VU>} zWKv+!<3_`MjVP9(vO2Kn`Egnrwf+%f1&YKn7H6GqZ>iK6d#KQ2_Oxu(mpF{0-m$Q< z>I9{dz4_Q~cC-un-YgzZ_u5`GNt+#pEl+y8W-HN%ykiBu>l8;PfQgVSuFwCfQ~H9B zZ>ye?HBHYlR}BXsnG6^a_MBdWcm4M69K@dxs$$0ueR{_)g9N5-8ErOS9+U+w213mX zl#(St`4F2smVch&_go%S!b~x)gS0s`WG&8)Duq#zWwYv7o&>#mph2NSh9LSV-ogeh z0*J_B?xYZ#@8vqO9}4&pA4t*?&qb@$Px0N1(9SXK;CUT-p#W0NW0~RtLt7f+UM^fK zjeA*L8B<@xk`}cq)hUjJX3yel$hwdIBJAE8&D&GcOMeBD#cD0^)n%5mB>nzvN_(^m za|<$)jGG|{L`uJ5aL5K zO-4~vbkU*E@NFMItsiBc;Cd*NI|@p)rgtULHC&COF0Rn!4^uZ?-lnn%G;XD zilWP?@X0tD^kPje;kP1eD78DA{H=ULA6mAN6t>`?N%XioE&@y0T#NKVW@Yr+g0qF& z3IWkqck!$UI*e*2?&mm_X@lkSu%{Em-)V)2{GTjuXJ>1%5ehrE&(<7sD=lwc9U)`# zafIn?2*qWjK9kmvgLQfd+B}RW7p~1ZDKdo$)K&ChB*Dkda`N(SuCA_?M>xDZT6?TY z<+SDc+afw7{&bjs-g|eGY+H}?8#w5MO-texaivQ^sxH!TN&uzCAa3}2zpb#@JnT4| zeh|;G$RN-(AbS1tMpnOp(+CrA97EixI<4V_0SC=`QH2!HL9dD51uK3wPJ{cEwf1oz z%UdV%n?`SeV$oluR%>5P82HWLH+6Pkd0=crB>_CuG(X=hFV zFam`5P(99K7|ZnEi}Q{@H<~PJ+fe~rt-W+7+mWQ(0^!5~g>dI3;~6$ppivDiMImi; z9~XxZ%5U!}ISL-?$2La$I}m*c?^W^dICWJLCKm=k7~g{jWegM(APa~w&9S7x1h!=S z$tNpSD^Dap_EXi!;ofjveHC~fmS3sYQ4t--x}om{{I;VEb*)X>E(j;>PT&9ppS_|- zuloUQEZsj&Y8kbk%Y#9lfiH~uoGdSGSnGPp0@R%JoxTC<#2NB0?@&U`3<*TOUVW5t zg1)P~!a7&UL6AUK2!t%JxLDRB>Y@RnX89snxo!~4&u~htYg%B-rTFJO?kcLv_GySx zScw|=_JTF#k31N*gzD;PuLtS_`#^18Eq^3&lec{MKZHe+tw6RGTu`re?>A0xKONfG zI_27IHEhu9q63Kk(Q!wrDb;W9H11Z5_&z=lu2F`KAHv&i`g{?RV|^;hdKM*ZXfL<9 zU1LQ6kdgvE`X^)C*L8@aoy7Z&!BuHNOzh4&RxF~YBPU+{i73o}WP+ylWp?ZPRJZ9( z>w27Q+e2hFM?-W!e%N%6hw|c;6>LlB#&c2Ed-e@#_zvdW`7d}ig&qUtk#^@#6a#nX#g4tox9(Bu zlHCZR8E2Ldw=JH6i~_tr6+fuN#FKvSjhmDyvUd&h&;Zd0GRh_^k_ogg2jhoQv21*N zGANLTx8oCMsDCO|fUa{_J03SO{o*r09ys2x>iY4J7ZsbHyO#EvG8VnH!Irg)38{iu zw7+qN!(J?!Osm>W{W*BSkrRrce^DtrM2>i8m;k`)-|e#LMdjF~?{eaK1nclwuf^*R z`}DeXGCyMKK*OcdcpKXYvD%dIf5D|{cZzbC!~TUZE8pOHK>IPR>77xr7wAH#?1v0W z`_sPO@cd+W`PVSgqusW4M5i{80Y^;WsDNEJW>j;THldUTsPcmbdgikwM^3M;0$Uz* z2DO^NfsW7eBDK2)Ywpif<@A-v#mv|Paxi$0_A zx*T{vwQjMpbv8S00yzyn?5Yp4s-p66exX%4fei@*_Ktrnc|q)OA*Dp@-k}zC>J8&x zdso(x00ner7B6zOO4WIp7~#-)S`{j&tAz#gI(ASuhOI7+`~`|rr7yOFIX=SuM--wB zPiG#T>$$j($0Wg`KAtmuutl@YsR_~Z4*w?1&vz6YZu>^-+>1V5GYj$rt@Y&swsI*O zbl_lUFNI1BF!1>j73K3r3urW+n0AO@j%*{Qv;H{S{WP;)sfIuY;xK7v^ib#Ab3H0jNJ;AL!6U2{YbO;fcq=r`=-PK9B8gbHQn%wz>4gM( zraSD>9a9chS2mD<=9IOP4H1R}y&C4@dyvB=1ttcaYP(k0fJXHUamM!!olG*c%2jE_ zKZqn$5B7XAqoPa|#3BK?`B-pYG-Ha2iY$uIP*Z8Yxw-2empIShSkCt7+ciH37mI|Y zMuPQZjQ{f{n7Y_kI9~LE+DYt_cFU0n%GQzdD*`_=TowkL|#Bu=$GxZgLLLg`Z0gOE`K~ zZS5PrIEXaeBYC6IhUssF9ojL{XAG*H!dEShF#+PeVyJ!1EI&_<+yUMELp~C(luL^D zAY{_D9`1$MCqr>xZXtfYm$IPl)~_~XdC-qY>Y59!4zrd)ty2d`6XGy{gxuZ_)Ts0Q zr^-r!L>XDEP$L1ly9^e8zrqZ4J=eHg{3wJ96}a(K_O?%xm0ri~#7K=YGEBOp=QSBQ zWwz2B#LQJ>VDn|e7dQ0ptOVOqwaMt;YWH-;gpmZLV0cqj9Kpqz#m!9>7XrUrnA!ZA zlyHI?_Rqe690`5jPFc!eHL5j)U?Z$u?+NrgL_6J~2v}~)wT+acSiHhDrV=9z;2(Cx z`ZeYU@1)|PxS(6FjoZf?FBQu$Xg9rPK>K`7uWopNdZICK-4BX36BpOBf&`m)wm^tQ z1~#kNo+gEF1Y~H~#sfU7Y47c6kz~r_HI;rPCx72$N=M;A{$@gI*0gaL*hIcyfQLFF zBsjtrF%0+-r6jL+_>bWZWuX};3X!2s6S_;aN_&edKTkR5e2qDRc<( z^{4?wr}sFs!IM#oT2=n1Kf$^rpEFPeMY@>q!jaSCXD7M9vgt>>n$t&Y(0J} zmpgG!t>2#31#O&HZQ-e}J8ET+e&Viz$F*?P_C}I_he!IhM*0j`_#L-~@Oon5COOH> znDs=%{w45rzQJ@3>oxssBf-H2%u{E++B{Z$>+S8O%8LSIWp0pH3eKz28owDTB}(Iq9dI-}`tKfBwiF7aKBLJ}Nh7ZJ!d=aq2< z-ZVt%$DetO_{GYKh(P+NpRzE zVmdo`2~St*JwF4GH>%w>yNxYhDtteus01EdzH^m(wA`}8dIn{lM|dxNpZc0bS9FpR z;y{EIUf1w=@5EsM2xT&QopyG(9cB9iYZw<|K_v(%`5Eh#9BmFkOxw!HK@W@hyG8_jN? z7+Kfg)@NiJrL8*09VA~s3L%tVA4Z;@tMLu92nq^Hky|;-9q3Nw5fUFP8A_xuH>UL7 zn%Xme+S!G5y6HED?8F8T{9T%Lp3e-wPUE)Joh}Ec>j{?f9S8RlgHD}a-%&>X;sZ-y zKM^$_Qdc$Y23h3=y*36;Ygs$Zt#n;jG9-O33qSM}(0`HMpL+*M`4mzSYLD7q2P!@- zlOeypSu8Aec$nYevZ3ee8*6vXIK_gTiazd z3(Q<5lB18gf$!H1123>2`~7p!aAuP0J)AX(P80JxPk`JEiB&{3*-u&3%uJ}2V`J>g z5KDJJ!I*mkb$}UKbb0tkfNNh8wOWGkh9oamOo(yY#Bzcm2f8N5f=zaOt#(&y3LB7^ zLHw5KOWY(Ih{JuZ)hXnONh8FWua!J4*4wnQJ{S=N?4XO_vn^UN= zK6GexW5HCfK*p10e^7+5ezEEiiMAEC9~|wAdyo9rlCgdvhw&#) zh7d>Ts|kVp9y3elVbU8oD7k37Z>*@zCY$hVWW~lq^_kq+T8=TCbj#r7(B_E7{q`IA zZIQDR^hc;ez08e0E;qKj5!W9YZO*@a*uOTMAHoW|nA`2&(Cw{m`ab4$Hk}@u={4O( zdS1RfB6~kLHGVw)Y~^>p1wBnpQR1-Cgay=f+P9aBl#}#HX3?FDjnq5h=h5p+-^oKhGCo^D^AW((}Kw+it#A`GA4Ck2sP)>>^ru8dgMQ!k=Qg+Udk|Q*wHf5MoE~cet7b}|8%ex_r&*u0ceR&} zBLF5-sO)#-Sk_?Dt&}J7Y9QJa6P5UbqIDONtCFg2Y`!sz_}7W!yN(qVpZ5klQxH2e zENMae(<7nsh`Yf3y=!Rn8R}bu2*cS5Q{(ke-*44v?GdBj@NUbeF%FcFK*5%^fSPF&X2;e)49&(q@v{@ksfOCst$cm|m`@&pw>$Z`;v{&b6g z0XHUX4F-M_>Wc7}N2j5o``#V(Skg7hrD}(56nn=Z3~UZiz@23|l#ml@B)q*(=b)?# zZBMM_6Q~M|84CILb5!mC^7?jI#Ci_!s{DyEd@xcso5DNFW;AJ&gmGRJ7)|koq!z_- zAr^6oA!a+~-TT}1g1OOjqtlF&rYfzG8VXWkUunvl(o%Lb=rN#}Nuk_I7SEEye#xP&nM?9ikF6MYE6C|VO>N&1K5<74rcDV^Rf zi@a9gxthjI=rl>s!AaX`w8o*=AItdNc|mbpB?qPW7TWu z{ZJyJ2_-$LzuEUow%8lZ^m(30U&50dGPR`Yw#){w!2J}Yy;h&A%s$bU=g9SsR%+es z+5%RYxHO7kV!Ezl&rxph6c$WxoO&Lk8@XA0u6{ng<*;wHvu;VLa`9F9!w2C7mZ_Gy zwk;IPs$wPmYm_m;WCH(fK+JUbGE{&ZT?b!~9!l@#)-S)Xjh|9>W=$7g>SUbz;(Wpm zrCVIW0N2CgLyjf*X+7DTbbd$DcYtzYZN`^oHrf6Z7FN-|jgFX(exBcwn^Qr7>8&C< zYgv<;M4`y}00wlU9#(4Z=gSE!R^!7s>o@Q2Bn|4-e5G=~dYa?yCairP)?4Z3wYepNH#gT@6isjr~8gV-m&$Il7?zg?C3i# z!16*e31&e#L(O)a*cUpmk%xf^2rZhacRQ=c5+4atrqHj}WH1wRs|7)V2H1d5>VgFp zS&oI2qNqL-OtUh3?LLuh<0>28Edh;mO{fLO1JOq#9b+pjfSq-FDd=(uDk>G}7fH{Z zdq#U7g+jB9?KZW{BK9~i+W*Sjq}u?f$!+hP*AsCBqG|85-MAu z8NJz;f#V|s?^781-G43cnDRBu!&fE$BF*z5N@_GK7kgvuZ7IbKRG1DJ)?kEZnqCOX zLD6vfKI|RD#|xfnmA_t=gXA)--2_qqKh=3uMlfLbPNMXYuX>_rD0HZ(B;nnB-(Fgp z-Y+9-v;+N8W82Wn`;;T=qgTCDeZZ-3_-~6xJm}|Iy(R#)wpP`otY?J^?yinH2dat* zGCy#OVJ?Hk&LfnS#b0*52N=+VCJ)2Se(|xNU0BX6W&N@O2KYo)Tzwha&Zj2jRUNQb zw{j;ltXQCrb+(>}5a8B%8K-e{$}q=U&~Gv1H+I_f)LU8KmSs~Y1+OA)$Yxtr4$8#+ z_}1A_>T}%h3kB%E?r-P|zMQFFxSPpxY+O%Ye(a52u5!bQM}eQ*Q~H0OHSZ{i*TKSS zGqC04iHYao4M78g;8`8XU1QpNkho%-Hj0#SY@S(icT~08Vc%a#O{D?FE7X7P7D64SMrjTW@H}F7LWEFRJks(M8uQ^Kcp~ z>n!-3>%CV%TQ1h*aVTwyhe@X7R+&{4a;PDgGvT0>=O_N4tehOrazCuK%;;ChoYq!6 zz&-QPqa73p?PrMnSGZdaf_2lZ=LZfz%KeM-tgODt5)f&J>o$P-&IN(x$@3?~A50Zb z+VoSGGS0+v7A)jlzjnC}zDe74|KY#_3^tIPO}4<{ZLZl((!cD=g#kr^A}$P{hNE0@9X^I<@;F2JM_id9{*+Y{Yix$TT)ub)?2Cb7%YI5QG1iZ z9`NXOTI|;L{*6=bwW+tr`v18AG{DoG;Mz#l*rC8-%#ZZTp&h)HE$HWe}5?Lv_MVTeGxL66rr78kMdinV<5?W2{hxlvh0 zLiEZ!HzGIK`}M)mXF_tP#R9Br{qw`FE@+zVem1LPHz$bjWwi6H%lmQt_No`zZnXgs zFcz)(TxezJ+!615zF!!vaKD=tzkI)FJQtjvN>E^e1or317e~N_*e+0uEKPoVHNhI} z>HmfRIBiY&%%GLWo7PHLU`jSC@;Z)P9-fiwLUjx41UHrmT$VfMC}vjL>Q8%r_#z$N zRbY7yTNHJ&ZdC7}UxY1J!iiG*9Xqr{6&6uu0YE$EsWpGrjVS-c{KM{SPv)yuR$I#5 z?;k@AO{D**Sp-@>3s%rp8}*qV&xrzkFibW2zPq|THt8_%HfnIhX`W{iXoE1~%}Z#% z6q>GUe??)Zt znXey*4pi7IIu7RxX0AjbWqagcU%R(Na+p|u#b4FnV{v^ER{8Vgi^xe$z%F<~X!aHB zpT*v%HaW}R2asLQJOlprTnfr_#ypKRwdZVZimJLX`|fr|NxMx{Hb3k7#c(4FpIGq* z=L!8kp+#>Stjs?`(Eiuzwe!{8=6=Icln${rQFTzd!!aOK#lge-%07mt5oM!61XQ`V zkKH1S%H1k=ed~a{*6&De^FY%ZCY}9KNE#f2;#5am0kZ-Z7ewT1pH0OfD7H8V$@|`_ zUmAI0%_W(*PG&dKj80lK(*~==&dSal;(;UonaU1w&gs#~++5bTQC*O=x<8rcibO_6 zM#GLB-FMb?YhCy06vRdl%bNzRy>4b==CnY=Be~-5k)tSjObxdXwI5;&m#1EDQ*#e4 zuK0^*Lk{6GVj)bPb+1AJnl)XyHbs@@`g4w&KWePakR<3wYsyS#At9>)Yhnwn@!5hKYVr4^a@3WJF4ugn-&)d=TL@D_4 zmmmVAW~JcT#r009HbW>c1ZKRg&tpL-sk)VS)_YIHaEMo1?RdpI6`hIzUZnW2&FY4l zM3T#L@hCCQObN!}>TtJ;NFsSiE)BCj6@Pf{KLF+O1j-MDUe4Ad24qP`U8dOcRU5t+ zI0adnZLZXQhMawOTP?8?*0FaqO0PlCE#}3i7aM0-vrLtWRpA5qrU+D&yhQolZ29`! zTWw1$RgDn|UXcORNzW15jo#N*`p*OJk9|hW44AC_v_P;6cXbVC+VGP$GrT2?JBZi! z$aGE!qEVK?0`&pKg}p%r)NH@)S*gWTf02wmQ-@;X5EjCe)$>m;ZdR7Od<5td9xXkY zaYA>vz5cu{rKm}!DZKAm&^Dyw(%*P&tJ-YzT{*tgnSG=c`8~fUF_~oU0JL7-<69oe>`h`nO6dYujGHl4=fBnB*f&84B(qpe60uIyJ;!`#Q9`>Bw*anlNTW%N6ampPzC;0MLFmhv^VNv2*I7G@m}WAKI|7 zVjJf6eXvo2VOt@H_1>;Ur)CAeP3TUC1w9QBs1W5Q`2@q zYBcl@)@2G5kk696iYcFU^?$e|eS@*zgCY4w$%QmbyZ|dXH@<)gFs1$;#;XJ(0hj^b z=iJLH_nQ-0AiC+SFeFbLiSK?^nnR!8jr_2peeY^J>uGg^M=@XSc4?w5&Ul&s=AbSF zDx_A$MCzXwHQ?+rkUMQo8E41`Us80NAjO2OgA*YY>wLBKo%bFS)?in>S*Ky!_(Sg( z8Av&I=19&7Z8|9IZ!1YJLp;0_m!u2O6F!Pr&ZeZt%$gt;nFZ|-@>mcim7KkJ5`aQ{#$ zl6+RnbTwid|ERT)Sl|g zv*ehzuXn8j^GnWx0>Yh{bYxjI(|!P5rm@EL!qw*@%3#0Pk!q{Fa&@y_}9+Z=nojvIevX#u%S z%X_JIKHZ(!8gfa>mX|=m+h?x^uHqa~hE{8~p7`Y7ok0 zX@wT~N;Euc^rok+`d)?%oeNvdX(J{bdZl^j-BDOz#9v`o^$B?RM2!4movp<2A`Nt{ z7MDB7R(j=Bo!CONVfG)Lj#c1_rV0zB=F=6-m2BOb>Oq_KdI*s%6aYwtz$z)1Dq?aD z5A%+_PS16*!phS-P0X!1N85O_vgS(td;i{%YY{DRTl=ynrvG}oUjOtOb@6?zME1FN z;*3y_vfRy!a}hkZ!okN*m#36fMz9ABNtr`QQ>(U+SOn}G+R!gy4wc}+b0^SKoZb2d z2jZj)&v~X5ppQZ)5c!b?A<5U6?aaoRz=NB$#?^DZE3fRhJc~P)xUZ;?Nh(9lK1O)IK_?Hpqhx5M zL0xS!KJ>~<_WOf(KW9+Qh%|~xvViLAfDDjVZuH@QgCUu@A$a_7pi?6ae@xl@xGJ$S z`{|s4{!QgCSk1`a{v@X&ydy``4D!*77|u#|m?+jAAh{y6ULqd?fcx8%?wLPr9$c^W zSnY96W1NTp_xFPJ**Fb^xMb`pdZajjW1w=tJ1!ZKeokwyh?*L(Vyv zP@;>LOnaFlF8FKc=x$DDXs7Um7R=h4vJz4tdS*^{^eSz z>FL;J>5(`Y(t#<^{#GK;~M%zf~VkDLra*kYEpIL}t8Vi++ z`FlS-_Dwi5&h#L`H`-ItZQKn36<~}fMQ#r3IS{s{~p?{$KOG=3F87DtElF}}8i2%^( zvz^5m`#vefqZP`i$!38+R;~cIWo9L_$_WwPKROfF_wcz^(&cXtg4pjtyl&Jp5ZnZG zSsUmwsO$R*3i(p#&zUjfgXeGsa!YVVkZC9{TGr&kQE(n}Ai@Iqh4VOYi+_#0XA16y zoODX4Z@k2G_xOqrPv{oDj4tO@Q*$b_wyu%}C~me2`s!PCy*}->b~+wr$zz&IB_~$q z5+Lnfc76^CZaNakC1tytw}nD<^qeEf$P#=3(Bmkd1L{-|-9&he_+|gCnxLK5{7^H- zcdDcM8o2yV<p`4knc4U$HY#-}jN`{F!rDzsd$SjgZZ*mFqdfWuFf}nTK{*;5 zJB49!`MuDSzs-=)f)X)#BoC|MJtU&DgdD7k=FjmbUQczRfTQ_XWkeHs#J?$xI+F%1 z7@}P|ni++IdPqP>AqYXphzlSNUvyNFT*ywOC2k$UPUS|Gpl#Q!jnQI#eqz*@v0do` zg6S~F_TK)mJ>DVAg;K~%8)$2PpId70SMPi=n~|(JBmBjhw%l{+iwU7sul2AFO)h)OMj9~*!ghIIBUY>?kBm#sz_wDe z(iJgn`aFp+BVBKKz5qw8UGH#|m95)`&5=xC^yCf8g4j8khcwV+X20nJs_0;1Q&sk<_VVtTV^eR9? z0KK}{&0A6}e8C6CGs?R{BJA*hQ0d}tb0tVzD;vh7U;k0j*Vp+0p_r4v-@l$Cn<#R1 zq-qqw37ug?-m@jA!?Er?rxR(Ir$;DkjVYhBet4182CaXJY`#d#M^Nk8%f9MoOMJ(Y%mqBuX-5z(DrQ&JS*X< zeM+?a=TP6#OAlS`81`%9ii^vW#zSQW2E_94SwYkUv#!G)T?D+1ucw)-?<1$1nTPO7 z&Gc~KM=ZdZ_qArau;e;+~s3{hYYwI>TJ9~BgsOz--?bBEy2^fd=aK>$mSa#*7%e3V0I&vLEUW@4 z4u&9F<3|8lLg>}nY$rTuC$AWF3jt^J+8EtzCm#12-ued-YBEXlEN~afbh|X6(HPB3 z3z!8%fr|+hQkg%W4QEt`iC|fibmk$sT>d^S8u)$%U15xW@QFUVbSLuPrz4f;tkiQ9 zC-T3!7B2}#ZZ#$B8~F%er&ELfPE^mr)(m%H!3k+1Jz8a*HeO4C+|N{KCG>QCOO%%9 z`&!s+>b|F*69)3Y{lR)+;S!swv+BqUFy&X3Bg#QbPsIPPhNUu?Wt|rx1p|(qQ*WPT zMn_C*+uK19&NUxMc1B8)m8%&B7nR=Qg%AX#{rrzg>dCL4fFcJq8By0c{*SP77DZ?c zD7U!$TCd@+$tlQam`m=(D}53~`W;lK{V6U!S`T+ll8`!$PH+VKOpv6~>uciZ6y@Zo za*@92*sQfvlYv28eegMgFI{n8qSdoD3zZoJ%_KsKVwfIxpL}YI9l+2IAL- zlA;XmY*iRJBrW^{>l)gw?%24H_r9^oYQN3A+^VhaxJ5PzEm`~vAAgl5@v zb(-`lFIO8ITU(1NJAECEbWr*mjus*%d~=?x{QX6@wNuun+gm>>S3a_y#R9~*FuqGKBCF?3W_O1@BopKI3|Qu4C1#^q(yMf@uMK{GLVZL+cNsQT0r^)qeA z!F6U&`LA!hF$7@E1(rn>jRjKfpFFal89A*+018X5Z1qO8L#@r7Ri6GccNFk(7FJ>IAoN~Irk5J}twO@4~9%%4Gme4ZPH za)aqet38Vkozf_f&4wu^h7Z4HaRGzHcokLMO7-7AB}7VPO#HVOs;$KqAsYPp8c?tx z8DIc%Ns2g0&BPvRfAjk`wMk56saavv5lOB$*?fO3g#E9rM&=}l07t}JeM=YuGQu5% zpTb0KnLIV4#;J+sLz29J`+a1;Ew${CcJ+*E>A|TO2JrRwhvS3!mn-?TH&B|BcTisy z5e;Ac=@GQ;$_W!~r_bGTme;fQy~q7Q8ppkJ)#cNX+vn@5Hwc9#vTb)44Un#D>JNpX z*F><%G!5nj&M%1G3%d8{;a1vetF$$%#zHFdZj=H}zo2NFmv zER2T-RU=6NEH!{lrb?4-plD{4 z{QQ6&S4gD=43I!)0fjlIRwcZ@-!=o#B_W>2v2#oCNVQih%(pd?2v?E}4O9!r%)Sqr z_4=EKExx|I(s_A1?g-Iju_MxKv|A>c4MaH)tZZupG6M!{OKVOho0ZKQXBAS-XG=MT z-;<3r2TuFU(ZQy$sphR?4e`moh3BJo@PoOa0_e5N^R*k7hsKhQEjoIQ^4n%cV)7DMLvC6@&XoD|O6#(qR#l zxwok-UFX}3$NE-nuk-ZP^Y*Jm-;RqO_D6ndvrtih>*Xfq>}2SqtB=2v_a$*Y276Vp zq?^Lw=i$+ijOeoKhSc(^3lk#1bSlhj=*1EzZMLL9*IPpp>7wLg*7q4$m==3xq6sqX zHOEyFU=Q7?urJ#cQ4KK#msP~?SBWK4QK#A^wG7C!GiPYu!n->(EmC z^{6#v29YpHK^ne-@J&aHLry}Ifx-TY{=W*jcoj>npTo@}T_N>{m+PN8Nl{lU=LNZ@Yt$PowyF8)VkJni6Jb}cRZkZo5!>gG-X3%K?ATm($^)cp zxERA$xy8pVj$8i21>i##wi|?=!2NG0HBlZ9yPUlZ`BbEw4Y8emT+lS6BvD^$)*46ezLr z-_TcPW)hXC&lgug-JmXd4Ne6vcK z=E&2`zl@48S!UMsc!sOv_I)yo$e*UOxa&ClmF1LKL`?Dv5c)NR(xZ*7{>;@gqs>-av!LzT%q%O2;ZlHuBpK5?rv++>8Uw5pj)Ub zV4Ls|dM4+`E0uoc;?9@`LQY6fZ=8}@93$_3B8xIqX=_d~drUBNAoLjJ?QaO>ix%7n z1X!^F$nW_US}~B|U;0GAh4k$zOB2DUnd&J`3;%k%o?mi9Qo13^LbBGbjzNk-2Yk=m zJ;8g^f+K{3!qCmCwdCMls(yW@7#G_T;Z$2SQ#yiDx^QhA_lxhyPbnF z9UybD+8c#m(Z0iDl|U9PSyNUZc%_09tq>39oRa4afmzrhld2e>)7;O6aRE`xlQKSC zmtlxq_%oq3m3_>ICu{+?l%q^j03{jllcD?qH2OIA>bsps<^1~6I5&?o!~I;(AJE$3 zY1i`4;dG-*b=2y!#p*L)^0MtXG=X!i{W@&1vKi!84iFz*%Tnd1N5?7Q8=9V`o!;}j z_wA8SI>dL|p9qk{2d*nZAWaQn(j-(kF48aUPGE;XW>tIG=v4jd)1)|VCKV{C0x3SVWA_mF zZ{)!xAZwS?$4$8-Z{7K{Qq-u?NnwOz$^D5n5=}H4ii;&%rMM$^x#a$jrgMyr`|H2< zH*C@*jqPN@Mvbk;wr$&P8rybb+x*3L(%5cnKXX58{b$Xad4J}7u=m+l0tiwC%KB%l zbk`l!2G^D()>*p&*~x9O)r7Fo*WvKOB8CH0 zWI`E+0MR$7fEd-V0zKgym~T)3(=R&e+q_5+yg@qmZBcG`OCqTdib%=)FFAE+LDzs| z7b+N#^Y*LoIPy5tbEie-N(C0nj{|T@ZEHk;)YAdqMze1HARYCxT#-a5q|kN&+o+(!#csB7Gip@w~Fu znKXO$j|?gMB@1D(wh`7`$N;s1ML~m64}uH;SY2Hchkd=Z+!S_6Q@KQ7eD~B_ZfzK& zg7d98U)ycaR~94hpEWebmmIKQP7Rlr6Bpjot7+-(V~m&^xiZij!%p^DOE_4uNg+KV zi5vT5IZ@G>UM=IANKj)oZ&+1P<#NbdJ8@{|%i*qBw&^Nhz8`MI`|W44sXjk}6Ej2! z;K?71o33c`lJAT9qQU@35`bWz8LV{2{NadML%x9m8nY8aA_lmQWShIU%7T$XZn6CC z7h{?>GwwDWE47p>bJS$5y@L>WzSlNv%iC9eu~pK^4a|X1y$b#{-$b)7R;w|Kgb}Lr zBC&B*r(UuaJJVo#Ret1CYz2bniLRFB(h>-R;fHhn+?q-ZL|_T_vpj_B^-s}&DMQ9r zWa7zzz#9|VV#(fUVWD4?x2IB4CXTNWZ)t|h`ni0Ma}{H0g-x!OoHqsO?|JDI2|8pb zVO3gfV+O1jTU*O`o11HM5P%rNS(Gwch22a=I2ni2Woq@u%g^aMBAoYiaYkN`%2)?4 zy)93N@#=ipN8f{A%R`k!YZ_r|O9IVyy5}Km;~bTmIirPQu&>|%n#b^IpRsN0@uR`_ z*ADoA&EH*05ysheNa@f&^8?eYE$p6n8k-T5NU5-J$bbD&``Lsk_cxjho(rHpw$xNr z0n-}G3kC`lX_DQ%v=iJ+Bb0Y$oL%jGLn>GBhPC9Ailr}&`nLQfQIv2yxy>Unid-&x zNo+)xQi!8N<9cy`zqPcXiz3q#x))yNjurx2$JD=3C`UEjzNx3!pYS5>l+ zL0FPk)Z^7ObBhj?n>>of#SR3-I9jBdasTH9z!@>ZWgq`fh6-L#@~?VAp&*HZ8{xGF zFH!6lS~}FGjrT$8)zQZf|H1WOiaR0zuRLL^s!Tm;utN~#IHT=@!dG?5%o zIMkOIk9V`G=hr73KHdTjPb&*ZK!M51J}6SmNvf``P4qW~5rglxU`rq8zIB@HH@AO& ze$humKiOg@Z^fVk9DY~`zzC9wHiVpVRl&XcWc?RiN@R?PsIBo4nG;<$u&LSGU zL<~xCp?6*-04L86oZhF3mQW^MLjt8vOJhuQ+QQaGwDL2D4q5hgZV*5s^teqq&-|V# zxuny%(`N49Q+n7B)LJNJ_F3?*c4=3^7}~=!^h1zvpse*{q{;@b(~p1oQzrTm$#6l} z)<6Lf3r*I-*L~iLz7>V9UEOYXPwwwya(#;Fz6JcRR!;Ka`}?jfdSyQ+y1yO&6FtA~ zt*wZeFH#wbvOLfR;-W?Viw{E$K7APyB^-DAx2~vr{@_JW!bYP2`;(tB@H#2sxD(8T z;46<59d1hTBD8C4(-bX{4sinlYTnn;b4k&Npo;|L8oL*vzCvgo^>2xCz0<)-VjebI zOa{g&r_6ZPgo^4X?*B1ObZrP%nstZcTZNm92EppMn4}RjF`oT{1~%@Z#WJqrH@ z+(yULucxRDsP1uI{*4zO3m8yeZg!n^juFiXC?&%DMsOZFRot!$la+sO+8i_#NAbWa z*uH-M@t6qWGa#7RxF0bei=mc9(gkKVZlxS_%&hqRD3v|sgSfJ*HJj-&C(Y`jnp>k{ zV$`tUESP#tSW|Sxh4WDW7dJPs=nqSUSLW17eWe{-o!{84tX2}2MmE76oeLi_>Tl>hV&N79QRGnYY(64oQ>#vem+a!>dXZOdeQp(Q%p7wAlMJ${^N1zEr4#1 zPXd0bi~{{rQP3rT1jw7u2bbF9D`TMp{p-JqgtB%J)*1TO=!>io|W>ijS9ui)@KZTiC%{hCQTVq)Si-vQuPU|h1rT$;pC z6wCWv0X6QOho;n%#}pWW=GLmM2KMG;~l+IqW)x$~fgs*E)iMWjexIW03Kx{NW%yWxwN!(U`; zAl7BZZR*LBuSw_hi(}q_g3BEn%*XOb$ZB|%6^VtHXj46aPioX`48W8Qn9PRZQApiH1*?`caX?8IjQt z@ja1Ez&RYSK-v~m4UdLT8A~gS&9v_PfnhVRa)K61OstHc;7iWvkq{sDV^fIK>FhCY zjzAVlLSXEC+3x!_C|y%t?Sy=RTY9?ri-s*Jvv^mz{ijfFn3xWo^$(iBgsCwl#ngT9 zi42qPZnIwgeAAlAcw`bfn{d*mQ|vsgk9Tz9BP8 z-pT7V5^SrK@K^Lh1c@3t+691{ZfM5@-K_Zdc;{()*;%dWuIZzBHNnhDw-wV=`<41Z ztEN@D6k(w+;7E8GvAy!-ivQh+C$>(MQv+*I5{=EM7=x@K&?q9IB;5O;0294AWFUF0 zN7?(qBZW2YLX4sWixeq9=8G~w6WPU`N$AjSEH~W*)SByG`aW*G6lq`TceS&m%LsIx zFhrOXlbKK`O&>_hmF2+H!PugAIEE@S!3%xMm1swgnEea!mj4Jsqi#A zUbGiFOMKYGh29YilF5)$S!rAy28ycsLVQpGHGqP<=KS!QqUHl>DOxKdM`4jMbyMc( z=WoiEno!g2@_w#-UHStIt@m-#Vxa~dqe&-94D8iu`0I^S)Rwx^n6kHM+6Jyil@@`F z$(Sc*EJ#r7Y_xKt%ze5kU}0rNsBpD^Mg`G!i1SnpF-oRmNCnbD0-IAxc9l4v*R$eOZY8|O3Vy+a_n zznOm4;c*pbb&ZMd?#a@oLz72_GAT3Eu(Gj*_8TUmrYbqRrTKX+yQ+4#i_E$Y+gAAX zT%$4)`fsw4Wa5Nm?t*hKhQQPM1&Ix>A1C%aD>w{GEf?tm~#sO}d3=@r-P@zf`M zJ{|7Gn*-g|ghUyqj>mtNrH z7#nBCR_Trp*xL1n+I^QS&aa+Gu?T{XF6#aWe~3n&DG^V&3*Z~DYdw7nuKOxk)pqq$ zlKLH=bqZIds`)oygE%@T!G|yndlm1$~V6;8OMg10s*Egog@Z04{CQ3o=^;# zlU6<>)w&%L33TcXx=y1MU%n9>^Q|5^sj^Tey3r=ijx3}lnS3h&gl1UKx6?gd0r)^5 z&;SRv$jl9T_C#(h&H!4q>`l9w1R4Vh2>AgaXcJYU*sFoA9BHBg0267Ghs6T#JNEWI z|1vR5)3T)ePnKRkZ*wveM(-H?KNkG`9=|K2VgopcLpJO@H7T&7buMzX9cJE3G!ZHX z7?Z2!LW;qd@L~#KM2f1K;>W5C;b26gWqyR|4)I0c3M$=xEoTfz zz+Ma-6)E>@YcaR?b+$gbS%f)e6gZ3TS$BUA?Qxl#UNv(3Ut6F&{|oG2e$-&p+UGN; zCAwF^kER6GoLbDkB~;Cl@9ihJNx>*8p_hJTVa1T0PfVEEuE@-QpiP{wVYqB9M0*~2 zsD_NpoZ?nrx+LPHRbNUeV=KkuFOnPxpgf$=heHO}-X!S>Dl7|hKFrZF7?Vl`6&A+; z=Yn*;&ib{rgWNs*utE4QXyF)0I0Yq$i2Z7t-cQH#u8YeZd_=Xs*wf`CpFQXfa}@{S z5s_Orh%$;xjML)*&T)Iz$R(BAOQqG#~&<%HKMyMoq31^O|!>PyzM(jln-M z4=M$@;R@TwY?(UfZNS~J%n;SWu7l^_ z@zg3X0oVO#(bsV}K9m-JU3LFBC6%bWFU1fe17oC|kB1H@Yf6n!Yq!dCIdC92x__c1 z$y4P<8m-1O*G-{2rSv432-t0p_1kYRA^u!J7Vy76RDayM@5hGN?r70}I1{kf?Pyn= z>dO~AE+~@j@i1K$G}s;A^8L4_|GYgUaH-Sb_43xBhGMn=dE-#YQ`F8_sa}iciDr3% zFCEoc2M&M_Hi2kCd5~+ZY`{|VNdfs0@Q@w>g0N{rNWeB2y+9WsOPu&Sj<%5bjS~=g zP6$~`81GgdU@nUn@3qA^X;z~cts^wf+IgDWmGG#w-(mnX97l(7UXmF86BdLG@YfN4 z9TglAaQ`{7g$?gFrLJjB+L{HR_=_{a^N~^dme}TL?kiV*1};Ac_(t2iA(%}D6OV=e zxA{}P@Ee@iR&a((+Gl>M@e$)9fNW>L>%TFyputALK=0@A+T(jD;GgDosNz~J>#i*D zvV=Xx(XZT3z_GE(9IDmG6oZtigP((U!GB}D;Dsx>^v^)S8>A zp8xv?eT*2|KWpLQY_xj?8 z`p>)}E{g;CMD#>f2q3SbV)Di}XHdG~q~JeOW(5(t1OWf z95yx@0YdMmQM0B=|LmUmZAL03{le!l**7AluZLsKFrE-$I#Z4w_o-R@`|` zr)B=TQ?y$LXTCnn>U1VQp+eWVtqkq3Uu_^oc<{B?Vg>Y$?x%Q^CSyo26eVL-YP#V) z%|Np8uJ7bOBw^BmZK0Kdy@r;S)D^GGc&+GbIe}wNT;QuShw-kjvz{q4d*w;twQ^Ch z8$gXQ=s{=Jur{11e+r*HuByCtJpElewUHAr!^tG8mT&{E7Iyx&ngAR2tA zW(v41_|vZoY5%Q-IxIsivmc!90>xv4g;`S|`6q^?^lR6k1ZU-#X3XCBfnoZDh-x+m zGwT=*PV8{vv^3arU=)FHm06?n8gGP}c&iH3x}6WZ{qwOheV^2B{_L(#FKnCiv+>Sb zS{}hBaarPWWz!oeoTz!jJoVA}S@GZ-RxqG3!5a`FnIK9C96S8kP()9c;k2#PD1CYS z;`Mf4jn99=a2VAgmWa>5b++aI0J6>3`^)8UzbMU|zF@EaS2p81+JAGUwcsSV>Nj@o zhD*OXhf-AAxbgGpBt9%GmEZMt^JnMLOY>^TZUK7&-K;DxaW*0%wnhar|2MWF&$NAy zu)tBtbIxyO8Fo;Bx+WdT6Cz}--zZGF3@ti71i{TKG3yFrmV3x%ci&{}M$1n9S(}kk zC5wto{uwaZl;3fgI`!+#$JGn|5goj7w$8ZJboqjQx#@x(=AUWcKi z%qe-if(cQ&NGU^*2}nyfIyIr9c?C_uMvDJdj>KC#B$P96NK8zmm@sOxsv#S9q8(gL zdAtYiJ$S)~0QPr&clUm1>3xey!{l1Ct*!oo857O|Tmb$zDCfR(+$)(*UqpBkI15oB zJVYTtNKUO@Rqlmt%CK9UR1^UMT;Bs|39cN2#0*)lLsgG-AOLk;-<;8?p3ia~BCn@R zd4boeS=5WEj_R-w0!Br47M}G98Dfp1n@bw4cm+yl+&YzSQHCpMIuHpWKdN>_ zLKE_EeMLBj0^;q&qOLN&gwdL-mZ`vp7?}OiQ7f)hcPISz#&+^HPLOU*h7V0#x2KD_fZD%rcnu3m zpAdltVqb>NGJS)0nMj;2doQ$Jo656X|7rl7UUzVsNsdsquB{St#RnJE@O5PXu)y&Y z>=LoZ8Ctbkm16ZqNuG~M$lo?{Y9Zzw<<_ZWiU9m$XaUcoI$Ha!qn*@nMor_^b+c`( zM>oxCY$@!C!hIysnTa}Mg(a~_h~RyU8Oup$Z>DAeyR)PJXWv80+0anneY76w<>fya zV$Lg%(EDAf8nl-2t;x6a=@-Eoj`A!jh7>U-G2nqbQALTb*W|2t!Koekr#i~whHyfx`sOrel z#!1Zban4{cPG$!<@iH0`?EL<9pVf3Nnlv?g|10s6(`ETq(zEm46aM%WuFs)u(4a;7 zdEMYrLfKo#W4K*fvi{;~J2H92xhi;D1eZ!kX24Jg`@vlqR9q4PBkD~ae@&W_oxGN@ zAyMz0?N$?l`|bQAk<6g|VG(a>7oU(f!2YrJwAx5f^r)!kvq_mka^exk|0;Sq)xNvU z{%j@k0tgtC&CSdr@L;)O1uE0XBIE$-(9R6KEj zKci7Xu-YC*Ua6vJlCk1LVkF`L;ALm0&+nyR4=qy3gh?}m(EcR9p^YgnqaqDg)E__pUo86C6JleJ6_Pl(}7P-_X%Jd;E>~&W*zrK3sKmh)e zi_Qk{W1zWN*zteqw_&sfH~>zh2$HNt=8z7l?hMR#(@LeXC(#H$x;m&+60I-BeaF4s z>zd9z8OPgwcSICOz>ff&eV8Axaj9Pq`8w#M_!M4xA7V`OSt>WK6l}Q42}|&xZ~t= z{pICM-dem;1|gL%2n)BxxQtrLMA5C@O%a1OfoRt^)t5Rx3?Gpa@YoHf0;A>ZKgUwL z`1Ma9U>kHyh`pZjhxL6F(L@5t7_~pU!2p{;5EhpoIJqRh>b;{GJA$mLL=>6>ZLl*) zL5vJLvzc3`qq$pb#_Xv59$@0<*Hg6}4b%8V(#fzqGUD*_cP=P3)~ z%$}zO^d6=(S+&T9hK94=U+=xYme*81Qq<{tN=cg5&Q%Y(BYpIglF`I$ZA*z)>oA+1 z|6&sr7jRW7eLNg1f`_7e^zb? z<7bQOEwVAFST*N@`Np#{Uy|0InOfV7(r~1vlCNM(fD8%@XD58Ug4hA=Y zAEyy5bW!465P#)go^^WQ1?2??J6dE(k}Po4-#=rh4lgj)sc}JlPyHQ@1J#S!xtAcl z;(Z~&B{>JRq^O)uw9GUs58kP#Zr^$9 zg+#LA%9_z-D**xWrJokWnLYT!WSt(HD&KF62p*rbncK}!XcA3R)Kn*42R z=S#hkw1cUJL;L$8uLX0A9Eqdg{flL=IeR1p<2X1tx(q`e#Y;A7eD9io+l48*5ctL7 zNV#bjQaBKvL>-T7KQQ01G}bFPG2lYYh4TVsJWPUxpNlhvV5CP|spIHq%D~S?c&yR+ z@+;b5kE-YW1z!Le<{qqhlc6HRO54_6YuKE(-!oOb@q7<+p;ZGRkfnG!6s_Oz6Q+yY zrzPzuu7{PUVIbmGbdFE+*-t&BP3E6`jt$ab|GR!R*UTUoX3JtZ`}l#!t7YB8PH;rX zzysh+GGzMxWC;+g!===F*l61m+vkb7AJOheyml^LiKF$USblePF(kMTGH9I zosLrFR=IKJt~4Gfb8O{FxCK(1W+~<9U-<_D0PIh2!Z{7CB(G2-BoHzOmp1kWj)}6n zh6(^(!$xGq#BiUTO7t>Qt1bPvTIc&ZXF5K{p&5djti!;#raP2=?)h?r%zL$JUBh>k zxy7AT?W5-dz9I^g6Y2I`ICX)50!~0>`2|Dt$FZX%J!C*OnPkF9IqXQJIBY0{V8@jf zb`zQC=(jj@1dwFAgnCG3@k)7nNYRQ6-r$K2EuZ;K3nw{T{i+>(J+Ur0>{&;1ffPf8u{Stp9fldyYucl%<8Wm2DU;gWdiT z!S8{*f^Cz$aQpY(OppI@!_kCfM=XemFjkAM=w4``5D)0WaSJ-7|)lW0Tg)D;md^S)9b_QF|m zO2QOqAi(SsW+=$M)!VC~6&h(flz?3O9J|E4I`YO0>jEENYwsZ5StCmwA>#xR)3uZ#zWqjvfS>hH_iXz!(MRx~gY&O^g3;6zu ztc{KJ+2Fxa2u@7#vUmNjqoQ%K#vdA_su>6wmtxeSR<=1ZN52 zQuF1D-@%p5#}4b=JWJ!2knDTVsE0S*1X}2lcZ&R<7hsmW9Cseo3yB%ERL@$((()~U z&SB%Vg9oc-=Ak|=lF`JWH;deejgQ~Yk2rem0bWp^z<$kV!EvFcl|Wd zr~h%d@~fK^I6gjp+VtOw{xe^%l`M5B}8(Y5GYa3iGyy|TH_3o1d_re(&K zYq8yrvXRlgPUFsNIU5Lo_-m|6hgHwx)|U0d@-2b;W!K}sm7Z8bnTjb*QKJw%b4yBD z&~5~X_i6jL|N4`G?{9yTTK$^udar%4+BPoinHw*2kpi!imq1=O80S)@UwO^O*KtxN z$n@8}l7|!Tfwk%Fh3e7y`ULy4U2_cE%gc+Q{kY(En&*>e>s?M(_WXgPW#hi7rkLVm zCt4m7klS?!Q@@s$)FA1BfDG8Q{3fuCpfD3zyjIF`JBgEZfe`FO%g?Vf^D^liw1(P7 z4+wx3WO$OKN<;-polkSUjZ?ymWw}F|@lZQ#VOH8?IA`YHCyHgKZC3YdYU)>gJJ+im-PLuZ+SL@~K`4M783>d|Uqd_o(5yl|KBXxYwRP{Tcpz21q z&T52gK{>5Njev6c!H)2Nskaj*=yVQy&>dUuPZ*Pg- z`}n#KQ`~ExKB^?p02EWwYh)D2X4KAeRyudId1WKA>i>zGKPXZ9q~eXb<7RnIQpPib zvql%*=BjP2nukv+)0ZvyJH9N;sAA!MA3kj`+{=A5@uJ*H0Hx=P!-}{6G*+xqvfdHJ z6V>J;R@?uVQiV^C_%IDEjTUG@e(WMeLtXw2>PL1miM;Z@x9OWGBGm>FvyO|}vK5z% zUdsKGrA?lN3EX&n0w@`w0ui>qw^vYCH+y*RI^c^L?*`bs0_j3aBk^ua2KtAXdwTF$)VT`Y!Gu3+uUih zhBTs&y)6MX=!zvQ`9v|vZ2dgLx>?hMEl<8Php%d&qRe)f&NVi|oq7p%&bTENf4B^x z+piHuVi-^a7I}t4DhjHYs%Z2RSxSkXFIp=qs2W$96Nw-$sKvY0zaY{?xky53{*Zzv z1b^?|Gt(o@?@CER}I_#pjlwVIi--8RFK974jr%O_^o1QYPt39pe=kZ9w zLw>>%gvZvx^~XfXy}p~JlzMOX>0htkHB9p(0;8N?fJDXY<$QdEfs5{=U-p~Vs`}E& z37J)BA0O`aEvr@#+uB=i55JN5Z`0-VW1+g7m#4&YKYb&eXOaEyZiheK{$lqytyReL zabY5KU+r#D4h!e@9Hhj=eA|%e>7WiH|AiuXqP@xukPsm#bAtv;aE#5FP@Y!o{T|2l z-wIZBU;h=C_&uzBwp|Vj9C`T77t6+eoG7k}`0wGng8|khu|7}6%f3(VKIK=*HS1yd zciXcc*&UB>+Zo8~j%%rOQ4~1es`cH2X|Y2fXT2}qU%>i!+PE2n0WVkQ2ur48V>1IG z-sKk9{VL7SuEt|jXu^bPIs^@LrP7BM+RzGG(IqqPNB^xnj|w)e4;JSB9{Efr19FBb zd^K?Jf9(ByUXbna+!g{XESULTBfjO)IjG5}oyiVdT^-+nznc;Er|$Cd`tB!Ow*^`$fW9Q=Q)&UA=)L6^1T#stMK>M+~`fDGo{#qcu?eH*i_w}><*6sVk{7Orq_{B>BsGUW} z#c}?Ne7DNp5P0B6cbcWw&UI<~yEm(dn{p>x#Jlu;^E=ihcO@JUrK(*Y&1$Ejf(d%= zx>5o3WX$^sA8e0WWqomz#>bIx$OQU8N*aluhYZP-25o8ru%<6H;)o0?m>IuB1S~T zyPVZcO@$mATU#|W0T2N}`$gBhjeY5y==O{xT!eJY4OH2ZsZLUe{SpyLk>#{w+`D#^$)yg->xp{w_NJd-HICi&6#69KTmH2Rwt<+Y=ja; zyJaqr0A8mw_MLRN-0jXNDbT9`#y(8sInvlaw~G=0IiF{L)Vn^F0FO`Aaq#&{<=Awo z9cwOBU?t&Z8EQPKT^T=m_T3P8de8+F0u29*R+r*tPCgudTuj#3Jde6x*0pK!X~pHU zded4_;@~{b6B8qd44i~>3XX~!AGCdcf6x-0q|@EqYJA2-M60p)eSbN#D|T4#O=GX@ z+SdSSENvG^zygR#vlgso4Vsg^14@FeIxqG${Pq>M|28_X4H$=SU)@~I7j@XDb6xFH z^#p90Jv7~omBF0Xe_o|lJ}H*2y`TwL6FrLxZg8u(Mz zCGdBCmO0bXm7d@F^McP=jSj)uyV!l-%)I}yMcB^D zZiFIHN9X`5--8#c#(nkUeTt_8*~Oa5^SKE1Ki(ef&irmeN#mbt!Cl_wq@#tE-f#D1 z!}_^%cGa4jPl=3-at`bB@&e;pblgdrm)XXqR|DwcI?h$=TVD-Sn5ifT25SL8t-^LF zzcY&uEXGX<@t@nuy1H)?B7WOydQeJqGz_nrEqikRK-2H|uikA`6DfUR(-(R4qDhqV zQQs|4Z{`T}y+SWV0h59ujFbx>wKaLsHJBD5ph!}6v(GHS6C?@tt@u)bBpqN{WYZx8 z$xMJa9Il^mfS|OBUdhN`OOqnkOs`OT9ryOAh_$7Zv>Y@e<%S-$B{(h^fI0B5MMH3) zPy`sG%FL;SL<|d%V)M0{qMM`PcSXir`sV)bt>NB!$<}9B2M_B1YOm*-a>eeW!c)GR z5#2wPS8+-I?o$k*aBYg&OUFe@0c!#^kM~QS%iXUv4y5`nDmy1hWW^0=24?7R&%55o z*kji^u3f}{m$$cOiYq69>4#8?ydMNUVu%RY?81Uer(kUks|Ej=Rb83{XpD2%fC(Id zmjIGXFl)fo4~wHAO`$~fM`))cihaDh)2Lb++r)%a0pdWGL?n_RG*gL0scXbv35ey7 zSilv_Cb)8cVv}&)b2{W@n&Q~*>4OWb>do^U?O*4srahQcXi^R|UK~Ux{>PFApfHCO zM+PKGz=_hR2_gEUsLKKItbL4#rn46tMsWl_ z*+H~o8x3{+jN?0(>J%1bF*+qCGgmk(#*I>U={^m@&(k}^@zZ-y#O}8egkCquuW)sZ zC3hxz@?PicT{$MWRKxO?O}3&f5FLxrWrH4wLNw>t;rOIB+yFAqKpj9;Ijz626?zZA?>MogynfP`3| zaU^$tKr)e~gr&lgj3wk@MZ{5tX$8#nLA|zYK1b{O?pWvQx(45GH^*-pQwTEK7xyc0 zr^=U0S>62oPBR#oJ^?7GK@$;j*)*)7hl?=h(2#jza4;95HfY^@DPcvJVSEV?{-H}( zX!kV0CPHf4iyGUY_Q#YJ()?EyBY5V&%8y^peuB~O*^7x(&-K53WmsxExBs_F7&&+v zC6*TjY!^;@+CEN?`I6hE_N=wmDA|o0(MQqUQild@&o$7?Ei1`aE$!t@ODE=EZFa4N zikC=NhR&Pa|4ngsrPo?8GhCU>Bt{C7Tfm%A*qg#8!4J;@cnJ_G^*03mAaHOa0UQex zE8N*4&oLCzKtPj5rCU+ys%CLOT5nVxmNnQqPz*alUJ%`%sLS^IFtCRT4iLv)LB*&U z%G~ojU0~Eotg~`l8(s86jyjFGbMe1>H&^xK*HR%ShNC*-==eks&t552BvTuj`DGZo z>nJ+(TAXOBiUrJ2&5fJXeepMs(349A{h*M>Mkd_>x3GH|Sgd@uc@WI1Tu8Y|v*Yk2 zW0rs7Z}^>((OptRNVzUs)i{$RK$U7|SwBjYn?BAUNC^0ywy#)dSloPupCu*HUbI7M z{9dY6)ar2rQwm)u$)(X`<6#puCytbP1ujLggDBDmwEsiX*Ij!}KfdkoJF0%Y>v;3} zRz@rHn`kkf@{il185{xheb=purJf84M>`%az#vW!G}-A*R8%y*jxKZw+2=Jc}KU6 zRy{zhPr?P~z}{&EMQkF6usaZxz&ESWep;avyfHx!9)15do#ZOYyeG^chf59Q$(R{) zD=%vlP!dj^cK5$Z{?;UyxeMaw%&OP4Z49=1d}=~fTh&()6M_!9k_c{r2AwVWq0J^& z%HMh_$|u~j`#)0xQHT#b8%#8mFGQZY~5XU#iIb$vL%#ri4lBeVG0`#>gxuX{sm80D$8MpV#poU@G(?F_# zc#FHB)~FmJHWV)qS4w2KTKP@As!t_-DV5(u5lrrx!1i9#$}~6QK3r7aykh5gKP=f= zjOl!NX&xr>zxYku34Rmrs8hD_{CDO@&z3$lwQN<>8vA9>NpS@P4!~r{4QMpmtYE9T z_})*g^?d5La1%t1$)59tCJ;)mF?4N9ffwypl>8i3rMSuZ28oqbMQ7VPJ8ahWjSz2l z*gf>}Vet+)fR>f@v}V(tw?OOT6wl>?*Y0qMaHH10(|`X?PBgpPQ2~p@bP}_Sf3aT@ zxt)3W5m~b7iz)_n$wkQC_jWG3K4~L^32|{GZ+QWeR!bm{T1gQT#1m@Bl!1uuQ;L}~ z#RO8(K6A>Tr`Qem@UgIPG9s(*>FB739Mji#Jx~Rw9NQU@-Ml$ZBOxJM>jX{OY1b-z z1)BLEU2LOU4Dy$1^uGYGV}iJdauYt?8qWhPXOI6Bv#IwA%#+x zYsK9_o6h8o*evnelE8H$s4}(i=kiePlK^+4_al+o7#&`iHa5Y!GRn!W_ma@nV?ncmfEUK53 z#qVz=6Nn5#=)v(Xw4#dCfq69b?akFrkFs%v@qI!7(=62~P*@c+xYQCvfi>j#{>l&b z*u@e;p?11y zN3XIP-*He;v(3io&*S{YS^Y(0##NCXi$YQfg8~K4BIoS)@87c)jjJcDlbC%1ejqA8 zOU;z7_KUA`nPPx@&aB}gnxMPf5eP_E6EtA0j#wf!9hrCPkuui>xF6gh8r1~m1SegAh zE}B*Bibf>u-L^qWmQr+41*C>_~XD-VZ!$f{a0fQ)>k zrPtNDojl9<>Do@&^)|+)o*vv1u&_8W8#U2M20Cml&_3VphdVM312 zHTtbHKDV?1#1og(58`)da5TSWv&l-&*2e))&&NEme@}Dq(pMlNL(_TZ8Cl@%s_Stx zQLcnc8Qspj2{aqL3+c(%;8tVt@$mHlbh#2>k-|Ly$9k;fd+;bprXOX0h1@enV$?6~Z{nFQ6|M_@SeEV^ z5W0Jf5Y<4Cn#yKw%El1JhhB$pTJDJPUC*NlTaf1|CJxl`MZa7o=DTD94Ef-#tE+3i zLTT3Bv>rYh1AJRlTw&F>b4q%}l68d}Z`Z$VkvM?KVY3*}W1~6k%UX0bG zpt4O(n=QDL4kf8n*})fHL^FRwZ7~NMfwPQUl125vz2JC5KkwpcX_;kuiXn1>Z^D*i z3l>NKC*}<;iLThVnV5*6Kx-yA1YSM+oS&bUnOK3CWRyXU|9#a%N`Y&$aGx&Td)-*p zdCC_oy`21W2~iG;Q{L28fClhtefkW7BA82LDF3)7>^rq7yGXF&MuSZ_=LiR+{zt_C zSUb{Ebfb_==-=tBML+QN)XX`;?Lko`g9sQu_)0*S7ZCVA`OP*UXdx0HIUHTszry)c zveq^~xZpRkl;2ro?L8iG0B?|KxlJ2ZqtuKk6U+9wW3aF2AM58?3FQZD)xOG2Mu5o8 zn#2Nq^s=(jOf;9yum7#rHWExk%1?Q_O*P~-J@slu+;uayQ*1&lNU3aIYSpK5`jV@%K$aIuKZLdbFsLo zCdv0e6uPF|&C-)8fQv2$75YfCmM#K-or_Y!FE*+sRiYqwy-Unu8n_N&^gPl4*9gz~{*$pm0$7JU+BVwQFqG z@raDf$Akvg_CL2S1t}Czp;q1FvGMA-9xpM#!;?y9XQ#dpH8{lIa-!}VI)uYwU1OS* z^%V#hk=7!R{DKJW-&TJn;P<+=6&yndFB=Wfo6&>~MtfwmU3Pni7#oLw?6=>}rc}ED ztq;b_7V`1~!`wVwy3*|^*|WN9S9giXuv|Gq7B$Nc+n3!?K&v0#@8Zk%?e9D-#E=2i zMf$s~U?VeU@!R3YD<6?OH4gNu=6PDt)bB=|+Q0_kbP}#7AAVCuRz_DM&n9*DuKJFS z8*G)!#+5TXUiOe5M%?QoICVDp2DpT|>+i*)gJnZ%GwV*q2yZW?V*Z8}J^xsTjB)2K zSa71%z^3vBh=B5uJgOV3zU&=zV{iP0XIxS>V>&PSCT+{-de@rsO&h*fJGd#dqtR->(M-j=Lmh={y*PkP=T!ndlbyN?lC z)^Be0-*ywN@xk{Djm@WVNSi48+xLf7?ew|Ouy`+-?M*mY9R-d^$<=Z?`yfgnPp6fl zV$3L@>T%E3P$*T2p&3jq+&yvxL*#8AHljt-wVY;T%WM+V zdd$xsE?=ZXMZc7Ry<)Qj&Moo^>C9&RCPc7>t29~)HrqIG@)F5&5){+CJIXT>f>&<| zNgTM*F0*7JPD$GCl%f3Smt=xQ^>P=RZRfje=ER#_ZJQkylQ&#Nn`JT!MpmS@l(t8} zrdC{wOjMFBin%gYM_1*Ww%=d)kR*wrEcRjW{E)dQHs7fBGROpyoi8spnZvDEY&L#% zOEJAw+O%}uza^9X6nN<7?T)^Y`}`h#NVL&nGG6a9ATGz_4%ya9nngh`&ed+aBTl0r zwPw5Glyv@JfPiuArs)M7&=xhKT%bq<#Qh$q%l_-=BUMj7USA#0nlT$?cK2$GvEqo> zmA4_!aj9R=hu4+BcIlJ*=$Uib&qUm@d*;H;V~0j+UnmPx7jO-hGFK|i8$l%7nJXCM zHg1)hwRTIw%G7WHP)KQO=ewX7K?g+gE;k<7B&h|DPQ7V(o$_JzWb+2N0^=Ai4Ir=0 zlV8XHlQjW5QWjy%DnJw=^_cqf3JMt#IKM7ci+kRBUOr&w0l<#7zWzr(ht+v`mRz31 zf|C}8o-B>_v5?fu_v>l~%wCbl%QesYrd#{Aa7yYFY3)k4if;N$N?eh@A5-Ymd@HN1 z|Jk@v7m$)+*zDe;qqc4 z8y!umM`i0_qrrCscuU62)f~-DE#HkGfVhI@7VqgmijvYdRTnZTgD?`>#O(e}D~vy; zO&!=k7+giK!hx|pM=k^Ht7z~HbN*ls@P{LetfGI{%FDQ^Ppzd{3qw=U1k=WXmfOs| zDV!`ZYQ#VIseRc*GYgB2xM0MFq|o88q%&hPE@?I^!9d#B2cIdlAPx)>bRYRBq++T*Vf z$S2}svqcggjkVYrNzqQX`8M!cFFmCeA6Ix)k-Cjc~S!jrg z9GR6P?j!&Qz~^6pgZrzIk(Jf)`S~xc%w!xr*q(?iP0SynH7ElibYi3$HS!!Vop~s| zv5tj>p4|8TVE<^vPq_TylB#(uWAv~BPCDvx<`%vK$2KUTk4T!DJs;@{IhUSY-fjZk zT5nISmIZ$S2F;`PSL~eSXG4ZHWW|PB$k{=h*T~8V`}zF**x~)^%Dp%Rf)=jw$zQ@V zW*s*#hL^ux9VcaT;(a(d_6%gscFkHa6X&9WJH@so%n~RF1kUA4? zC^9XstU)6=R8B(T*ZANv2*#iTR!uzQ^X0*D^<1u4F((_FNdB~-uM|nbuV@=lviJL= z6T26n8a0dS6IK`#GOO>aH>T*|;Gmf(n_89s#YK6w>frxt0UW9qkpPBd-dHL2g~@P* zmmQtZCCb6!3$v&hgv|O^3L%oc9b7ChWAkz-w~}*>Pkd^l`#d+e?8ZsJP3`MOs;M&< zQOp#Z?l)<<2olA~uM^E?zA~7SqC28WWW7u=Fv4gzn3{(WoldF!JUYZY9f1~44wNbf ztqj;7+=Oz8*HebLp?N?$SCwzkxX;~&c;uMnO-rGnaDML%8Ig2>dbOr9eo1ejl;hY~WkHY`$euXwhTXV53gt zncS$yb91@i&1J0FK!TA8_-R~Iu`&dVqXN@DUOJ=d(11zZS=-HVI73$j*x5yg1OER@ ze~{J>=2MA&o(Rr1815!Uwv8NeFWSKn<`_y@-QE^O(A;3|DfLCsc( z>hK{%<;elaZj$3md$y;98ZM9xY6^gDk(~sTlOwajZjr@U8~AZC&7HiOykW~vc-+6Y zkO8vU(y&T$!f^0jW=>MUlea?vYnlwSa83IEM9ka{7X`nm!yU1(RQfg~8$} zjLVN%de@MB4cf#n!vA>g2Sufe-A*Z&&PfbStOqKv*>n?kQ$rQbGpCnoO-9wK^?Y*j z^+id6snyjwWa)C6t*J)T4f969X>84Fr;$Q?7`7KqEAt@Y}C~g<}v7ol1WJ&tIXc} zq8DWmMN|xjr)NCXVwml|vIr7m((!B^g>r3rA5^9f-wfrRE0ZN$hT;&75T8Owb!T7}vRCti|AYnisQ$*~fU3nVD z`fg>IHLN=Fl*4-*iWGPJluY?~gw|(RgM5AWfPxt={Srl z#xg%Zzo!qK z|I}Ht#GcR3ITP{SUvS)M?*5$)5RWF(X?b2twe>2lG`%WHi<)Sv)f8UPzxnWH_=IM> zpw_;T6Cm@E(+|)2OVaG$LtlfciR&m};^|teE|NBpjI{@*TV-h|lziYX0vneC=E>n< z>G@|Y^9$zR#oSfNcnh~0bOTId*%+pAF(RCgX52iW#no7Y>-#M0r~@#yv?MX>OcMJ( zq!+n&3?Wa3LRnuw8&M*OPP5i(ks%(u%leAU>eCF{J7y4MQ+>^Y8m~aB6J$1SS>n7m zKlV2T%E|^DH|4XqKgJOJTT?dS4PZ`=j0oMc-UC=6msu&yEM^Cr7$0c$Cx2Fbsr2^7 z9F_@9PK%T{irk)#5erez`{0m4EJHCL&LZw(&~R0&LiPR&4Jv9#8~{BN6b7iN+DNvn z1)ZHh0rA5X!Sy9X_`+zK4E!I5i!>Xl3Xri=LEA3*n1Sp)%%{@4i`Ju#s>iI(^~_l2 z%o(M*TWB4vhht+pi(g5Lyq|ftH+_vAJ&>vs2&x=|9E^YAkkt`Cpq*JYYgF#<&tr-T3W;Jcqjlxk39=~qYKE$DH z*Rp;_Xg(ooTCY1fxr2830ZNDPfR)u1I*OIUT{Tr{=WI)klg9eM2)wUg^s$mHhyNrLi0N0gA)m)r%@*&-Fgs9Z18rG@mn1b zqoss%7&&JA=KqKgZWDk|Bh&Y|xj9!7dSe7FSJ-mL$qp^}!|Ihq$dDXCE1@Wu;;VP( zfR&>veuLfFo(sqGoZ9)rHdTf8>vHDP_op$|Ngdx8mm3$C=yn#*^_Kbaq^vftx08{h zv$svnd|J=SAI6Qp!zvt~Hjw1quQ5HXDGU2;llBbRFtPJOiXaDAg}%n^{F)-%-&cI1 za&gBRlGEzVXck<<`&m9lmfaS6b0}}a2GWWD1u-`qV>t18++lNO0!l1~-*`XR4t03{j_eyQK zb1+7H;w!-n8@HKNFSmqgK51N?;Jb>rZM?PTiZD!}`O>yq#M}A(zy`2C7De<2GpKw7zs4S@q(v zJr_%=3`;7e6P*EB@V8HJa<61yk7u5e$T&;B8TZ72%U@a7s9jKK2W;iD{83%2b=-G8 zyJ5FlXun-4N5Wx{I*7~Q@~Djv;1+1fqzic()qi!Q;?|w#z8;Dq zuHgQfKb8ITuLGa6A<#b*{r&j(K7Q|y2^(c2WL)UD`IxvXCE)^Qe_5jJ_T-#1i zL)HyB)9HEQMA*_Yx=oZ0-MwkBqQNMD;-Vrl$r*g)cOOo7x%Bp&5dE@9a;c~iH0b1T z&CL{@k78(K5!k|1Gb2*uvHRQMd!)z}<9ckHa5gpra6LNbwMb%|jS{z9wBz7y6k(7H zizBCp5yA=rWoEW3S+xnha}8Lu8;FteWY7Y8gldNC$s|?h=k-F6iiZN;@%qOeaAbL= zHcE7QP8`y|ojn@c$)7R$9-8Z0T3gq6=={W9|2}_EN9A%`?ORAw%j0`ZdZuYc=H&&S z{k>>=&c%7R9TatzJytl$J)C88`W{L@~-oFP~g^yKYZJBP%Uz*EoypU<1u@sSM^-EgxZx!FNAJg(fMC+4J`REqVAn zd*bK?13%EGRBBQ=>OzJJ=)OZuLx7z(zc#JwG0!&-%ai@0h!-BkpxcQpj7zBW@_f~W z$(=^l0Ly(>#!p1(eK^1A=bH61-P;sKdsBe~jat!wau%WqOaCQh%rjtH;!ap!yG~9U z+V7cHJU#`riB?Q}H{?v<2Y8>29m6w*GRf^)d@>Bo0&|HM%e}!%8wz@Nh3LadH-Z z7&2-k0fe68p506jlj}@pV+(X8lDR|APYPq>DzGd!C{qoMOxapGZ}lmYW77>H*OOo| zgMH1VdR)uS16yM?@W@{OM5(i{*dA%l_~)`IWakaUOsKGe{3!{n_?Z&iQXJV>*pq6w znOpA7LQ5;izA+}=izt=Puh2c3il#eK@4krl)8MFEaZ(QPg~L7iS&gV*`3TE)T&Y(IM|phwAZxFo4WQCwE{L zjzU{Zhb!2`i5r@HZC>@O_!DAW-&H%Z7N#(`sg9fGO9Us2WF4?}dVdci?Qm|bd9=%> z*AhX|da?6;n8RP)EGxTZZ>rDXssWR!zTaMDoAp0)A6SdAL7HZd9Xy#4n^vr0g_)3z z8nm4F4jkl1v$>+;$%etQKyP-j_|RO7^zi{EWKl)>E3NN7Z`IUEj}I_{#Z*!#vE452 ziVQSiN*ehrp+BcM7CQm zL~%}D$&tOuozI65i&bLBV@2xJuQ((ARbk5;!i&Tnbf6C#p%}`OnK76cG%6r-;0m4& z3#NbR=#{i2d>}7kvtUT7WohFjlr%_a>8~-2-_WL)RHDK}4C$?x4(lR?|HGO6T@*I7r%ZnGx` zd(w0+Yf*hE#HV*y>T&Nre4u=FbF5I~4Fc zS3z+PPO*v&T8$eU#h>ISDq7~qfXn~|zaFD7o~iBklt_*Yy;*kW>{)L_!1+|L-Tkn& z>eY>K=~9QmjHM+n_E#!6G72=YfxaZQv0%KN3OOrSK&BfI5_#X?TeI>Gug3*iE``46 zi!r970ZZz8#LHziF&5-r5z=q87TxrZL-+1XmuqGFC%C4VnpL-Bb#ZNX&;U;8Uhijs zimc8~_q)Zo=D}Fke$hx^`9cMF-AWIYGw^)b+xkgJyy9T+uy0Z>M8Wf|OcM-)o&Khy z4Gj>!XA`zS(~X1E+yT0UKBu-<2y7)PH5B&wTR5ZPVfWoC3nxMf^m3!5LH@~6UKeXoTAIOYyDr*@M1kcp;63^WucRZ7K&rc8b>lQ+Y> zlxv&6ebm0A)0`2w3d-_6Ek42PDm5*fuz~SYvGU-pQweDnLqI8tG-Vy9zl!huy6^=u zj^|i_1^nhf8tSg`SkcI6I=XDy@O-SFWyl_mAEI~kJyQehJ${BM7DNo(o${J(uf*;x zjU}CCpjlP9yqrEHgDYl02u}sa@xy^W6Bk!^(QM67$+o?`OGh?cln*9mC<%J&U$)(# zNIg6DC?k(3X)CF@KlnM-ZN5*p+&8)n4YJ<$1OS{R$6#EEWllK(;HTuY8v<*yuSizg z+3;O_QbsqU|JbaJRfgRUN~#tXc!%?N#Q-rLE}&O&AwXnw99v1@#3To{$g@O7P1s5? z1Km~FR`HLY0fm^)rv+lt9qik5DYBaMdre(&7UsWka?s&{Uq^Z2u5a5P7Gke@wAMFU@K8wZ~3X`T|!pN?F!@bE6${3?IqavXrtA1nrh}-K7Cl#ajVs}nf>$A zV&(6x`YPUCI>6l8ym^~eUl_a6&F1s@l#^#d=6pan$&kzFB$ydHkt_?y%32w6 zAD_<^rx>tC&zRK01rROfIe#2Kg* zaML)?lQ0nOAz1a$Hrxd5+LJMi>PF7%4DXk>u6?3eHzPS4M-~|oAwu#oEHA?IMO+aP zH`s&)FMc>duK2CsQp&}lq_s3Fi^wG%q}uiQqx%gNJO0qD$rjHZI=7-n-&1-aQpOJt z3=D9;1?E%bnCpKw1~T<#?ROFgP{qH-tMA)@Y3(A4)+OcT@0+N?q>5)fSFGtZw)VKV zUsn`);05M#)1kxxwn9OScpcB4CT*O0pW|C6yN-QfKWWK0rOV%+^xUm>OZCwaMJ6Wl z9k$o}-xW5H59Ku@{87>_<-yxYiK=(@PWBA`HZU+k4v~~iU!SLnvrtkB2O;a+>%uRR zH};0_&G$g*c;|V*rx!mG3*>A-cz=}D0wBgg`t5= zxezp}GU2&@9yhp%;ys3NKpfc|t~l)UK2qExX1D_p5b>@KOxU~I^ghAsnE1(R%#eKL z-tqp&pJh5R7Aa6Kro~WCj+%9UhAap8HlG)|LQmccaQ(8MXaG0G1RW zj+Gg+()>9K{+9M_viQiy5^+jWUlVL@E}yLW`U79J)W;xb2~>Ia0p?Yj@k>G@vXVH)J!BtTbk z#<$M7hr$rr&@oWaEnPiI(@yeqDP?-;xWG>IQRLT64UO8pG`3hudvwKfopuZw8BufC zG^{*E69GV|nYOm})sp}L;aT}5t3re?CMI=7>(c&Jc@q?SZ=h_kWLVxu-Oh&b{p+aq zH|^wztdcDfekXJIyddV@u=Fs;kC=){jyi@~>dHzZt?zXQtl^n>9tJ?3dwzpSMrm#aMN1agL94vOoHcDfd+gX}Acl<%l=dZ8F9p$QF zIfcTk+x3vS@tieF|L@%cYd+G;+w^u~%ALa|{S}W{oX+#(!Plt<-^CkFZ@BpSn$Y*M zvuMp71xDPu#k^vicM|nS9PhWhh$jzQ@E%Gq#`qepFukq%A$0tm8>7 zs`!ELk`-t^O0$C68ZORyoM`H*oXul=-G*y08)JjovEp80R#Ksw51ZXv&kJr_oPRVO zP%F!~xv=o~u~~P972i{zYs)XqL>Mqve9^y!L=FyCd}ja-Ic#{(p30*HSH@b)ZDCga zr1P8(_IaOEGE2jy=5VPLf2Fyb*J!ls*}-Li7%m;C3muAShWteZv?>ipenI>}9$sPU0I7siN)oN$ z-o8G}VSDfdZf=NUe~K65d*qXbc%Wg;5Dp?M|7jkTA@T7zM@npc$|M+Tyw`WM4NhNy zQtb`>yLzv)uKl#~Gbq3GF4t{Mv$a#lqqEMtQCjtJ9B#nRUyUW2{0rhY){lk^M%7R# ze?LZ`x&N5M2Z)nLTXfm|iECTD$&F&i_ro8aFOY;D#LN5BBq-)c%{&%VRSeQUZblgd z(n(t+={7jdcig=OPS$d+Ki*`&{M)Yf-WNm9Q2=%9Y%>%p0VSx|fWb8~5aUT&8uCTB z+W{K5rwh*wM%M&Cj~D^yRwM+P%Y4G9h@9$^NiluS$tBZZQ{*P6lG#dDK{6}=Z=N_z zgDFiWj2L18B2szEa5X?qk8n2{5COhwUvXxyxM!RJ>$fsM5#GCB%hF}QW>?B>jz749o3LdW=RJ8inB%T^UH+Q*kOP80%8YjOaGI+)P3{wd z$xI2HLzBz5Vjd>X6J1IiZ6rU9;=eHul2BFdKrs(ebeEb)$bK#^)T|Sg6LF@>O@s|9 z7!eVYj4x?8+D=*LN(^)9a#G-+F0Oj;FF+o*5VEt;nqR3$1mJ`92qlo?TD5}8b=|}? z%OQtcGLIDiv8814aGzWhyYGz{nE>;y0crq{)w-oA zEfq?vtolrt9dYey$c5s90{Er&3vs0VoQ;zeXU7xCOn@b#&C4R8Kr*Ffgc9mx@+!t) z%!!FhQQ=6Ga;t?nNn~g-Rr-^fd-fN}dNtYIc`|UB$c|qzc1qwwr*k&K5DZ0j-O3Z} zoPL%~9K;fDTiI)xxmAAw6%NS-aXlrnmtnCBcp073L$8KZ$E9{^*@fbY**{)+3&=?x zd`5BTvmeq=&N|zhTNZY2R&=vuXjmb5DBm=oCI|f`LpFEnVhVvYjH@xs#PNOTS040U z9xqQi>~IAts)D#1L?8z*DM1JHX*D=o+1R*f&{JEjQwqGXP6{0FCpV>y{i&1ZEk^!_ z(C5brD`%ci%Y!<9oYrw=^~?^$pg96UM<|sjDB$x$2Z+HI-*Cpx>%aNYk1wym0|S}7 zuKzsT27{eAVY(wZzt5lDaWZP$Z$|Sep~1rTe}g9um6H>Ao1q2J5QDJwn?2$@SRwC`k`bPrk`wA*t8SJ{aF^ZVIJaS8TCfVH>1h)m5(4v&5U&Sj%QG^)9L!|V|E}6EBwj({B?1|J3y#r zAnDO={m~|D=4}V(10{NBet@_p$FVEdneX3XWZ|yM%Y|&gM?tatER#CHhn_o7CBozW zYnONP0ab20$b0)~v#ri%xy+u*dHrUQUZ?q2TN`iu@Y;o4lP%u~CIE=GKm6ep7xVw} z`R?Uxqs4K)we9q|iCh}OVb@6jv_=th-fehge}BX)cCkGYg45Cp+yblTz{3t3F2Wdn zIB?}k{U)+PYva4l%g8~KjhDyajy7IL()mNkyT|uZ@~}tt8B^ybI+Xu5swo;MH#}i1 zEZ_OX{l?nQsH@cJJ9xOre>uBGb#AWV2rotj(AIv=XjN`i^ob+-b1ms)BIW(R7T`v} zPsWm6NXE)+HnrJ7?8nAzm)pq><2&-uB77)_k#aTO_@|cR1%<^8g~cqX{+(ea(IkEH z;RM|oRik$e^X#V7`S0`k|198-6l(B6@G=Q5Jm_4LKLO1$nEBzXf-wnwDdZFM%>f7W zGew1QtA-IWg<3Y&HaV8>2bK|#U78{Iq`SKjJrp=$*Xd`*FB>z3wBy#0nL&iz>;AF2Z94tK z+~cP-kk|>W5GXR`kHD`Keys{?OL#bHI;a;NX3ul)4QQK1jbHi;)6<(L@4k zyM9Znk6T7$&6r9-4N|^hb7XsM>}PlRlMID?dR=~fc><|Twm_8)vzC7|qcf#*nN4en zIQRHfUEfBN=-)2Z+s@kFUI#yUt({drY!JG+!?*xB^M_CdBoOB|9XR1`gx|XtQF4iR zG$9S`*fCt6-$OfilU5G|(QiJz-a!#(n@n=uwKrHTz(XKa_y5dbTwG8hQ2^p|e=6F9 zjb_iAqs68UTaI)(F(**rGr4^)qwh61H9NjB3Q~|BiUgmCMlSq&%56ftWJxI3NuAmk8u~l5)Rfy>$Cf6aoZmVqm)6C*06R|L0+gY zAOEsj%$b(ydbjR!{ZJ-}1%Tt4;4ojulAndp>VGD)yX-avgwebOK1Jox(AF9cqk}d? zYLHF`!{#T?GR*gy%f#}hXX{6rh6T<|*U(UjAQ1~2py*eGV+H&+gp4#%VJh+(9b0t6h>J8Av?i$N9F=oF~DR!g~zPk3qC?kkIY))nKvu`^&M36*i2JGs)}AnO?2A z$N1Bk>*n{#_3Dnt+aMh8TXDgMjX&ebR?N@KX4(92&yoJb6d1}u{@qvpVbuxH`Z3>b z(%8$0kV)|bV&VOaS$eLZCDAGKVt3~h$mb-oJ%_o|AA{i^QC+a_+gn!3sozgaG=oQi z3PX0=iK2IZeMTv!ad=OY6VU2pP5z0RW>7$t;2Ek|(EfH$g(+)^V@`18Uk6zL8bgyb zTHpE9XF@UB+A&%XdrU+x&3vuWXdgVG3C%$LXE2lC>E$Uy5kIZMS;u<0HXpJ4je}Rj zL~zKQV$}5BZLH8mAXAXjH$O&#+foZO^&vjIygCN)vt1Ti*`h|FmLDdGp4eNxIDaeS z=K1&eBnVQ@oh=DPMZq?=vE}Pg-9ib*n3%95WKJr{SOR{T1TcW+j(eB7g@rL|uh=g@ zh-Q36lGUV$_z2qX$e62_ZliP8Eqy_s$LbGb*Uc*S;QY9aL5&tD+lrSV^AwBX^_#PR z>b9)Ab#YCh$L{~>teKweaXu*6zSE8&7!n&RaP-XBxB#wSJpu3L>1lr(q#=V1((K%d zef4zdin3u2$W3@MfC1mr+Ov@S+wI9bic8(K)(dZ2!MxSSfdG8^Q#}6gd54(sd&s}- ztX&zpWgUii*2yusDr}UVi2%`KXkAI1>WKuz3@YjC1oLVZz>ke9)voq0>*JqU#&tJm zyU7_NKW_3L5Axcknj9Eh2PBp`zHFE@G7{Wp4x>{(g0C07Zx7ixdiFgSU9aPb>N*xw zg^E&fm*m4X(GnO@-Fh9ce_?u#S!S=T^WhM1e1 z+v&5b4xKY88nPO=LHh|4PepH*}w z#NtbRws*XR?Rhf6o!3KA4U-C5NHLr^#c?-MzvE({nuvSurLfxD1RT>u)py!W>r#hj zuk)l`j}N|rm%X1}{pS8A7-9n;3Cl%bYi6Np$!>`fS+~W>yVPC&r3KwKBjmduz6P99Y@B98zGil zK252|zoxJAE2jz;tbFQC&mEvHd+WOx%9Y@Q_TO?=n_h_YC1gR6eKwsBb7^z6(0|yC zV%+@IQrhqH7Vvg?&*+BfRAaNsi$hoGb>-G}T)LePe+-MOkcmXe^b>^`(3J!2i zox5(MXrH^2&Mt(QrS}^k*8Skq+oKoIwZDec>HMz~7bXRsth(d2?BiF7@cgMd$G}c7j0{Fy52p-|wJsa2Bfwh!obgdnZ<;QgHfLT&d{L}BliiCC!cAA9IeJhtO27ZtyYVJ5+LZblsE^W@d)Den8+ zYsDhvBY>5G{?(NZ3roz5Xcr+mTCL{iLWwZ<+)qt78C7jOJgN12P;o9AD?fy1Z2tkc zS5J@*E7hQ&iSYdSkRX?jm}lzn-k(^Bt1LKV$gw64I}XGmU@AE9fqxryPjU3gkjTe* zTD4946BoCa)suq^k0_ei$AA6FFZa1m^W)LVM{>nfJ_6ag8jJ2F)lMhW$LZ;Rd{4?b ztM$8H>rsyR=6`JGLIE0!YP36jW%E{Gb|w{OtyTqgxXJtxJE$q+V#Gu&9Sa6Aa%E^7 z#tWG4^QrE#`I8_o#FrQG^7SgtrVa;iX8*Zb_U1qVaG}STC6c82FopXZNFWFp3Av>$ z1O&oyB55W#?30YdY5&O=FuIoPkN%`0QYGRqdrv6&cWY^B!wE-3pw=z(ee08@a5DB@ z+r1IX+{-|Lj#vJ<%sF_L>Do1W3gQXuOwKvJ&i5HbA-%aVlbNs*&_dSGriTrVsqVx~ z>nCP>Jk5R02!IUF7;FsQF(ECoTK(wmG-zq(p##03wIV{Kc;j;q2X=VTsJDSx+J>*5 zo4LJGwk#0;3**bNx>2kTkWl-l(;_*rIcx@Op(bQWFP`V^InRM952_(pimq#foz#W` zR@jg%7IeB$0VV4Jq0iX)A4!C|9_6Ym70cx8Dw*eDkWu@uBm~T|9GP7^a*I-u{xmW0 zI&|Ks%BF?}h-dTuCU(7o;7>9^JE;9t5arsUJlSsJpXc= zJZnOETTOEO=>=bvupas5jpXb`QWN*9ytW)ZymQC=4&B|3%{ zz-5?er@YY=$@+^{xjKh-ZNQ5GTdIKSa8mXR`JkTGe|pQVwa(-HmD$(A_HViDlra&0 z2TzF~mcJg(pIBipjBO@o(db|FDmfY94?3_ae-xD&`DSvvTG3QCaF<6{etIi^#@hAL zwy9c;35MxViO$x8cs3v&Hu-je1%}+o`tb8NbV304zdxQbiR>E2*LbI9S?u%_!_N!z z=m0>+XMBG1Y2&WbeLgYd@m-+*)W$*;Vk=pT3L0#tt8D@iQncX1Ts-j0>P)U_c6ntX zOL{>3cP2)q083lF2RCavZ`z`Uv1$4bO2JGRJ)ph=^Wv5=34`3Qx6JzU^c=Yo# zZDlxQbNz9H^Q?VC>1E;Thqc??wzsE%j$5HhFK@@6B-hqouKGwBZP#Bh0COuO84;vX znF2B~HjUZA_8oC3Q`+AwJmW({Kcc3m7m`d^d%(4`h$^h+#}8^rOfYY8$BDZhS{igf zUD1L>81`Y2TJKPt&V2m3`RY6aWju1xHZc)R7599WYgU zLM^$553a&-7>lA^$Tynos>8%ayn33I_2)qCC6q^AsVP-*uuQuLTQtY4Bw`#tf7z)O zHUtWAiWDA?6ZF3SC3RV$)8aUp#gF3R@;? z84|w1F4jz%!gyID0{I<1@wzUOWI32~MK!1-gA^Sex#p3DF)30y%_NBq<|K(&vLD2) zpudj`JDJ(3ga|#6^0V1LJqdEn{Lex(XB~%7^q(QJr8+f6z}?1E{Q9SVE4K^U(Son{ z>u&4&7w*h)G3bQ~^X9Up5MWME1NZxLRlWoafm!oA`l8PLa4^aa+;J<*%XwXTskM;v z(b!T>nz;F}NZTy`9+(XOvo9He6-JvcEz)!yj^hwUi*`Q!Ap2t4OFftyt3q?T;l-Q8 z(3wd5i!`94@Js2y*#|Z@1b?oNc(TRH-^+E;`qsi|cHix`@~r;rNTPxXz5-?$SA2KxYP&gK?3CJ`Y6CN8Ba2SjXO5NxF(4afe*0}Db8 zbLQNqqdH+0h|&_?VP-J%fWaxQ+9&hbIKwX}Z~R^xA59$S`V zJ%>%ks4YM)lB-fJUuxXqT&An(QtYJXaBU ziL)eIdPFH(x!bbo?`y8$)jt1`Y{0M9@MELlG?^cE;Z;x`3aBV%5Aw%F4MHC-AOq_q zOzU8TA~*PW+_~nL6QQ?ac3ny8-xrccV>lGf9;Wba%|pqYM+iq%>u=TYgq%aw#K1ty z(hhlxMDJ=$Zux~f2*cLi@`YT6bSuo8)}|}|T24o$C@Grvh{8vJcM#E*3^H0Ciz9d0 z-Q5i&Vk9!@Us;v{{EN=KE{Bl>oem>6UmKUrJ$IHlt2$o??n1Jk?+$`bAJ%q2j}F0+ zd+zXey{IpDp>NhIlH}iEMV;Xb*=A+X!w2(23+4xEBw+z))wFGD#Ctw%ni_|khBQbz zJYZopau;RpXNJ>i)rt`+4-;9SEbmngF_rS;;n|!~t@aPpKvixsRI~cJXKp7+J@7Mj zsCjeu2K}?wa9nVphM5iE_v7_d>N)$Tq@>*}P|Q4af47%rd`Iv-$6*KxHndxCeQj;xx$T zVe+&h^(K1VrKLa&*mOAAIYZQ0Wy_&DP;4&%_2-}S>c-vK|`yQ2e9Wr!eO-{-CTv3Oq(7gCJO#lZ| z6N1YF3~iImnfJe*1Jr9ceczMfS3jROFY!j3GrB*9!_K$sm1mJfj-ITZ(+{K96qi{~ zT}3P$sR@Gy5jsB8<97ni>7KvayD3RXxvDnne`Z8{>WjPz{&3SsZ~lOb^u3!QMaZge z7RaIBLk+w&6aBXQTNcXDHrDKIDE7L(QBf-wJWCof}5lwR$I0qE%~Ed@OH4bu-T6^xz`x%J@a8Sd({xhU;*SS)HZ zR##W_JiS)2)OA8FW9~M5t@K`;x4-03Ra0+1BmNAYbwpaE*K4+|*=5!r>FMd&_p4)X4x<_wBvTQAmQQ0oX@c!k8YMObUKkK>$g%CR%&aN1fykn2xt~8cj+2!f}nZZzM!$6G z0EOmlO&2TUbhEKSQXN6=FKKxejFm2U6lSjP{RnEl57XGs;xWb)CLeEipZ6O@9Pc)K z8os~nMhl)gw?G+?;p#LPKBVNJSZnb<%e}K&T-5hW?6*_}=k`>*2p8t%{G3L`f-#9O z>!U|xWNvFT6}N;XKi7I5M9=Zx;$Rt7`m{VT zE2$a)V)n%PmF8(hl)^+86;GvzJPMp3x4P1x{`OLvY3B?ul>#R$`Ad(1m8z-=9hv)f ze41W20~r`Btj5k|!#*pc%ZHg3=PXANi>O&yXM`vv#hfVT)vgCK(YHrU=dYcl5fT!D zGDsH$qGT1RO>%ia&es^j8VSRc;Q55tghu`T&xu*TmoP^F(NEmn>`m&pJU0zHJ99_# zR>q1GW}1m!85tQBw<_vhWlqCf{yX8x)fr)85fr;v>iSgz(*_)XkeBvTSRw8FpZ0Bq zA1Pc<^%C3M%- zOH@zPYq9>4!$@!;V858D@9dtk;6eMT`K(3ZZb+H&b+GXyv&;K@*^B7@2;7xlAFWQ? z?{ZfKmfFr1+61jQcv$?6dRvm^

tzrNl2M1{U1h{@GbND8qVO(Ra1{txGqIT|3cl zJ4j1!%;=PKcN=_dZ1l_Is$j&cG>xZASN+G_QLZ#p=olJcM0zN*a#)czfA1cJFPmfY z^!GSC#jo`?Dq?DxTJ5ZXEM78dSH{$BGd4hl7@$mPF=3}DR1vAC%A3|0Hx2HCGPuji zR14QG!~_jtOt{b200MxFikjiNa(J|>+vfV<%}z-akV7Q_b~_vHPabtYnuhm&lf!fn z=A?uuhRl}*Rr%Z?akPWyYdVJwwBO3gN?93A)`7g*%>SrAgQY31SSO{?&g+$chiQ;i^C(0k1GczMpOF~8AD-B# z>$tQGixkZM4!GmzIdb1!r&t! ztcR@pV-LPi3@tj0-ToZiyX)ZI+Db_AvJ4PQ#`oqkj)jKLHB}4g=PsH3BE%&iT%e|J z_<=9=^ntEBj#V&2flCL*WIX-sC2GrqHfqh?;i{K0#cQ-e&fP{Ea6t4=3BA@pHhl~r z{L(AcZ;tl?)RPx1n@e1X4jovwn=;2Yr0t^#;zwTJxS&McWV)@GnHk1aYWwCQS^xTL zPIyEm1(Rm9W8InUG_{Yf!Gcj;U4D#@U(VvilZehzxYsUFJ!w~?6^(pry8rLegVxep zfV~z1Ai_DYu>DjDek?LgU{OeWme472c)(BVz+y02P{@6sE=d{Ajpgjop_e}l+j6L) z+d>89$06Z8K|u$E!;0y`;`XH*O|)JA^{MUXxV9bgw7JaK z#uv$UnXXo!oF*5D*RH>;{IP7*uO_ptwTa`9wWMs^r4=wb&LNY=qz;1>jsYCdV33&t zT7JA338C?kad*s&A8hKQBcQ^=Y;m4l37mo9XtrZ;xO8+nc~mTkkiDUw(uLULW{g^iK+Myu?1CJ|FcCZrrU# zlj)uupBc-S=Vmj>%n&X}{nEpa$3#2^h}Eoq{IU@wg#M*}1LnQbnH427%v-W2nUHR) z1RlxX6Gr4OnZD9M6#*wmns+ETJ6SA(~azXy;X?6kCALqcPt6t_ELk6FU2MSB;|0?EPHqPICrfbKv_IE$5jRA~{71s&;A zWKgtW;un`(kb0t z-@ZS-{lU)cFbp%#%)NJODK|Q`Ak!{XoDqkHdk9-_}s{ z(E8rqWf+oV%Lc8)B>K+_^A%pa@|eOv8f+j~)ScQ-k9V}gYkgKn|q{%OT|Chgp~9JB9ko>6?F?Rh9w7SuuVh52P=Hhk0TymA;R7(l~U>67vD z_J2Y5>W8N@R*5Edc}+`7B_;DpP-VEK(QF|zbZhj=0+k-`uo$j>_#jg+u#-`0-^O%c z;Eb;+*Wt!+b9j`U(>{xz0^QtL6P*w_KGkf|L|#kh|5h=(E4O|CD^IM_0I~R>V%0$) z<>lp{a->|Ro>`Tq!Q(EwA9x3HSs*jqS0X3=4{-Fru4;yT{kk|ut#<5ydG5nyNVV2* z{!CVeAT`9j5_+3{^AzW_SI)HmK=qu6gUerbKHqr@CD#QwzWOfGD1v_rtz0EIxO7z} zxqJ<$Nv1`~lThE%>Ad9mR3eKVeLWHK)b&gXkaRx%+f4Lj9RJgz_-~VnCxZuf-z6j4 zU=J=PQ3gt)^UL-ppEVin7kn9VA#W6zAz>cEY1c~_(NiFn;~aWR~pDx9SIo@2XKqb-?!^zJTfeZ4qWzoDHm;wrL%OUH+fd(*A|TFXd>8iIw~(XsTdNXOhI*tp0k}@b zj(VFE^Z)HS`j)nDSm@n96o0O;*H5$$X*B9nl0g$OR$x(}#WTjOGp0zM#_W;Pup7D> zj%lHY&l0@Q{KfOug}2FW33oN{uzzo_ae&?svpQGvA&M!B9l3fJSQGJ~x__jClaO3b zCtXDLH~H&Z-T#5fI&Ze-1-b+#eCXi^htyQE71Y}rwvTn%V`NHnIkFAtt;?W{x+O6V zU6zVvPkysh76_E3*D;dJ8?6a2ZBcVd=Zu;HRHxx&o!;kDb9izE`uAtR=7J+bCJaJ@ z4-jwb>jppms-AYIqotwX1Wg~=gDEaBr44c^E|5ZzdR$Y!VSVLMS`7k;_kQD?GkB8@ z^1Hv>`z)LzkG=S-oEE*uw1&o3t+%8rY-=^hr~RtMC2;nO*jd<3$lA@z+Ko;9Rndps z+?c)hGWZour5Ne6v(L}ojQe>dMiZ&5NC$!En6YAM z0d<8XwWp`DmMmSJl=&Sj($5+LO*qJ&k&Gff_b`ngP1nP?8D-~B#V=v8%Lcq3tMpKS zu@(h|G}mN+T9>uB-&Hu*$oRNW#(y2{QuQtGh^gvnJv~v$qu1#(*5p&C5m3i4WEv}?N|SLy;pfYH9Z}W zFT{`ShyNHwmNC!%CXNLYRbqnFm6h>M+45%c8h%n;ieCHHo0smdLUv=qA=7W)gc;G; z)Y-VH74&%PP*7lDV47o>57)RW8F{2dj!RZIfmJsi_oQf_{5{<9-rEww`jLCpn05T- zbj&2yZ432-cG7K}o7YiqtirWd3|*>1M8v1eKN2B!qm9(k+og5J%0hK=zb&bkTI-uz z|7!+wPVDEu?i(^}(yhq!d|Qqb+ER9sE^6feAR>_8caC8AYxOUezb&QdEDqjJW)zzb zZ9yg+^M53xh8QKOSwk@rxF}us{Zm-d8I(&$BRlT=MU1KD(L{1KvJ;l|$78aWzwN8XUm=f*t7lN^_~4E0Llau98Q9*u9W^xO-0iP!rYyV+^k4cI%Tc)=OsoVdf#Sa=vklH;-!K-_B zBd)xC*O>L!1EoCNv#*_2MeDN3-ii)+P_^q^Rpy929F}saP%N!}fC`wP+szj{%kx^b zur+BD`HIiAqr3%H7Kxu`9BhKmdb^tIIE6$-pHtw4$zNlTdpFH-g zzK9%KiQVQ%Li_8fp0;$l?$Q&nkm;x%o~lE$|$?{T$QANVp0N?Z9M|t84=g4 zBkvGjMOi8#&(4`9#40AA?Zs=M?|qR~X@>R98VO%HS0oN<$1F>mW+{V+VuwEQ@Vmf+ zG`L>yRoOxI;(k@2sLgnamvI601fg9oFWIbT&nx9gV6DwJE2DMXdWAmk@-dn!Z4^U3 zT{61X$&X?AYSg8@CWAHjAKi`c!)>{emfwq{PuB@W*PREI;DFS7{?*^Ko>i`r$>HtQ zXu$x$*jmL++Hd|bMIIq^Mtod+eD4!Q=WFGBkDwY|=e0M8-Fw8lxJLCi zC!LQSA->o3Cjo;l&qJwV(W*OWRFByZgk;6*KP?Je5AQ>)EVp)k%u>0txHDWx5P!c- z`-L%%w4}>O=$q42T-o|MtYZSMEZ*REmV6DeYGd!=h`YP z3+biJ?mTYAIdAveQ|Bk&qhNCQ%L%CihZky_2=G6dGv^G;5T-gRXJxQ<9F)9LO((TX zb(nJ(;Z}60a|U-GwH$VKKLqk8>|Xf6+-^s&cJ6CA=|#$ujLuRk%M!avW&$y&MzkS5 zig?^%-)st?j^dT=^^_HAJj8n7BV z-V#CuH004}lRpPbkH&sSC|X4#>%3}R8G4htNcxHrMyji(DW#?dj)&j`+$*SQ0wlR< zc#M1*J)Hh+=$TaO_SM|!t!L~<*<)NNm=L;Q_mz%L_hyF zm}0+!Q%xsSd+6Qh(`6r*`8r<#>XL||fAqsPZ}0A6S$bW2YVu|PTMZriMy72G9CA2h z8#EQmqqfw>2PTL&#2%)HXuCd5%?Db2yImMsHdBxXT>S^1jM3BZLDF?(Pe!7wQV12w)s$Rhj z%K9A5?1vVcI0l3sOTWe?7~N?AwDR~_@Gq2#4OpfNWsuoEzCEhe791v`iqOwU&mBcw zEcBi_Fp3n(0FR-S$LK|Mtwu^WaMg#+HJ?23eOP_UusD>pH%fPI%NrCF+t>{kEn*@=w8G73JXYe`X$!Pe|yzJy#e^cn5cG80@LU)2#6=N^dRAak1#Vd9QxLBrte zbH2JAVN7hku1l#BaTp>M>gZC(TCt&$)f;`-1B&_^`Z2)iLgBzr8qWRz#0d{N;znni zaHJ^q68WrJXwiiSQ~K_x>~?DISxVy!--nPOuc%o4oY3*af-Mrfx%KbA^Sr!8_KbUV)pdNFKaejr;uQx=Ij zcCMjW$H3N+$0J5Y09v~TcGSc3NPwR)0>606#r2CnC-h<5X)<~3T-w1gF6p4EJq`f9 z(%wZ$55z+a0KxQ`>==U{@q)@7dAAp>jK{ed_)KqLu2}3}63EnlL1X2xjC|Ub_ssow zKW5vSVJ0>19?xcluKTjnSjb}AZ-%dW-f{r4jqY^WMCgkXUKzAUy&0hXnz;OfZILD@ zCE_tu<9Dm{aR+f0eGK)sc`(g`dPh#nQTG#aN_VunhJz{GV_gn4Hxc$cw=}MRco5I2 zp9Psbj1}+OtG)*F%^q+b($7I0iX;dOYcfaRxSID`FtQc3YZG(=og$8YW#`%{$ z7hL4voz~ibh;ZPwsh)Rj#!dOq3L2Hr{mP;s=j-&)1Se-W=YiY}(7jG^qjk!oMHKHa zX17dL&0n4oEc_YE@qoWcKtKRbAnd9;yfPEr!WI zIl~~A>}?!lMuLf%>TM6TsMW31?j61htFJaBZH^>Y3O%)-j?d}v;9NVoJk)P!lH$|} zu3}=pXTr+MKi%>7cp^ilPxzFO9mKjvlI#U>tU~HeZhLiP{e4lvkn6*N_S^C=xXC!H z@A{&N**+k@osbS>*u8E&L#-=pvq%SXezs%sKK;fv+cwsPo_g3;I?XU{btpJ~)}-sF zZmZOz<#^rZ7Q?7)m!UsW&5wumNj0O$sou1$UV+Sc@n8T28HkIVoLdC62enDwWBsAd zhOfQoA=kqPZ3QW`u*{K_Pu?iXWfrP$CLqOspy+-ZyELE0=C&-C_h@h~C}tEONp zErmq_0XuO{E8CvmDP1gCyGSRAdVL%dAEpZ2$^O?kp<8!@=%Z0@id1Bpf7!{%E;@ zOhmUyZm7tYL`zf7DSL87=1C9VpZKqyFJ{!*{Pd>w@US@�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 h+;Gv3lK!-it;KRLtTd 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�GarvTC^&ZEj9vdDpBD!B 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 Date: Fri, 9 Sep 2016 17:24:03 +0200 Subject: [PATCH 49/62] Delete screenshot.png --- screenshot.png | Bin 545125 -> 0 bytes 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 screenshot.png diff --git a/screenshot.png b/screenshot.png deleted file mode 100644 index 0f84c90843cf4a1641404c9e7453499f02287623..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 545125 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

U}1i1tP~;mz(nsDO>J|KIdq2I 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

=kL|gR1ty0cK<;0e^lcoi-gLQ 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%0A8~|;oc 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

Tv*joFr7>ksDNxK~@K)y4wKt&=ld?T?b_d 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

tzrNl2M1{U1h{@GbND8qVO(Ra1{txGqIT|3cl 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�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 h+;Gv3lK!-it;KRLtTd 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�GarvTC^&ZEj9vdDpBD!B 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 Date: Fri, 9 Sep 2016 17:24:17 +0200 Subject: [PATCH 50/62] Add files via upload --- screenshot.png | Bin 0 -> 382702 bytes 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 screenshot.png diff --git a/screenshot.png b/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..4284dac04fce8abe1d09a303246d5482c8b2d313 GIT binary patch literal 382702 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 z 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®$KgOcZglaJrJ!kH%t;-_8f2bqW1h@YUE6+ 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⪙K3&JeJd8_ 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�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 Date: Fri, 9 Sep 2016 17:30:00 +0200 Subject: [PATCH 51/62] lil update --- PBMap.pb | 9 ++++----- screenshot.png | Bin 0 -> 382702 bytes 2 files changed, 4 insertions(+), 5 deletions(-) create mode 100644 screenshot.png diff --git a/PBMap.pb b/PBMap.pb index 113588d..9cf934a 100644 --- a/PBMap.pb +++ b/PBMap.pb @@ -531,9 +531,7 @@ Module PBMap Procedure.i GetTileFromHDD(CacheFile.s) Protected nImage.i If FileSize(CacheFile) > 0 - ; OnErrorCall(@LoadErrorHandler()) nImage = LoadImage(#PB_Any, CacheFile) - ; OnErrorDefault() If IsImage(nImage) MyDebug("Success loading " + CacheFile + " as nImage " + Str(nImage), 3) ProcedureReturn nImage @@ -574,7 +572,7 @@ Module PBMap Else MyDebug("Can't catch image loaded from web " + TileURL, 3) nImage = -1 - ;ShowMemoryViewer(*Buffer, MemorySize(*Buffer)) + EndIf Else MyDebug(" Problem loading from web " + TileURL, 3) @@ -1209,7 +1207,7 @@ Module PBMap Else ;New move values LatLon2Pixel(@PBMap\GeographicCoordinates, @PBMap\PixelCoordinates, PBMap\Zoom) ;This line could be removed as the coordinates don't have to change but I want to be sure we rely only on geographic coordinates - ;Ensures that pixel position stay in the range [0..2^Zoom*PBMap\TileSize[ coz of the wrapping of the map + ;Ensures that pixel position stay in the range [0..2^Zoom*PBMap\TileSize[ coz of the wrapping of the map PBMap\PixelCoordinates\x - MouseX PBMap\PixelCoordinates\x = Mod(Mod(PBMap\PixelCoordinates\x, MapWidth) + MapWidth, MapWidth) PBMap\PixelCoordinates\y - MouseY @@ -1426,7 +1424,8 @@ CompilerIf #PB_Compiler_IsMainFile CompilerEndIf ; IDE Options = PureBasic 5.50 (Windows - x64) -; CursorPosition = 1411 +; CursorPosition = 1209 +; FirstLine = 1381 ; Folding = ----------- ; EnableThread ; EnableXP diff --git a/screenshot.png b/screenshot.png new file mode 100644 index 0000000000000000000000000000000000000000..4284dac04fce8abe1d09a303246d5482c8b2d313 GIT binary patch literal 382702 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 z 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®$KgOcZglaJrJ!kH%t;-_8f2bqW1h@YUE6+ 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⪙K3&JeJd8_ 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�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 Date: Mon, 12 Sep 2016 12:57:52 +0200 Subject: [PATCH 52/62] Tile loading fix, option file, misc fixes --- PBMap.pb | 327 ++++++++++++++++++++++++++++++++++++++----------------- 1 file changed, 226 insertions(+), 101 deletions(-) diff --git a/PBMap.pb b/PBMap.pb index 9cf934a..039456e 100644 --- a/PBMap.pb +++ b/PBMap.pb @@ -27,16 +27,23 @@ UsePNGImageEncoder() DeclareModule PBMap #Red = 255 + ;-Show debug infos Global Verbose = 0 Global MyDebugLevel = 5 - ;-Proxy ON/OFF - Global Proxy = #False #SCALE_NAUTICAL = 1 #SCALE_KM = 0 + #MODE_DEFAULT = 0 + #MODE_HAND = 1 + #MODE_SELECT = 2 + #MODE_EDIT = 3 + Declare InitPBMap(window) + Declare SetOption(Option.s, Value.s) + Declare LoadOptions(PreferencesFile.s = "PBMap.prefs") + Declare SaveOptions(PreferencesFile.s = "PBMap.prefs") Declare.i AddMapServerLayer(LayerName.s, Order.i, ServerURL.s = "http://tile.openstreetmap.org/", TileSize = 256, ZoomMin = 0, ZoomMax = 18) Declare DeleteLayer(Nb.i) Declare MapGadget(Gadget.i, X.i, Y.i, Width.i, Height.i) @@ -134,8 +141,19 @@ Module PBMap EndStructure Structure Option + HDDCachePath.s ; Path where to load and save tiles downloaded from server + DefaultOSMServer.s ; Base layer OSM server WheelMouseRelative.i - ScaleUnit.i ; Scale unit to use for measurements + ScaleUnit.i ; Scale unit to use for measurements + Proxy.i ; Proxy ON/OFF + ProxyURL.s + ProxyPort.s + ProxyUser.s + ProxyPassword.s + ShowDegrees.i + ShowDebugInfos.i + ShowScale.i + TimerInterval.i EndStructure Structure Layer @@ -149,40 +167,43 @@ Module PBMap Window.i ; Parent Window Gadget.i ; Canvas Gadget Id Font.i ; Font to uses when write on the map - Timer.i + Timer.i ; Redraw/update timer + GeographicCoordinates.GeographicCoordinates ; Latitude and Longitude from focus point Drawing.DrawingParameters ; Drawing parameters based on focus point - ; + CallBackLocation.i ; @Procedure(latitude.d,lontitude.d) CallBackMainPointer.i ; @Procedure(X.i, Y.i) to DrawPointer (you must use VectorDrawing lib) - ; + PixelCoordinates.PixelCoordinates ; Actual focus point coords in pixels (global) MoveStartingPoint.PixelCoordinates ; Start mouse position coords when dragging the map - ; - List Layers.Layer() + + List Layers.Layer() ; ZoomMin.i ; Min Zoom supported by server ZoomMax.i ; Max Zoom supported by server Zoom.i ; Current zoom TileSize.i ; Tile size downloaded on the server ex : 256 - ; - HDDCachePath.S ; Path where to load and save tiles downloaded from server + MemCache.TileMemCach ; Images in memory cache - ; + + Mode.i ; User mode : 0 (default)->hand (moving map) and select markers, 1->hand, 2->select only (moving objects), 3->drawing (todo) Redraw.i Moving.i Dirty.i ; To signal that drawing need a refresh - ; + MainDrawingThread.i - TileThreadMutex.i; ;Mutex to protect resources + TileThreadMutex.i; ; Mutex to protect resources + List track.GeographicCoordinates() ; To display a GPX track List Marker.Marker() ; To diplay marker EditMarkerIndex.l + + ImgLoading.i ; Image Loading Tile + ImgNothing.i ; Image Nothing Tile + + Options.option ; Options - ImgLoading.i ;Image Loading Tile - ImgNothing.i ;Image Nothing Tile - - Options.option ; EndStructure #PB_MAP_REDRAW = #PB_EventType_FirstCustomValue + 1 @@ -295,25 +316,73 @@ Module PBMap EndIf EndProcedure - Procedure InitPBMap(Window) - Protected Result.i - If Verbose - OpenConsole() + ;TODO : best cleaning of the string from bad behaviour + Procedure.s StringCheck(String.s) + ProcedureReturn Trim(RemoveString(RemoveString(RemoveString(RemoveString(RemoveString(RemoveString(RemoveString(RemoveString(RemoveString(RemoveString(String, Chr(0)), Chr(32)), Chr(39)), Chr(33)), Chr(34)), "@"), "/"), "\"), "$"), "%")) + EndProcedure + + Macro SelBool(Name) + Select UCase(Value) + Case "0", "FALSE", "DISABLE" + PBMap\Options\Name = #False + Default + PBMap\Options\Name = #True + EndSelect + EndMacro + + Procedure SetOption(Option.s, Value.s) + Option = StringCheck(Option) + Select LCase(Option) + Case "proxy" + SelBool(Proxy) + Case "proxyurl" + PBMap\Options\ProxyURL = Value + Case "proxyport" + PBMap\Options\ProxyPort = Value + Case "proxyuser" + PBMap\Options\ProxyUser = Value + Case "tilescachepath" + PBMap\Options\HDDCachePath = Value + Case "wheelmouserelative" + SelBool(WheelMouseRelative) + Case "showdegrees" + SelBool(ShowDegrees) + Case "showdebuginfos" + SelBool(ShowDebugInfos) + Case "showscale" + SelBool(ShowScale) + EndSelect + EndProcedure + + Procedure SaveOptions(PreferencesFile.s = "PBMap.prefs") + If PreferencesFile = "PBMap.prefs" + CreatePreferences(GetHomeDirectory() + "PBMap.prefs") + Else + CreatePreferences(PreferencesFile) + EndIf + PreferenceGroup("PROXY") + WritePreferenceInteger("Proxy", PBMap\Options\Proxy) + WritePreferenceString("ProxyURL", PBMap\Options\ProxyURL) + WritePreferenceString("ProxyPort", PBMap\Options\ProxyPort) + WritePreferenceString("ProxyUser", PBMap\Options\ProxyUser) + PreferenceGroup("URL") + WritePreferenceString("DefaultOSMServer", PBMap\Options\DefaultOSMServer) + PreferenceGroup("PATHS") + WritePreferenceString("TilesCachePath", PBMap\Options\HDDCachePath) + PreferenceGroup("OPTIONS") + WritePreferenceInteger("WheelMouseRelative", PBMap\Options\WheelMouseRelative) + WritePreferenceInteger("ShowDegrees", PBMap\Options\ShowDegrees) + WritePreferenceInteger("ShowDebugInfos", PBMap\Options\ShowDebugInfos) + WritePreferenceInteger("ShowScale", PBMap\Options\ShowScale) + ClosePreferences() + EndProcedure + + Procedure LoadOptions(PreferencesFile.s = "PBMap.prefs") + If PreferencesFile = "PBMap.prefs" + OpenPreferences(GetHomeDirectory() + "PBMap.prefs") + Else + OpenPreferences(PreferencesFile) EndIf - PBMap\HDDCachePath = GetTemporaryDirectory() - PBMap\ZoomMin = 0 - PBMap\ZoomMax = 18 - PBMap\MoveStartingPoint\x = - 1 - PBMap\TileSize = 256 - PBMap\Dirty = #False - PBMap\TileThreadMutex = CreateMutex() - PBMap\EditMarkerIndex = -1 ;Initialised with "no marker selected" - PBMap\Font = LoadFont(#PB_Any, "Arial", 20, #PB_Font_Bold) - PBMap\Window = Window - PBMap\Timer = 1 - PBMap\Options\WheelMouseRelative = #True - AddMapServerLayer("OSM", 1, "http://tile.openstreetmap.org/") - ;-Preferences ;Use this to create and customize your preferences file for the first time ; CreatePreferences(GetHomeDirectory() + "PBMap.prefs") ; ;Or this to modify @@ -327,18 +396,47 @@ Module PBMap ; WritePreferenceString("ProxyUser", "myproxyname") ; WritePreferenceString("ProxyPass", "myproxypass") ;TODO !Warning! !not encoded! ; ClosePreferences() - OpenPreferences(GetHomeDirectory() + "PBMap.prefs") PreferenceGroup("PROXY") - Proxy = ReadPreferenceInteger("Proxy", #False) - If Proxy - Global ProxyURL$ = ReadPreferenceString("ProxyURL", "") ;InputRequester("ProxyServer", "Do you use a Proxy Server? Then enter the full url:", "") - Global ProxyPort$ = ReadPreferenceString("ProxyPort", "") ;InputRequester("ProxyPort" , "Do you use a specific port? Then enter it", "") - Global ProxyUser$ = ReadPreferenceString("ProxyUser", "") ;InputRequester("ProxyUser" , "Do you use a user name? Then enter it", "") - Global ProxyPassword$ = InputRequester("ProxyPass", "Do you use a password ? Then enter it", "") ;TODO + PBMap\Options\Proxy = ReadPreferenceInteger("Proxy", #False) + If PBMap\Options\Proxy + PBMap\Options\ProxyURL = ReadPreferenceString("ProxyURL", "") ;InputRequester("ProxyServer", "Do you use a Proxy Server? Then enter the full url:", "") + PBMap\Options\ProxyPort = ReadPreferenceString("ProxyPort", "") ;InputRequester("ProxyPort" , "Do you use a specific port? Then enter it", "") + PBMap\Options\ProxyUser = ReadPreferenceString("ProxyUser", "") ;InputRequester("ProxyUser" , "Do you use a user name? Then enter it", "") + PBMap\Options\ProxyPassword = InputRequester("ProxyPass", "Do you use a password ? Then enter it", "") ;TODO EndIf + PreferenceGroup("URL") + PBMap\Options\DefaultOSMServer = ReadPreferenceString("DefaultOSMServer", "http://tile.openstreetmap.org/") + If PBMap\Options\DefaultOSMServer <> "" + AddMapServerLayer("OSM", 1, PBMap\Options\DefaultOSMServer) + EndIf + PreferenceGroup("PATHS") + PBMap\Options\HDDCachePath = ReadPreferenceString("TilesCachePath", GetTemporaryDirectory()) + PreferenceGroup("OPTIONS") + PBMap\Options\WheelMouseRelative = ReadPreferenceInteger("WheelMouseRelative", #True) + PBMap\Options\TimerInterval = 20 ClosePreferences() + EndProcedure + + Procedure InitPBMap(Window) + Protected Result.i + If Verbose + OpenConsole() + EndIf + PBMap\ZoomMin = 0 + PBMap\ZoomMax = 18 + PBMap\MoveStartingPoint\x = - 1 + PBMap\TileSize = 256 + PBMap\Dirty = #False + PBMap\TileThreadMutex = CreateMutex() + PBMap\EditMarkerIndex = -1 ;Initialised with "no marker selected" + PBMap\Font = LoadFont(#PB_Any, "Arial", 20, #PB_Font_Bold) + PBMap\Window = Window + PBMap\Timer = 1 + PBMap\Mode = #MODE_DEFAULT + LoadOptions() curl_global_init(#CURL_GLOBAL_WIN32) TechnicalImagesCreation() + SetLocation(0, 0) EndProcedure Procedure.i AddMapServerLayer(LayerName.s, Order.i, ServerURL.s = "http://tile.openstreetmap.org/", TileSize = 256, ZoomMin = 0, ZoomMax = 18) @@ -549,8 +647,8 @@ Module PBMap Protected *Buffer Protected nImage.i = -1 Protected FileSize.i, timg - If Proxy - FileSize = CurlReceiveHTTPToFile(TileURL, CacheFile, ProxyURL$, ProxyPort$, ProxyUser$, ProxyPassword$) + If PBMap\Options\Proxy + FileSize = CurlReceiveHTTPToFile(TileURL, CacheFile, PBMap\Options\ProxyURL, PBMap\Options\ProxyPort, PBMap\Options\ProxyUser, PBMap\Options\ProxyPassword) If FileSize > 0 MyDebug("Loaded from web " + TileURL + " as CacheFile " + CacheFile, 3) nImage = GetTileFromHDD(CacheFile) @@ -558,25 +656,35 @@ Module PBMap MyDebug("Problem loading from web " + TileURL, 3) EndIf Else - *Buffer = ReceiveHTTPMemory(TileURL) ;TODO to thread by using #PB_HTTP_Asynchronous - If *Buffer - nImage = CatchImage(#PB_Any, *Buffer, MemorySize(*Buffer)) - If IsImage(nImage) - If SaveImage(nImage, CacheFile, #PB_ImagePlugin_PNG, 0, 32) - MyDebug("Loaded from web " + TileURL + " as CacheFile " + CacheFile, 3) - Else - MyDebug("Loaded from web " + TileURL + " but cannot save to CacheFile " + CacheFile, 3) - EndIf - FreeMemory(*Buffer) - ; EndIf - Else - MyDebug("Can't catch image loaded from web " + TileURL, 3) - nImage = -1 - - EndIf + FileSize = CurlReceiveHTTPToFile(TileURL, CacheFile) + If FileSize > 0 + MyDebug("Loaded from web " + TileURL + " as CacheFile " + CacheFile, 3) + nImage = GetTileFromHDD(CacheFile) Else - MyDebug(" Problem loading from web " + TileURL, 3) + MyDebug("Problem loading from web " + TileURL, 3) EndIf + ; **** PLEASE KEEP THIS CODE + ; I'm (djes) now using Curl only as the catchimage/saveimage is a double operation (uncompress/recompress PNG) + ; and is modifying the original PNG image which could lead to PNG error (Idle has spent hours debunking the 2 bits PNG bug) + ; More than that, the original Receive library is not Proxy enabled. + ; *Buffer = ReceiveHTTPMemory(TileURL) ;TODO to thread by using #PB_HTTP_Asynchronous + ; If *Buffer + ; nImage = CatchImage(#PB_Any, *Buffer, MemorySize(*Buffer)) + ; If IsImage(nImage) + ; If SaveImage(nImage, CacheFile, #PB_ImagePlugin_PNG, 0, 32) ;The 32 is needed !!!! + ; MyDebug("Loaded from web " + TileURL + " as CacheFile " + CacheFile, 3) + ; Else + ; MyDebug("Loaded from web " + TileURL + " but cannot save to CacheFile " + CacheFile, 3) + ; EndIf + ; FreeMemory(*Buffer) + ; Else + ; MyDebug("Can't catch image loaded from web " + TileURL, 3) + ; nImage = -1 + ; EndIf + ; Else + ; MyDebug(" Problem loading from web " + TileURL, 3) + ; EndIf + ; **** EndIf ProcedureReturn nImage EndProcedure @@ -672,7 +780,7 @@ Module PBMap If tiley >= 0 And tiley < tilemax kq = (PBMap\zoom << 8) | (tilex << 16) | (tiley << 36) key = PBMap\Layers()\Name + Str(kq) - CacheFile = PBMap\HDDCachePath + key + ".png" + CacheFile = PBMap\Options\HDDCachePath + key + ".png" img = GetTile(key, CacheFile, px, py, tilex, tiley, PBMap\Layers()\ServerURL) If img <> -1 MovePathCursor(px, py) @@ -940,25 +1048,29 @@ Module PBMap DrawTrack(*Drawing) DrawMarkers(*Drawing) DrawPointer(*Drawing) - ;- Display how many images in cache - VectorFont(FontID(PBMap\Font), 30) - VectorSourceColor(RGBA(0, 0, 0, 80)) - MovePathCursor(50,50) - DrawVectorText(Str(MapSize(PBMap\MemCache\Images()))) - MovePathCursor(50,80) - Protected ThreadCounter = 0 - ForEach PBMap\MemCache\Images() - If PBMap\MemCache\Images()\Tile <> 0 - If IsThread(PBMap\MemCache\Images()\Tile\GetImageThread) - ThreadCounter + 1 + If PBMap\Options\ShowDebugInfos + ;- Display how many images in cache + VectorFont(FontID(PBMap\Font), 30) + VectorSourceColor(RGBA(0, 0, 0, 80)) + MovePathCursor(50,50) + DrawVectorText(Str(MapSize(PBMap\MemCache\Images()))) + MovePathCursor(50,80) + Protected ThreadCounter = 0 + ForEach PBMap\MemCache\Images() + If PBMap\MemCache\Images()\Tile <> 0 + If IsThread(PBMap\MemCache\Images()\Tile\GetImageThread) + ThreadCounter + 1 + EndIf EndIf - EndIf - Next - DrawVectorText(Str(ThreadCounter)) - DrawDegrees(*Drawing, 192) - ;If PBMap\Options\ShowScale - DrawScale(*Drawing,10,GadgetHeight(PBMAP\Gadget)-20,192) - ;EndIf + Next + DrawVectorText(Str(ThreadCounter)) + EndIf + If PBMap\Options\ShowDegrees + DrawDegrees(*Drawing, 192) + EndIf + If PBMap\Options\ShowScale + DrawScale(*Drawing,10,GadgetHeight(PBMAP\Gadget)-20,192) + EndIf StopVectorDrawing() EndProcedure @@ -1053,7 +1165,7 @@ Module PBMap Protected zoom.d = Log(360 / (resolution * PBMap\TileSize))/Log(2) Protected lon.d = centerX; Protected lat.d = centerY; - SetLocation(lat,lon, Round(zoom,#PB_Round_Down)) + SetLocation(lat, lon, Round(zoom,#PB_Round_Down)) Else SetLocation(PBMap\GeographicCoordinates\Latitude, PBMap\GeographicCoordinates\Longitude, 15) EndIf @@ -1094,6 +1206,15 @@ Module PBMap ;Drawing() EndProcedure + ; User mode + ; #MODE_DEFAULT = 0 -> "Hand" (move map) and move objects + ; #MODE_HAND = 1 -> Hand only + ; #MODE_SELECT = 2 -> Move objects only + ; #MODE_EDIT = 3 -> Create objects + Procedure SetMode(Mode = #MODE_DEFAULT) + PBMap\Mode = Mode + EndProcedure + ;Zoom on x, y position relative to the canvas gadget Procedure SetZoomOnPosition(x, y, zoom) Protected MouseX.d, MouseY.d @@ -1178,17 +1299,19 @@ Module PBMap MouseY = PBMap\PixelCoordinates\y - GadgetHeight(PBMap\Gadget) / 2 + GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseY) ;Clip MouseX to the map range (in X, the map is infinite) MouseX = Mod(Mod(MouseX, MapWidth) + MapWidth, MapWidth) - ;Check if we select a marker - ForEach PBMap\Marker() - LatLon2TileXY(@PBMap\Marker()\GeographicCoordinates, @MarkerCoords, PBMap\Zoom) ;This line could be removed as the coordinates don't have to change but I want to be sure we rely only on geographic coordinates - MarkerCoords\x * PBMap\TileSize - MarkerCoords\y * PBMap\TileSize - ;Debug "Pos : " + StrD(Marker\x) + " ; Drawing pos : " + StrD(PBMap\Drawing\TileCoordinates\x) - If Distance(MarkerCoords\x, MarkerCoords\y, MouseX, MouseY) < 8 - PBMap\EditMarkerIndex = ListIndex(PBMap\Marker()) - Break - EndIf - Next + If PBMap\Mode = #MODE_DEFAULT Or PBMap\Mode = #MODE_SELECT + ;Check if we select a marker + ForEach PBMap\Marker() + LatLon2TileXY(@PBMap\Marker()\GeographicCoordinates, @MarkerCoords, PBMap\Zoom) ;This line could be removed as the coordinates don't have to change but I want to be sure we rely only on geographic coordinates + MarkerCoords\x * PBMap\TileSize + MarkerCoords\y * PBMap\TileSize + ;Debug "Pos : " + StrD(Marker\x) + " ; Drawing pos : " + StrD(PBMap\Drawing\TileCoordinates\x) + If Distance(MarkerCoords\x, MarkerCoords\y, MouseX, MouseY) < 8 + PBMap\EditMarkerIndex = ListIndex(PBMap\Marker()) + Break + EndIf + Next + EndIf ;Mem cursor Coord PBMap\MoveStartingPoint\x = GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseX) PBMap\MoveStartingPoint\y = GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseY) @@ -1198,13 +1321,13 @@ Module PBMap MouseX = GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseX) - PBMap\MoveStartingPoint\x MouseY = GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseY) - PBMap\MoveStartingPoint\y ;Move marker - If PBMap\EditMarkerIndex > -1 + If PBMap\EditMarkerIndex > -1 And (PBMap\Mode = #MODE_DEFAULT Or PBMap\Mode = #MODE_SELECT) SelectElement(PBMap\Marker(), PBMap\EditMarkerIndex) LatLon2TileXY(@PBMap\Marker()\GeographicCoordinates, @MarkerCoords, PBMap\Zoom) MarkerCoords\x + MouseX / PBMap\TileSize MarkerCoords\y + MouseY / PBMap\TileSize TileXY2LatLon(@MarkerCoords, @PBMap\Marker()\GeographicCoordinates, PBMap\Zoom) - Else + ElseIf PBMap\Mode = #MODE_DEFAULT Or PBMap\Mode = #MODE_HAND ;New move values LatLon2Pixel(@PBMap\GeographicCoordinates, @PBMap\PixelCoordinates, PBMap\Zoom) ;This line could be removed as the coordinates don't have to change but I want to be sure we rely only on geographic coordinates ;Ensures that pixel position stay in the range [0..2^Zoom*PBMap\TileSize[ coz of the wrapping of the map @@ -1265,7 +1388,7 @@ Module PBMap CanvasGadget(PBMap\Gadget, X, Y, Width, Height, #PB_Canvas_Keyboard) EndIf BindGadgetEvent(PBMap\Gadget, @CanvasEvents()) - AddWindowTimer(PBMap\Window, PBMap\Timer, 20) + AddWindowTimer(PBMap\Window, PBMap\Timer, PBMap\Options\TimerInterval) BindEvent(#PB_Event_Timer, @TimerEvents()) EndProcedure @@ -1373,11 +1496,13 @@ CompilerIf #PB_Compiler_IsMainFile ;Our main gadget PBMap::InitPBMap(#Window_0) + PBMap::SetOption("ShowDegrees", "1") + PBMap::SetOption("ShowDebugInfos", "1") + PBMap::SetOption("ShowScale", "1") PBMap::MapGadget(#Map, 10, 10, 512, 512) PBMap::SetCallBackMainPointer(@MainPointer()) ;To change the Main Pointer PBMap::SetCallBackLocation(@UpdateLocation()) - PBMap::SetLocation(-36.81148, 175.08634,12) - ;PBMap::SetLocation(0, 0) + ;PBMap::SetLocation(-36.81148, 175.08634,12) PBMAP::SetMapScaleUnit(PBMAP::#SCALE_NAUTICAL) PBMap::AddMarker(49.0446828398, 2.0349812508, -1, @MyMarker()) @@ -1401,7 +1526,7 @@ CompilerIf #PB_Compiler_IsMainFile Case #Button_5 PBMap::SetZoom( - 1) Case #Gdt_LoadGpx - PBMap::LoadGpxFile(OpenFileRequester("Choose a file to load", "", "*.gpx", 0)) + PBMap::LoadGpxFile(OpenFileRequester("Choose a file to load", "", "Gpx|*.gpx", 0)) PBMap::ZoomToArea() ; <-To center the view, and zoom on the tracks Case #Gdt_AddMarker PBMap::AddMarker(ValD(GetGadgetText(#String_0)), ValD(GetGadgetText(#String_1)), RGBA(Random(255), Random(255), Random(255), 255), @MyMarker()) @@ -1424,9 +1549,9 @@ CompilerIf #PB_Compiler_IsMainFile CompilerEndIf ; IDE Options = PureBasic 5.50 (Windows - x64) -; CursorPosition = 1209 -; FirstLine = 1381 -; Folding = ----------- +; CursorPosition = 1499 +; FirstLine = 1484 +; Folding = ------------ ; EnableThread ; EnableXP ; EnableUnicode \ No newline at end of file From ecc8a998c9ca52af0c2352510a2aac2569282d9d Mon Sep 17 00:00:00 2001 From: djes Date: Mon, 12 Sep 2016 14:02:40 +0200 Subject: [PATCH 53/62] Example upgrade --- PBMap.pb | 31 ++++++++++++++++++++----------- 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/PBMap.pb b/PBMap.pb index 039456e..d9cd870 100644 --- a/PBMap.pb +++ b/PBMap.pb @@ -61,6 +61,8 @@ DeclareModule PBMap Declare Refresh() Declare.d GetLatitude() Declare.d GetLongitude() + Declare.d MouseLatitude() + Declare.d MouseLongitude() Declare.i GetZoom() EndDeclareModule @@ -1418,6 +1420,7 @@ CompilerIf #PB_Compiler_IsMainFile #Gdt_LoadGpx #Gdt_AddMarker #Gdt_AddOpenseaMap + #Gdt_Degrees EndEnumeration Structure Location @@ -1465,6 +1468,7 @@ CompilerIf #PB_Compiler_IsMainFile ResizeGadget(#Gdt_AddMarker,WindowWidth(#Window_0)-170,#PB_Ignore,#PB_Ignore,#PB_Ignore) ResizeGadget(#Gdt_LoadGpx,WindowWidth(#Window_0)-170,#PB_Ignore,#PB_Ignore,#PB_Ignore) ResizeGadget(#Gdt_AddOpenseaMap,WindowWidth(#Window_0)-170,#PB_Ignore,#PB_Ignore,#PB_Ignore) + ResizeGadget(#Gdt_Degrees,WindowWidth(#Window_0)-170,#PB_Ignore,#PB_Ignore,#PB_Ignore) PBMap::Refresh() EndProcedure @@ -1480,8 +1484,8 @@ CompilerIf #PB_Compiler_IsMainFile ButtonGadget(#Gdt_Up, 580, 070, 30, 30, Chr($25B2)) : SetGadgetFont(#Gdt_Up, FontID(0)) ButtonGadget(#Gdt_Down, 580, 130, 30, 30, Chr($25BC)) : SetGadgetFont(#Gdt_Down, FontID(0)) TextGadget(#Text_2, 530, 160, 60, 15, "Zoom") - ButtonGadget(#Button_4, 550, 180, 50, 30, " + ") : SetGadgetFont(#Button_4, FontID(1)) - ButtonGadget(#Button_5, 600, 180, 50, 30, " - ") : SetGadgetFont(#Button_5, FontID(1)) + ButtonGadget(#Button_4, 550, 180, 50, 30, " + ") : SetGadgetFont(#Button_4, FontID(1)) + ButtonGadget(#Button_5, 600, 180, 50, 30, " - ") : SetGadgetFont(#Button_5, FontID(1)) TextGadget(#Text_3, 530, 230, 60, 15, "Latitude : ") StringGadget(#String_0, 600, 230, 90, 20, "") TextGadget(#Text_4, 530, 250, 60, 15, "Longitude : ") @@ -1489,10 +1493,11 @@ CompilerIf #PB_Compiler_IsMainFile ButtonGadget(#Gdt_AddMarker, 530, 280, 150, 30, "Add Marker") ButtonGadget(#Gdt_LoadGpx, 530, 310, 150, 30, "Load GPX") ButtonGadget(#Gdt_AddOpenseaMap, 530, 340, 150, 30, "OpenSeaMap") + ButtonGadget(#Gdt_Degrees, 530, 370, 150, 30, "Show/Hide Degrees") Define Event.i, Gadget.i, Quit.b = #False Define pfValue.d - Define OpenSeaMap = 0 + Define OpenSeaMap = 0, Degrees = 1 ;Our main gadget PBMap::InitPBMap(#Window_0) @@ -1500,11 +1505,11 @@ CompilerIf #PB_Compiler_IsMainFile PBMap::SetOption("ShowDebugInfos", "1") PBMap::SetOption("ShowScale", "1") PBMap::MapGadget(#Map, 10, 10, 512, 512) - PBMap::SetCallBackMainPointer(@MainPointer()) ;To change the Main Pointer - PBMap::SetCallBackLocation(@UpdateLocation()) - ;PBMap::SetLocation(-36.81148, 175.08634,12) - PBMAP::SetMapScaleUnit(PBMAP::#SCALE_NAUTICAL) - PBMap::AddMarker(49.0446828398, 2.0349812508, -1, @MyMarker()) + PBMap::SetCallBackMainPointer(@MainPointer()) ; To change the main pointer (center of the view) + PBMap::SetCallBackLocation(@UpdateLocation()) ; To obtain realtime coordinates + PBMap::SetLocation(-36.81148, 175.08634,12) ; Change the PBMap coordinates + PBMAP::SetMapScaleUnit(PBMAP::#SCALE_NAUTICAL) ; To change the scale unit + PBMap::AddMarker(49.0446828398, 2.0349812508, -1, @MyMarker()) ; To add a marker Repeat Event = WaitWindowEvent() @@ -1532,12 +1537,16 @@ CompilerIf #PB_Compiler_IsMainFile PBMap::AddMarker(ValD(GetGadgetText(#String_0)), ValD(GetGadgetText(#String_1)), RGBA(Random(255), Random(255), Random(255), 255), @MyMarker()) Case #Gdt_AddOpenseaMap If OpenSeaMap = 0 - OpenSeaMap = PBMap::AddMapServerLayer("OpenSeaMap", 2, "http://t1.openseamap.org/seamark/") ;add a special osm overlay map + OpenSeaMap = PBMap::AddMapServerLayer("OpenSeaMap", 2, "http://t1.openseamap.org/seamark/") ; Add a special osm overlay map on layer nb 2 Else PBMap::DeleteLayer(OpenSeaMap) OpenSeaMap = 0 EndIf PBMAP::Refresh() + Case #Gdt_Degrees + Degrees = 1 - Degrees + PBMap::SetOption("ShowDegrees", Str(Degrees)) + PBMap::Refresh() EndSelect Case #PB_Event_SizeWindow ResizeAll() @@ -1549,8 +1558,8 @@ CompilerIf #PB_Compiler_IsMainFile CompilerEndIf ; IDE Options = PureBasic 5.50 (Windows - x64) -; CursorPosition = 1499 -; FirstLine = 1484 +; CursorPosition = 1515 +; FirstLine = 1485 ; Folding = ------------ ; EnableThread ; EnableXP From 00bb41566a32ba26c003996b8bccfca34dff01f3 Mon Sep 17 00:00:00 2001 From: djes Date: Mon, 12 Sep 2016 14:42:46 +0200 Subject: [PATCH 54/62] Cache tree creation --- PBMap.pb | 109 ++++++++++++++++++++++++++++++++----------------------- 1 file changed, 64 insertions(+), 45 deletions(-) diff --git a/PBMap.pb b/PBMap.pb index d9cd870..45c99e4 100644 --- a/PBMap.pb +++ b/PBMap.pb @@ -217,7 +217,7 @@ Module PBMap ;Shows an error msg and terminates the program Procedure Error(msg.s) - MessageRequester("MapGadget", msg, #PB_MessageRequester_Ok) + MessageRequester("PBMap", msg, #PB_MessageRequester_Ok) End EndProcedure @@ -408,9 +408,7 @@ Module PBMap EndIf PreferenceGroup("URL") PBMap\Options\DefaultOSMServer = ReadPreferenceString("DefaultOSMServer", "http://tile.openstreetmap.org/") - If PBMap\Options\DefaultOSMServer <> "" - AddMapServerLayer("OSM", 1, PBMap\Options\DefaultOSMServer) - EndIf + PreferenceGroup("PATHS") PBMap\Options\HDDCachePath = ReadPreferenceString("TilesCachePath", GetTemporaryDirectory()) PreferenceGroup("OPTIONS") @@ -435,7 +433,10 @@ Module PBMap PBMap\Window = Window PBMap\Timer = 1 PBMap\Mode = #MODE_DEFAULT - LoadOptions() + LoadOptions() + If PBMap\Options\DefaultOSMServer <> "" + AddMapServerLayer("OSM", 1, PBMap\Options\DefaultOSMServer) + EndIf curl_global_init(#CURL_GLOBAL_WIN32) TechnicalImagesCreation() SetLocation(0, 0) @@ -443,6 +444,14 @@ Module PBMap Procedure.i AddMapServerLayer(LayerName.s, Order.i, ServerURL.s = "http://tile.openstreetmap.org/", TileSize = 256, ZoomMin = 0, ZoomMax = 18) Protected *Ptr = AddElement(PBMap\Layers()) + Protected DirName.s = PBMap\Options\HDDCachePath + LayerName + "\" + If FileSize(DirName) <> -2 + If CreateDirectory(DirName) = #False ; Creates a directory based on the layer name + Error("Can't create the following cache directory : " + DirName) + Else + MyDebug(DirName + " successfully created", 4) + EndIf + EndIf If *Ptr PBMap\Layers()\Name = LayerName PBMap\Layers()\Order = Order @@ -651,43 +660,38 @@ Module PBMap Protected FileSize.i, timg If PBMap\Options\Proxy FileSize = CurlReceiveHTTPToFile(TileURL, CacheFile, PBMap\Options\ProxyURL, PBMap\Options\ProxyPort, PBMap\Options\ProxyUser, PBMap\Options\ProxyPassword) - If FileSize > 0 - MyDebug("Loaded from web " + TileURL + " as CacheFile " + CacheFile, 3) - nImage = GetTileFromHDD(CacheFile) - Else - MyDebug("Problem loading from web " + TileURL, 3) - EndIf Else - FileSize = CurlReceiveHTTPToFile(TileURL, CacheFile) - If FileSize > 0 - MyDebug("Loaded from web " + TileURL + " as CacheFile " + CacheFile, 3) - nImage = GetTileFromHDD(CacheFile) - Else - MyDebug("Problem loading from web " + TileURL, 3) - EndIf - ; **** PLEASE KEEP THIS CODE - ; I'm (djes) now using Curl only as the catchimage/saveimage is a double operation (uncompress/recompress PNG) - ; and is modifying the original PNG image which could lead to PNG error (Idle has spent hours debunking the 2 bits PNG bug) - ; More than that, the original Receive library is not Proxy enabled. - ; *Buffer = ReceiveHTTPMemory(TileURL) ;TODO to thread by using #PB_HTTP_Asynchronous - ; If *Buffer - ; nImage = CatchImage(#PB_Any, *Buffer, MemorySize(*Buffer)) - ; If IsImage(nImage) - ; If SaveImage(nImage, CacheFile, #PB_ImagePlugin_PNG, 0, 32) ;The 32 is needed !!!! - ; MyDebug("Loaded from web " + TileURL + " as CacheFile " + CacheFile, 3) - ; Else - ; MyDebug("Loaded from web " + TileURL + " but cannot save to CacheFile " + CacheFile, 3) - ; EndIf - ; FreeMemory(*Buffer) - ; Else - ; MyDebug("Can't catch image loaded from web " + TileURL, 3) - ; nImage = -1 - ; EndIf - ; Else - ; MyDebug(" Problem loading from web " + TileURL, 3) - ; EndIf - ; **** + FileSize = CurlReceiveHTTPToFile(TileURL, CacheFile) EndIf + If FileSize > 0 + MyDebug("Loaded from web " + TileURL + " as CacheFile " + CacheFile, 3) + nImage = GetTileFromHDD(CacheFile) + Else + MyDebug("Problem loading from web " + TileURL, 3) + EndIf + + ; **** PLEASE KEEP THIS CODE + ; I'm (djes) now using Curl only as the catchimage/saveimage is a double operation (uncompress/recompress PNG) + ; and is modifying the original PNG image which could lead to PNG error (Idle has spent hours debunking the 2 bits PNG bug) + ; More than that, the original Receive library is not Proxy enabled. + ; *Buffer = ReceiveHTTPMemory(TileURL) ;TODO to thread by using #PB_HTTP_Asynchronous + ; If *Buffer + ; nImage = CatchImage(#PB_Any, *Buffer, MemorySize(*Buffer)) + ; If IsImage(nImage) + ; If SaveImage(nImage, CacheFile, #PB_ImagePlugin_PNG, 0, 32) ;The 32 is needed !!!! + ; MyDebug("Loaded from web " + TileURL + " as CacheFile " + CacheFile, 3) + ; Else + ; MyDebug("Loaded from web " + TileURL + " but cannot save to CacheFile " + CacheFile, 3) + ; EndIf + ; FreeMemory(*Buffer) + ; Else + ; MyDebug("Can't catch image loaded from web " + TileURL, 3) + ; nImage = -1 + ; EndIf + ; Else + ; MyDebug(" Problem loading from web " + TileURL, 3) + ; EndIf + ; **** ProcedureReturn nImage EndProcedure @@ -748,7 +752,7 @@ Module PBMap \CacheFile = CacheFile \ServerURL = ServerURL \RetryNb = 5 - \nImage = -1 + \nImage = -1 MyDebug(" Creating get image thread nb " + Str(\GetImageThread) + " to get " + CacheFile, 3) \GetImageThread = CreateThread(@GetImageThread(), *NewTile) EndWith @@ -780,9 +784,24 @@ Module PBMap EndIf tiley = ty + y If tiley >= 0 And tiley < tilemax - kq = (PBMap\zoom << 8) | (tilex << 16) | (tiley << 36) + kq = (PBMap\Zoom << 8) | (tilex << 16) | (tiley << 36) key = PBMap\Layers()\Name + Str(kq) - CacheFile = PBMap\Options\HDDCachePath + key + ".png" + ; Creates a directory based on the zoom + Protected DirName.s = PBMap\Options\HDDCachePath + PBMap\Layers()\Name + "\" + Str(PBMap\Zoom) + If FileSize(DirName) <> -2 + If CreateDirectory(DirName) = #False + Error("Can't create the following cache directory : " + DirName) + EndIf + EndIf + ; Creates a directory based on x + DirName.s + "\" + Str(tilex) + If FileSize(DirName) <> -2 + If CreateDirectory(DirName) = #False + Error("Can't create the following cache directory : " + DirName) + EndIf + EndIf + ; Tile cache name based on y + CacheFile = DirName + "\" + Str(tiley) + ".png" img = GetTile(key, CacheFile, px, py, tilex, tiley, PBMap\Layers()\ServerURL) If img <> -1 MovePathCursor(px, py) @@ -1558,8 +1577,8 @@ CompilerIf #PB_Compiler_IsMainFile CompilerEndIf ; IDE Options = PureBasic 5.50 (Windows - x64) -; CursorPosition = 1515 -; FirstLine = 1485 +; CursorPosition = 450 +; FirstLine = 419 ; Folding = ------------ ; EnableThread ; EnableXP From 970959bd51d46b4442dcbc55ad85588238855b3b Mon Sep 17 00:00:00 2001 From: djes Date: Mon, 12 Sep 2016 17:23:04 +0200 Subject: [PATCH 55/62] Cache management based on the tile last usage , and some cleanup --- PBMap.pb | 113 +++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 72 insertions(+), 41 deletions(-) diff --git a/PBMap.pb b/PBMap.pb index 45c99e4..8110b0e 100644 --- a/PBMap.pb +++ b/PBMap.pb @@ -119,21 +119,20 @@ Module PBMap Dirty.i End.i EndStructure - - Structure TileThread - *Tile.Tile - GetImageThread.i - EndStructure - + Structure ImgMemCach nImage.i - *Tile.Tile - ;Location.Location - ;Mutex.i + *Tile.Tile + TimeStackPosition.i + EndStructure + + Structure ImgMemCachKey + MapKey.s EndStructure Structure TileMemCach Map Images.ImgMemCach(4096) + List ImagesTimeStack.ImgMemCachKey() ; Usage of the tile (first = older) EndStructure Structure Marker @@ -156,6 +155,7 @@ Module PBMap ShowDebugInfos.i ShowScale.i TimerInterval.i + MaxMemCache.i ; in MiB EndStructure Structure Layer @@ -188,15 +188,12 @@ Module PBMap TileSize.i ; Tile size downloaded on the server ex : 256 MemCache.TileMemCach ; Images in memory cache - + Mode.i ; User mode : 0 (default)->hand (moving map) and select markers, 1->hand, 2->select only (moving objects), 3->drawing (todo) Redraw.i Moving.i Dirty.i ; To signal that drawing need a refresh - - MainDrawingThread.i - TileThreadMutex.i; ; Mutex to protect resources - + List track.GeographicCoordinates() ; To display a GPX track List Marker.Marker() ; To diplay marker EditMarkerIndex.l @@ -229,7 +226,7 @@ Module PBMap EndIf EndProcedure - ;- *** CURL specific *** + ;- *** CURL specific ; (program has To be compiled in console format for curl debug infos) IncludeFile "libcurl.pbi" ; https://github.com/deseven/pbsamples/tree/master/crossplatform/libcurl @@ -345,6 +342,8 @@ Module PBMap PBMap\Options\ProxyUser = Value Case "tilescachepath" PBMap\Options\HDDCachePath = Value + Case "maxmemcache" + PBMap\Options\MaxMemCache = Val(Value) Case "wheelmouserelative" SelBool(WheelMouseRelative) Case "showdegrees" @@ -356,6 +355,7 @@ Module PBMap EndSelect EndProcedure + ;By default, save options in the user's home directory Procedure SaveOptions(PreferencesFile.s = "PBMap.prefs") If PreferencesFile = "PBMap.prefs" CreatePreferences(GetHomeDirectory() + "PBMap.prefs") @@ -373,6 +373,7 @@ Module PBMap WritePreferenceString("TilesCachePath", PBMap\Options\HDDCachePath) PreferenceGroup("OPTIONS") WritePreferenceInteger("WheelMouseRelative", PBMap\Options\WheelMouseRelative) + WritePreferenceInteger("MaxMemCache", PBMap\Options\MaxMemCache) WritePreferenceInteger("ShowDegrees", PBMap\Options\ShowDegrees) WritePreferenceInteger("ShowDebugInfos", PBMap\Options\ShowDebugInfos) WritePreferenceInteger("ShowScale", PBMap\Options\ShowScale) @@ -413,6 +414,7 @@ Module PBMap PBMap\Options\HDDCachePath = ReadPreferenceString("TilesCachePath", GetTemporaryDirectory()) PreferenceGroup("OPTIONS") PBMap\Options\WheelMouseRelative = ReadPreferenceInteger("WheelMouseRelative", #True) + PBMap\Options\MaxMemCache = ReadPreferenceInteger("MaxMemCache", 20480) ;20 MiB, about 80 tiles in memory PBMap\Options\TimerInterval = 20 ClosePreferences() EndProcedure @@ -427,7 +429,7 @@ Module PBMap PBMap\MoveStartingPoint\x = - 1 PBMap\TileSize = 256 PBMap\Dirty = #False - PBMap\TileThreadMutex = CreateMutex() + ;PBMap\TileThreadMutex = CreateMutex() PBMap\EditMarkerIndex = -1 ;Initialised with "no marker selected" PBMap\Font = LoadFont(#PB_Any, "Arial", 20, #PB_Font_Bold) PBMap\Window = Window @@ -636,7 +638,8 @@ Module PBMap Next EndIf EndProcedure - + + ;-*** These are threaded Procedure.i GetTileFromHDD(CacheFile.s) Protected nImage.i If FileSize(CacheFile) > 0 @@ -658,22 +661,17 @@ Module PBMap Protected *Buffer Protected nImage.i = -1 Protected FileSize.i, timg - If PBMap\Options\Proxy - FileSize = CurlReceiveHTTPToFile(TileURL, CacheFile, PBMap\Options\ProxyURL, PBMap\Options\ProxyPort, PBMap\Options\ProxyUser, PBMap\Options\ProxyPassword) - Else - FileSize = CurlReceiveHTTPToFile(TileURL, CacheFile) - EndIf + FileSize = CurlReceiveHTTPToFile(TileURL, CacheFile, PBMap\Options\ProxyURL, PBMap\Options\ProxyPort, PBMap\Options\ProxyUser, PBMap\Options\ProxyPassword) If FileSize > 0 MyDebug("Loaded from web " + TileURL + " as CacheFile " + CacheFile, 3) nImage = GetTileFromHDD(CacheFile) Else MyDebug("Problem loading from web " + TileURL, 3) EndIf - - ; **** PLEASE KEEP THIS CODE - ; I'm (djes) now using Curl only as the catchimage/saveimage is a double operation (uncompress/recompress PNG) - ; and is modifying the original PNG image which could lead to PNG error (Idle has spent hours debunking the 2 bits PNG bug) - ; More than that, the original Receive library is not Proxy enabled. + ; **** IMPORTANT NOTICE + ; I'm (djes) now using Curl only, as this original catchimage/saveimage method is a double operation (uncompress/recompress PNG) + ; and is modifying the original PNG image which could lead to PNG error (Idle has spent hours debunking the 1 bit PNG bug) + ; More than that, the original Purebasic Receive library is still not Proxy enabled. ; *Buffer = ReceiveHTTPMemory(TileURL) ;TODO to thread by using #PB_HTTP_Asynchronous ; If *Buffer ; nImage = CatchImage(#PB_Any, *Buffer, MemorySize(*Buffer)) @@ -713,27 +711,57 @@ Module PBMap *Tile\RetryNb = -2 ;End of the thread PostEvent(#PB_Event_Gadget, PBMap\Window, PBmap\Gadget, #PB_MAP_TILE_CLEANUP, *Tile) ;To free memory outside the thread EndProcedure + ;-*** Procedure.i GetTile(key.s, CacheFile.s, px.i, py.i, tilex.i, tiley.i, ServerURL.s) + ; Try to find the tile in memory cache. If not found, add it, try To load it from the + ; HDD, or launch a loading thread, and try again on the next drawing loop. Protected timg = -1 If FindMapElement(PBMap\MemCache\Images(), key) MyDebug("Key : " + key + " found in memory cache!", 3) timg = PBMap\MemCache\Images()\nImage - If timg <> -1 + If timg <> -1 MyDebug("Image : " + timg + " found in memory cache!", 3) + ;*** Cache management + ; Move the newly used element to the last position of the time stack + SelectElement(PBMap\MemCache\ImagesTimeStack(), PBMap\MemCache\Images()\TimeStackPosition) + MoveElement(PBMap\MemCache\ImagesTimeStack(), #PB_List_Last) + ;*** ProcedureReturn timg EndIf Else AddMapElement(PBMap\MemCache\Images(), key) + PushMapPosition(PBMap\MemCache\Images()) + ;*** Cache management + ; if cache size exceeds limit, try to delete the oldest tile used + Protected CacheSize = MapSize(PBMap\MemCache\Images()) * Pow(PBMap\TileSize, 2) * 4 ; Size of a tile = TileSize * TileSize * 4 bytes (RGBA) + Protected CacheLimit = PBMap\Options\MaxMemCache * 1024 + MyDebug("Cache size : " + Str(CacheSize/1024) + " / CacheLimit : " + Str(CacheLimit/1024), 4) + ResetList(PBMap\MemCache\ImagesTimeStack()) + While NextElement(PBMap\MemCache\ImagesTimeStack()) And CacheSize > CacheLimit + Protected CacheMapKey.s = PBMap\MemCache\ImagesTimeStack()\MapKey + Protected Image = PBMap\MemCache\Images(CacheMapKey)\nImage + If IsImage(Image) ; Check if the image is valid (is a loading thread running ?) + FreeImage(Image) + MyDebug("Delete " + CacheMapKey + " As image nb " + Str(Image), 4) + DeleteMapElement(PBMap\MemCache\Images(), CacheMapKey) + DeleteElement(PBMap\MemCache\ImagesTimeStack()) + CacheSize = MapSize(PBMap\MemCache\Images()) * Pow(PBMap\TileSize, 2) * 4 ; Size of a tile = TileSize * TileSize * 4 bytes (RGBA) + EndIf + Wend + PopMapPosition(PBMap\MemCache\Images()) + AddElement(PBMap\MemCache\ImagesTimeStack()) + PBMap\MemCache\ImagesTimeStack()\MapKey = MapKey(PBMap\MemCache\Images()) + ;*** MyDebug("Key : " + key + " added in memory cache!", 3) PBMap\MemCache\Images()\nImage = -1 EndIf - If PBMap\MemCache\Images()\Tile = 0 ;Check if a loading thread is not running + If PBMap\MemCache\Images()\Tile = 0 ; Check if a loading thread is not running MyDebug("Trying to load from HDD " + CacheFile, 3) timg = GetTileFromHDD(CacheFile.s) If timg <> -1 MyDebug("Key : " + key + " found on HDD", 3) - PBMap\MemCache\Images()\nImage = timg + PBMap\MemCache\Images()\nImage = timg ProcedureReturn timg EndIf MyDebug("Key : " + key + " not found on HDD", 3) @@ -786,14 +814,15 @@ Module PBMap If tiley >= 0 And tiley < tilemax kq = (PBMap\Zoom << 8) | (tilex << 16) | (tiley << 36) key = PBMap\Layers()\Name + Str(kq) - ; Creates a directory based on the zoom + ; Creates the cache tree based on the OSM tree+Layer : layer/zoom/x/y.png + ; Creates the sub-directory based on the zoom Protected DirName.s = PBMap\Options\HDDCachePath + PBMap\Layers()\Name + "\" + Str(PBMap\Zoom) If FileSize(DirName) <> -2 If CreateDirectory(DirName) = #False Error("Can't create the following cache directory : " + DirName) EndIf EndIf - ; Creates a directory based on x + ; Creates the sub-directory based on x DirName.s + "\" + Str(tilex) If FileSize(DirName) <> -2 If CreateDirectory(DirName) = #False @@ -978,7 +1007,7 @@ Module PBMap StrokePath(10, #PB_Path_RoundEnd|#PB_Path_RoundCorner) ;Draw Distance ForEach PBMap\track() - ;-Test Distance + ;Test Distance If ListIndex(PBMap\track())=0 Location\Latitude=PBMap\track()\Latitude Location\Longitude=PBMap\track()\Longitude @@ -1070,7 +1099,7 @@ Module PBMap DrawMarkers(*Drawing) DrawPointer(*Drawing) If PBMap\Options\ShowDebugInfos - ;- Display how many images in cache + ; Display how many images in cache VectorFont(FontID(PBMap\Font), 30) VectorSourceColor(RGBA(0, 0, 0, 80)) MovePathCursor(50,50) @@ -1302,6 +1331,7 @@ Module PBMap Procedure CanvasEvents() Protected MouseX.i, MouseY.i Protected MarkerCoords.Coordinates, *Tile.Tile, MapWidth = Pow(2, PBMap\Zoom) * PBMap\TileSize + Protected key.s PBMap\Moving = #False Select EventType() Case #PB_EventType_LeftDoubleClick @@ -1383,13 +1413,14 @@ Module PBMap Debug "Reload" PBMap\Redraw = #True Case #PB_MAP_TILE_CLEANUP - *Tile = EventData() + *Tile = EventData() + key = *Tile\key ;After a Web tile loading thread, clean the tile structure memory and set the image nb in the cache ;avoid to have threads accessing vars (and avoid mutex), see GetImageThread() - Protected timg = PBMap\MemCache\Images(*Tile\key)\Tile\nImage - PBMap\MemCache\Images(*Tile\key)\nImage = timg - FreeMemory(PBMap\MemCache\Images(*Tile\key)\Tile) - PBMap\MemCache\Images(*Tile\key)\Tile = 0 + Protected timg = PBMap\MemCache\Images(key)\Tile\nImage ;Get this new tile image nb + PBMap\MemCache\Images(key)\nImage = timg ;store it in the cache using the key + FreeMemory(PBMap\MemCache\Images(key)\Tile) ;free the data needed for the thread + PBMap\MemCache\Images(key)\Tile = 0 ;clear the data ptr PBMap\Redraw = #True EndSelect EndProcedure @@ -1577,8 +1608,8 @@ CompilerIf #PB_Compiler_IsMainFile CompilerEndIf ; IDE Options = PureBasic 5.50 (Windows - x64) -; CursorPosition = 450 -; FirstLine = 419 +; CursorPosition = 134 +; FirstLine = 113 ; Folding = ------------ ; EnableThread ; EnableXP From f89476609fe2224de836071567d77925940bf5c8 Mon Sep 17 00:00:00 2001 From: djes Date: Tue, 13 Sep 2016 12:08:08 +0200 Subject: [PATCH 56/62] New markers select/move --- PBMap.pb | 152 ++++++++++++++++++++++++++++++++----------------------- 1 file changed, 90 insertions(+), 62 deletions(-) diff --git a/PBMap.pb b/PBMap.pb index 8110b0e..d478cf1 100644 --- a/PBMap.pb +++ b/PBMap.pb @@ -119,7 +119,7 @@ Module PBMap Dirty.i End.i EndStructure - + Structure ImgMemCach nImage.i *Tile.Tile @@ -137,7 +137,8 @@ Module PBMap Structure Marker GeographicCoordinates.GeographicCoordinates ; Marker latitude and longitude - color.l ; Marker color + Color.l ; Marker color + Selected.i ; Is the marker selected ? CallBackPointer.i ; @Procedure(X.i, Y.i) to DrawPointer (you must use VectorDrawing lib) EndStructure @@ -163,7 +164,7 @@ Module PBMap Name.s ServerURL.s ; Web URL ex: http://tile.openstreetmap.org/ EndStructure - + ;-PBMap Structure Structure PBMap Window.i ; Parent Window @@ -173,34 +174,34 @@ Module PBMap GeographicCoordinates.GeographicCoordinates ; Latitude and Longitude from focus point Drawing.DrawingParameters ; Drawing parameters based on focus point - + CallBackLocation.i ; @Procedure(latitude.d,lontitude.d) CallBackMainPointer.i ; @Procedure(X.i, Y.i) to DrawPointer (you must use VectorDrawing lib) - + PixelCoordinates.PixelCoordinates ; Actual focus point coords in pixels (global) MoveStartingPoint.PixelCoordinates ; Start mouse position coords when dragging the map - + List Layers.Layer() ; ZoomMin.i ; Min Zoom supported by server ZoomMax.i ; Max Zoom supported by server Zoom.i ; Current zoom TileSize.i ; Tile size downloaded on the server ex : 256 - + MemCache.TileMemCach ; Images in memory cache Mode.i ; User mode : 0 (default)->hand (moving map) and select markers, 1->hand, 2->select only (moving objects), 3->drawing (todo) Redraw.i Moving.i Dirty.i ; To signal that drawing need a refresh - + List track.GeographicCoordinates() ; To display a GPX track List Marker.Marker() ; To diplay marker - EditMarkerIndex.l - + EditMarker.l + ImgLoading.i ; Image Loading Tile ImgNothing.i ; Image Nothing Tile - + Options.option ; Options EndStructure @@ -315,18 +316,18 @@ Module PBMap EndIf EndProcedure - ;TODO : best cleaning of the string from bad behaviour + ;TODO : best cleaning of the string from bad behaviour Procedure.s StringCheck(String.s) ProcedureReturn Trim(RemoveString(RemoveString(RemoveString(RemoveString(RemoveString(RemoveString(RemoveString(RemoveString(RemoveString(RemoveString(String, Chr(0)), Chr(32)), Chr(39)), Chr(33)), Chr(34)), "@"), "/"), "\"), "$"), "%")) EndProcedure Macro SelBool(Name) - Select UCase(Value) - Case "0", "FALSE", "DISABLE" - PBMap\Options\Name = #False - Default - PBMap\Options\Name = #True - EndSelect + Select UCase(Value) + Case "0", "FALSE", "DISABLE" + PBMap\Options\Name = #False + Default + PBMap\Options\Name = #True + EndSelect EndMacro Procedure SetOption(Option.s, Value.s) @@ -409,7 +410,7 @@ Module PBMap EndIf PreferenceGroup("URL") PBMap\Options\DefaultOSMServer = ReadPreferenceString("DefaultOSMServer", "http://tile.openstreetmap.org/") - + PreferenceGroup("PATHS") PBMap\Options\HDDCachePath = ReadPreferenceString("TilesCachePath", GetTemporaryDirectory()) PreferenceGroup("OPTIONS") @@ -418,7 +419,7 @@ Module PBMap PBMap\Options\TimerInterval = 20 ClosePreferences() EndProcedure - + Procedure InitPBMap(Window) Protected Result.i If Verbose @@ -429,8 +430,7 @@ Module PBMap PBMap\MoveStartingPoint\x = - 1 PBMap\TileSize = 256 PBMap\Dirty = #False - ;PBMap\TileThreadMutex = CreateMutex() - PBMap\EditMarkerIndex = -1 ;Initialised with "no marker selected" + PBMap\EditMarker = #False PBMap\Font = LoadFont(#PB_Any, "Arial", 20, #PB_Font_Bold) PBMap\Window = Window PBMap\Timer = 1 @@ -571,7 +571,7 @@ Module PBMap EndIf *Pixel\y = PBMap\Drawing\CenterY + (py - PBMap\PixelCoordinates\y) EndProcedure - + ; HaversineAlgorithm ; http://andrew.hedges.name/experiments/haversine/ Procedure.d HaversineInKM(*posA.GeographicCoordinates, *posB.GeographicCoordinates) @@ -1030,7 +1030,7 @@ Module PBMap EndIf EndProcedure - Procedure DrawMarker(x.i, y.i, color.l = 0) + Procedure DrawMarker(x.i, y.i, color.l = 0, Selected = #False) VectorSourceColor(color) MovePathCursor(x, y) AddPathLine(-8, -16, #PB_Path_Relative) @@ -1040,8 +1040,14 @@ Module PBMap ;ClipPath(#PB_Path_Preserve) AddPathCircle(0, -16, 5, 0, 360, #PB_Path_Relative) VectorSourceColor(color) - FillPath(#PB_Path_Preserve):VectorSourceColor(color);RGBA(0, 0, 0, 255)) - StrokePath(1) + FillPath(#PB_Path_Preserve) + If Selected + VectorSourceColor(RGBA(255, 255, 0, 255)) + StrokePath(3) + Else + VectorSourceColor(color) + StrokePath(1) + EndIf EndProcedure ; Add a Marker To the Map @@ -1055,7 +1061,7 @@ Module PBMap EndProcedure ; Draw all markers on the screen ! - Procedure DrawMarkers(*Drawing.DrawingParameters) + Procedure DrawMarkers(*Drawing.DrawingParameters) Protected Pixel.PixelCoordinates ForEach PBMap\Marker() If PBMap\Marker()\GeographicCoordinates\Latitude <> 0 And PBMap\Marker()\GeographicCoordinates\Longitude <> 0 @@ -1063,9 +1069,9 @@ Module PBMap LatLon2PixelRel(PBMap\Marker()\GeographicCoordinates, @Pixel, PBMap\Zoom) If Pixel\X >= 0 And Pixel\Y >= 0 And Pixel\X < GadgetWidth(PBMap\Gadget) And Pixel\Y < GadgetHeight(PBMap\Gadget) ; Only if visible ^_^ If PBMap\Marker()\CallBackPointer > 0 - CallFunctionFast(PBMap\Marker()\CallBackPointer, Pixel\X, Pixel\Y) + CallFunctionFast(PBMap\Marker()\CallBackPointer, Pixel\X, Pixel\Y, PBMap\Marker()\Selected) Else - DrawMarker(Pixel\X, Pixel\Y, PBMap\Marker()\color) + DrawMarker(Pixel\X, Pixel\Y, PBMap\Marker()\Color, PBMap\Marker()\Selected) EndIf EndIf EndIf @@ -1330,7 +1336,7 @@ Module PBMap Procedure CanvasEvents() Protected MouseX.i, MouseY.i - Protected MarkerCoords.Coordinates, *Tile.Tile, MapWidth = Pow(2, PBMap\Zoom) * PBMap\TileSize + Protected MarkerCoords.PixelCoordinates, *Tile.Tile, MapWidth = Pow(2, PBMap\Zoom) * PBMap\TileSize Protected key.s PBMap\Moving = #False Select EventType() @@ -1353,12 +1359,8 @@ Module PBMap If PBMap\Mode = #MODE_DEFAULT Or PBMap\Mode = #MODE_SELECT ;Check if we select a marker ForEach PBMap\Marker() - LatLon2TileXY(@PBMap\Marker()\GeographicCoordinates, @MarkerCoords, PBMap\Zoom) ;This line could be removed as the coordinates don't have to change but I want to be sure we rely only on geographic coordinates - MarkerCoords\x * PBMap\TileSize - MarkerCoords\y * PBMap\TileSize - ;Debug "Pos : " + StrD(Marker\x) + " ; Drawing pos : " + StrD(PBMap\Drawing\TileCoordinates\x) - If Distance(MarkerCoords\x, MarkerCoords\y, MouseX, MouseY) < 8 - PBMap\EditMarkerIndex = ListIndex(PBMap\Marker()) + If PBMap\Marker()\Selected + PBMap\EditMarker = #True;ListIndex(PBMap\Marker()) Break EndIf Next @@ -1371,15 +1373,19 @@ Module PBMap If PBMap\MoveStartingPoint\x <> - 1 MouseX = GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseX) - PBMap\MoveStartingPoint\x MouseY = GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseY) - PBMap\MoveStartingPoint\y - ;Move marker - If PBMap\EditMarkerIndex > -1 And (PBMap\Mode = #MODE_DEFAULT Or PBMap\Mode = #MODE_SELECT) - SelectElement(PBMap\Marker(), PBMap\EditMarkerIndex) - LatLon2TileXY(@PBMap\Marker()\GeographicCoordinates, @MarkerCoords, PBMap\Zoom) - MarkerCoords\x + MouseX / PBMap\TileSize - MarkerCoords\y + MouseY / PBMap\TileSize - TileXY2LatLon(@MarkerCoords, @PBMap\Marker()\GeographicCoordinates, PBMap\Zoom) + ;Move selected markers + If PBMap\EditMarker And (PBMap\Mode = #MODE_DEFAULT Or PBMap\Mode = #MODE_SELECT) + ForEach PBMap\Marker() + If PBMap\Marker()\Selected + LatLon2Pixel(@PBMap\Marker()\GeographicCoordinates, @MarkerCoords, PBMap\Zoom) + MarkerCoords\x + MouseX + MarkerCoords\y + MouseY + Pixel2LatLon(@MarkerCoords, @PBMap\Marker()\GeographicCoordinates, PBMap\Zoom) + Break ;Only one marker moved at once + EndIf + Next ElseIf PBMap\Mode = #MODE_DEFAULT Or PBMap\Mode = #MODE_HAND - ;New move values + ;Move map only LatLon2Pixel(@PBMap\GeographicCoordinates, @PBMap\PixelCoordinates, PBMap\Zoom) ;This line could be removed as the coordinates don't have to change but I want to be sure we rely only on geographic coordinates ;Ensures that pixel position stay in the range [0..2^Zoom*PBMap\TileSize[ coz of the wrapping of the map PBMap\PixelCoordinates\x - MouseX @@ -1394,18 +1400,35 @@ Module PBMap PBMap\Redraw = #True PBMap\MoveStartingPoint\x = GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseX) PBMap\MoveStartingPoint\y = GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseY) - EndIf - Case #PB_EventType_LeftButtonUp - PBMap\MoveStartingPoint\x = - 1 - If PBMap\EditMarkerIndex > -1 - PBMap\EditMarkerIndex = -1 - Else ;Move Map - ; PBMap\Drawing\TileCoordinates\x = PBMap\PixelCoordinates\x / PBMap\TileSize - ; PBMap\Drawing\TileCoordinates\y = PBMap\PixelCoordinates\y / PBMap\TileSize - ; MyDebug("PBMap\Drawing\TileCoordinates\x " + Str(PBMap\Drawing\TileCoordinates\x) + " ; PBMap\Drawing\TileCoordinates\y " + Str(PBMap\Drawing\TileCoordinates\y) ) - ; TileXY2LatLon(@PBMap\Drawing\TileCoordinates, @PBMap\GeographicCoordinates, PBMap\Zoom) + Else + LatLon2Pixel(@PBMap\GeographicCoordinates, @PBMap\PixelCoordinates, PBMap\Zoom) + MouseX = PBMap\PixelCoordinates\x - GadgetWidth(PBMap\Gadget) / 2 + GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseX) + MouseY = PBMap\PixelCoordinates\y - GadgetHeight(PBMap\Gadget) / 2 + GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseY) + ;Clip MouseX to the map range (in X, the map is infinite) + MouseX = Mod(Mod(MouseX, MapWidth) + MapWidth, MapWidth) + If PBMap\Mode = #MODE_DEFAULT Or PBMap\Mode = #MODE_SELECT + ;Check if mouse touch markers + ForEach PBMap\Marker() + LatLon2Pixel(@PBMap\Marker()\GeographicCoordinates, @MarkerCoords, PBMap\Zoom) + If Distance(MarkerCoords\x, MarkerCoords\y, MouseX, MouseY) < 8 + PBMap\Marker()\Selected = #True + Else + PBMap\Marker()\Selected = #False + EndIf + Next + EndIf PBMap\Redraw = #True EndIf + Case #PB_EventType_LeftButtonUp + PBMap\MoveStartingPoint\x = - 1 + If PBMap\EditMarker + PBMap\EditMarker = #False + ;Deselect markers + ForEach PBMap\Marker() + PBMap\Marker()\Selected = #False + Next + EndIf + PBMap\Redraw = #True Case #PB_MAP_REDRAW Debug "Redraw" PBMap\Redraw = #True @@ -1484,16 +1507,21 @@ CompilerIf #PB_Compiler_IsMainFile ProcedureReturn 0 EndProcedure - Procedure MyMarker(x.i, y.i) - Protected color.l - color=RGBA(0, 255, 0, 255) - VectorSourceColor(color) + Procedure MyMarker(x.i, y.i, Selected = #False) + Protected color = RGBA(0, 255, 0, 255) MovePathCursor(x, y) AddPathLine(-16,-32,#PB_Path_Relative) AddPathCircle(16,0,16,180,0,#PB_Path_Relative) AddPathLine(-16,32,#PB_Path_Relative) VectorSourceColor(color) - FillPath(#PB_Path_Preserve):VectorSourceColor(RGBA(0, 0, 0, 255)):StrokePath(1) + FillPath(#PB_Path_Preserve) + If Selected + VectorSourceColor(RGBA($FF, $FF, 0, $FF)) + StrokePath(2) + Else + VectorSourceColor(RGBA(0, 0, 0, 255)) + StrokePath(1) + EndIf EndProcedure Procedure MainPointer(x.i, y.i) @@ -1559,7 +1587,7 @@ CompilerIf #PB_Compiler_IsMainFile PBMap::SetCallBackLocation(@UpdateLocation()) ; To obtain realtime coordinates PBMap::SetLocation(-36.81148, 175.08634,12) ; Change the PBMap coordinates PBMAP::SetMapScaleUnit(PBMAP::#SCALE_NAUTICAL) ; To change the scale unit - PBMap::AddMarker(49.0446828398, 2.0349812508, -1, @MyMarker()) ; To add a marker + PBMap::AddMarker(49.0446828398, 2.0349812508, -1, @MyMarker()) ; To add a marker with a customised GFX Repeat Event = WaitWindowEvent() @@ -1608,8 +1636,8 @@ CompilerIf #PB_Compiler_IsMainFile CompilerEndIf ; IDE Options = PureBasic 5.50 (Windows - x64) -; CursorPosition = 134 -; FirstLine = 113 +; CursorPosition = 438 +; FirstLine = 422 ; Folding = ------------ ; EnableThread ; EnableXP From d9ecfeca563b89f89c37b2d12b96d4c0395b8ded Mon Sep 17 00:00:00 2001 From: djes Date: Thu, 15 Sep 2016 17:27:32 +0200 Subject: [PATCH 57/62] Better makers handing, example app with lat/lon editable, cleanup --- PBMap.pb | 390 ++++++++++++++++++++++++++++++++----------------------- 1 file changed, 224 insertions(+), 166 deletions(-) diff --git a/PBMap.pb b/PBMap.pb index d478cf1..f91ed96 100644 --- a/PBMap.pb +++ b/PBMap.pb @@ -47,7 +47,7 @@ DeclareModule PBMap Declare.i AddMapServerLayer(LayerName.s, Order.i, ServerURL.s = "http://tile.openstreetmap.org/", TileSize = 256, ZoomMin = 0, ZoomMax = 18) Declare DeleteLayer(Nb.i) Declare MapGadget(Gadget.i, X.i, Y.i, Width.i, Height.i) - Declare SetLocation(latitude.d, longitude.d, zoom = 15, mode.i = #PB_Absolute) + Declare SetLocation(latitude.d, longitude.d, Zoom = -1, mode.i = #PB_Absolute) Declare Drawing() Declare SetZoom(Zoom.i, mode.i = #PB_Relative) Declare ZoomToArea() @@ -55,7 +55,9 @@ DeclareModule PBMap Declare SetCallBackMainPointer(CallBackMainPointer.i) Declare SetMapScaleUnit(ScaleUnit=PBMAP::#SCALE_KM) Declare LoadGpxFile(file.s); - Declare AddMarker(Latitude.d,Longitude.d,color.l=-1, CallBackPointer.i = -1) + Declare.i AddMarker(Latitude.d, Longitude.d, Legend.s = "", color.l=-1, CallBackPointer.i = -1) + Declare ClearMarkers() + Declare DeleteMarker(*Ptr) Declare Quit() Declare Error(msg.s) Declare Refresh() @@ -137,7 +139,9 @@ Module PBMap Structure Marker GeographicCoordinates.GeographicCoordinates ; Marker latitude and longitude + Legend.s Color.l ; Marker color + Focus.i Selected.i ; Is the marker selected ? CallBackPointer.i ; @Procedure(X.i, Y.i) to DrawPointer (you must use VectorDrawing lib) EndStructure @@ -155,8 +159,14 @@ Module PBMap ShowDegrees.i ShowDebugInfos.i ShowScale.i + ShowTrack.i + ShowMarkers.i + ShowPointer.i TimerInterval.i MaxMemCache.i ; in MiB + TrackShowKms.i + ShowMarkerNb.i + ShowMarkerLegend.i EndStructure Structure Layer @@ -196,7 +206,7 @@ Module PBMap Dirty.i ; To signal that drawing need a refresh List track.GeographicCoordinates() ; To display a GPX track - List Marker.Marker() ; To diplay marker + List Markers.Marker() ; To diplay marker EditMarker.l ImgLoading.i ; Image Loading Tile @@ -289,7 +299,8 @@ Module PBMap Procedure TechnicalImagesCreation() ;"Loading" image - Protected Text$ = "Loading" + Protected LoadingText$ = "Loading" + Protected NothingText$ = "Nothing" PBmap\ImgLoading = CreateImage(#PB_Any, 256, 256) If PBmap\ImgLoading StartVectorDrawing(ImageVectorOutput(PBMap\Imgloading)) @@ -300,18 +311,25 @@ Module PBMap MovePathCursor(0, 0) VectorFont(FontID(PBMap\Font), 256 / 20) VectorSourceColor(RGBA(150, 150, 150, 255)) - MovePathCursor(0 + (256 - VectorTextWidth(Text$)) / 2, 0 + (256 - VectorTextHeight(Text$)) / 2) - DrawVectorText(Text$) + MovePathCursor(0 + (256 - VectorTextWidth(LoadingText$)) / 2, 0 + (256 - VectorTextHeight(LoadingText$)) / 2) + DrawVectorText(LoadingText$) EndVectorLayer() StopVectorDrawing() EndIf ;"Nothing" tile PBmap\ImgNothing = CreateImage(#PB_Any, 256, 256) If PBmap\ImgNothing - StartVectorDrawing(ImageVectorOutput(PBMap\Imgloading)) - VectorSourceColor(RGBA(255, 255, 255, 128)) + StartVectorDrawing(ImageVectorOutput(PBMap\ImgNothing)) + ;BeginVectorLayer() + VectorSourceColor(RGBA(220, 230, 255, 255)) AddPathBox(0, 0, 256, 256) FillPath() + ;MovePathCursor(0, 0) + ;VectorFont(FontID(PBMap\Font), 256 / 20) + ;VectorSourceColor(RGBA(150, 150, 150, 255)) + ;MovePathCursor(0 + (256 - VectorTextWidth(NothingText$)) / 2, 0 + (256 - VectorTextHeight(NothingText$)) / 2) + ;DrawVectorText(NothingText$) + ;EndVectorLayer() StopVectorDrawing() EndIf EndProcedure @@ -353,6 +371,18 @@ Module PBMap SelBool(ShowDebugInfos) Case "showscale" SelBool(ShowScale) + Case "showmarkers" + SelBool(ShowMarkers) + Case "showpointer" + SelBool(ShowPointer) + Case "showtrack" + SelBool(ShowTrack) + Case "showmarkernb" + SelBool(ShowMarkerNb) + Case "showmarkerlegend" + SelBool(ShowMarkerLegend) + Case "trackshowkms" + SelBool(TrackShowKms) EndSelect EndProcedure @@ -378,6 +408,12 @@ Module PBMap WritePreferenceInteger("ShowDegrees", PBMap\Options\ShowDegrees) WritePreferenceInteger("ShowDebugInfos", PBMap\Options\ShowDebugInfos) WritePreferenceInteger("ShowScale", PBMap\Options\ShowScale) + WritePreferenceInteger("ShowMarkers", PBMap\Options\ShowMarkers) + WritePreferenceInteger("ShowPointer", PBMap\Options\ShowPointer) + WritePreferenceInteger("ShowTrack", PBMap\Options\ShowTrack) + WritePreferenceInteger("ShowMarkerNb", PBMap\Options\ShowMarkerNb) + WritePreferenceInteger("ShowMarkerLegend", PBMap\Options\ShowMarkerLegend) + WritePreferenceInteger("TrackShowKms", PBMap\Options\TrackShowKms) ClosePreferences() EndProcedure @@ -415,8 +451,17 @@ Module PBMap PBMap\Options\HDDCachePath = ReadPreferenceString("TilesCachePath", GetTemporaryDirectory()) PreferenceGroup("OPTIONS") PBMap\Options\WheelMouseRelative = ReadPreferenceInteger("WheelMouseRelative", #True) - PBMap\Options\MaxMemCache = ReadPreferenceInteger("MaxMemCache", 20480) ;20 MiB, about 80 tiles in memory - PBMap\Options\TimerInterval = 20 + PBMap\Options\MaxMemCache = ReadPreferenceInteger("MaxMemCache", 20480) ;20 MiB, about 80 tiles in memory + PBMap\Options\ShowDegrees = ReadPreferenceInteger("ShowDegrees", #False) + PBMap\Options\ShowDebugInfos = ReadPreferenceInteger("ShowDebugInfos", #False) + PBMap\Options\ShowScale = ReadPreferenceInteger("ShowScale", #False) + PBMap\Options\ShowMarkers = ReadPreferenceInteger("ShowMarkers", #True) + PBMap\Options\ShowPointer = ReadPreferenceInteger("ShowPointer", #True) + PBMap\Options\ShowTrack = ReadPreferenceInteger("ShowTrack", #True) + PBMap\Options\ShowMarkerNb = ReadPreferenceInteger("ShowMarkerNb", #True) + PBMap\Options\ShowMarkerLegend = ReadPreferenceInteger("ShowMarkerLegend", #False) + PBMap\Options\TrackShowKms = ReadPreferenceInteger("TrackShowKms", #False) + PBMap\Options\TimerInterval = 20 ClosePreferences() EndProcedure @@ -435,7 +480,7 @@ Module PBMap PBMap\Window = Window PBMap\Timer = 1 PBMap\Mode = #MODE_DEFAULT - LoadOptions() + LoadOptions() If PBMap\Options\DefaultOSMServer <> "" AddMapServerLayer("OSM", 1, PBMap\Options\DefaultOSMServer) EndIf @@ -649,7 +694,6 @@ Module PBMap ProcedureReturn nImage Else MyDebug("Failed loading " + CacheFile + " as nImage " + Str(nImage) + " -> not an image !", 3) - MyDebug("Failed loading " + CacheFile + " as nImage " + Str(nImage) + " -> not an image !", 3) EndIf Else MyDebug("Failed loading " + CacheFile + " -> Size <= 0", 3) @@ -792,11 +836,10 @@ Module PBMap EndProcedure Procedure DrawTiles(*Drawing.DrawingParameters, Layer, alpha.i=255) - ;DisableDebugger Protected x.i, y.i,kq.q Protected tx = Int(*Drawing\TileCoordinates\x) ;Don't forget the Int() ! Protected ty = Int(*Drawing\TileCoordinates\y) - Protected nx = *Drawing\CenterX / PBMap\TileSize ;How many tiles around the point + Protected nx = *Drawing\CenterX / PBMap\TileSize ;How many tiles around the point Protected ny = *Drawing\CenterY / PBMap\TileSize Protected px, py, img, tilex,tiley, key.s, CacheFile.s Protected tilemax = 1<GadgetHeight(PBMap\Gadget) - ; MaxNbTile=GadgetWidth(PBMap\Gadget)/PBMap\TileSize - ; Else - ; MaxNbTile=GadgetHeight(PBMap\Gadget)/PBMap\TileSize - ; EndIf - ; Protected Scale.d= 40075*Cos(Radian(PBMap\GeographicCoordinates\Latitude))/Pow(2,PBMap\Zoom) - ; Protected Limit.d=Scale*(MaxNbTile)*1.5 - ; Debug "Cache cleaning" - ; ForEach PBMap\MemCache\Images() - ; Protected Distance.d = HaversineInKM(@PBMap\MemCache\Images()\Location, @PBMap\GeographicCoordinates) - ; Debug "Limit:"+StrD(Limit)+" Distance:"+StrD(Distance) - ; If Distance>Limit And IsImage(PBMap\MemCache\Images()\nImage) - ; LockMutex(PBMap\MemCache\Images()\Mutex) - ; Debug "delete" - ; Debug PBMap\MemCache\Images() - ; FreeImage(PBMap\MemCache\Images()\nImage) - ; UnlockMutex(PBMap\MemCache\Images()\Mutex) - ; FreeMutex(PBMap\MemCache\Images()\Mutex) - ; DeleteMapElement(PBMap\MemCache\Images()) - ; EndIf - ; Next - + Procedure DrawPointer(*Drawing.DrawingParameters) If PBMap\CallBackMainPointer > 0 ; @Procedure(X.i, Y.i) to DrawPointer (you must use VectorDrawing lib) @@ -885,8 +902,6 @@ Module PBMap AddPathLine(-8, -16, #PB_Path_Relative) AddPathCircle(8, 0, 8, 180, 0, #PB_Path_Relative) AddPathLine(-8, 16, #PB_Path_Relative) - ;FillPath(#PB_Path_Preserve) - ;ClipPath(#PB_Path_Preserve) AddPathCircle(0, -16, 5, 0, 360, #PB_Path_Relative) VectorSourceColor(RGBA($FF, 0, 0, $FF)) FillPath(#PB_Path_Preserve):VectorSourceColor(RGBA($FF, 0, 0, $FF));RGBA(0, 0, 0, 255)) @@ -967,7 +982,7 @@ Module PBMap StrokePath(1) EndProcedure - Procedure TrackPointer(x.i, y.i,dist.l) + Procedure TrackPointer(x.i, y.i, dist.l) Protected color.l color=RGBA(0, 0, 0, 255) MovePathCursor(x,y) @@ -993,15 +1008,14 @@ Module PBMap If ListSize(PBMap\track())>0 ;Trace Track ForEach PBMap\track() - If *Drawing\GeographicCoordinates\Latitude<>0 And *Drawing\GeographicCoordinates\Longitude<>0 - ;GetPixelCoordFromLocation(@PBMap\track(),@Pixel) + ;If *Drawing\GeographicCoordinates\Latitude<>0 And *Drawing\GeographicCoordinates\Longitude<>0 LatLon2PixelRel(@PBMap\track(), @Pixel, PBMap\Zoom) If ListIndex(PBMap\track())=0 MovePathCursor(Pixel\X, Pixel\Y) Else AddPathLine(Pixel\X, Pixel\Y) EndIf - EndIf + ;EndIf Next VectorSourceColor(RGBA(0, 255, 0, 150)) StrokePath(10, #PB_Path_RoundEnd|#PB_Path_RoundCorner) @@ -1015,22 +1029,23 @@ Module PBMap km=km+HaversineInKM(@Location,@PBMap\track()) ;<- display Distance Location\Latitude=PBMap\track()\Latitude Location\Longitude=PBMap\track()\Longitude - EndIf - ;GetPixelCoordFromLocation(@PBMap\track(),@Pixel) - LatLon2PixelRel(@PBMap\track(),@Pixel, PBMap\Zoom) - If Int(km)<>memKm - memKm=Int(km) - If PBMap\Zoom>10 - BeginVectorLayer() - TrackPointer(Pixel\X , Pixel\Y,Int(km)) - EndVectorLayer() - EndIf + EndIf + If PBMap\Options\TrackShowKms + LatLon2PixelRel(@PBMap\track(),@Pixel, PBMap\Zoom) + If Int(km)<>memKm + memKm=Int(km) + If PBMap\Zoom>10 + BeginVectorLayer() + TrackPointer(Pixel\X , Pixel\Y, Int(km)) + EndVectorLayer() + EndIf + EndIf EndIf Next EndIf EndProcedure - Procedure DrawMarker(x.i, y.i, color.l = 0, Selected = #False) + Procedure DrawMarker(x.i, y.i, Nb, Color.l, Focus.i, Selected.i, Legend.s) VectorSourceColor(color) MovePathCursor(x, y) AddPathLine(-8, -16, #PB_Path_Relative) @@ -1039,93 +1054,131 @@ Module PBMap ;FillPath(#PB_Path_Preserve) ;ClipPath(#PB_Path_Preserve) AddPathCircle(0, -16, 5, 0, 360, #PB_Path_Relative) - VectorSourceColor(color) + VectorSourceColor(Color) FillPath(#PB_Path_Preserve) - If Selected + If Focus VectorSourceColor(RGBA(255, 255, 0, 255)) StrokePath(3) + ElseIf Selected + VectorSourceColor(RGBA(255, 255, 0, 255)) + StrokePath(4) Else - VectorSourceColor(color) + VectorSourceColor(Color) StrokePath(1) EndIf + If PBMap\Options\ShowMarkerNb + Protected Text.s = Str(Nb) + VectorFont(FontID(PBMap\Font), 13) + MovePathCursor(x - 10, y) + VectorSourceColor(RGBA(0, 0, 0, 255)) + DrawVectorParagraph(Text, 20, 20, #PB_VectorParagraph_Center) + EndIf + If PBMap\Options\ShowMarkerLegend + VectorFont(FontID(PBMap\Font), 13) + MovePathCursor(x - 10, y - 30) + VectorSourceColor(RGBA(0, 0, 0, 255)) + DrawVectorParagraph(Legend, 20, 20, #PB_VectorParagraph_Center) + EndIf + EndProcedure + + Procedure ClearMarkers() + ClearList(PBMap\Markers()) + EndProcedure + + Procedure DeleteMarker(*Ptr) + ChangeCurrentElement(PBMap\Markers(), *Ptr) + DeleteElement(PBMap\Markers()) + EndProcedure + + Procedure.i AddMarker(Latitude.d, Longitude.d, Legend.s = "", Color.l=-1, CallBackPointer.i = -1) + Protected *Ptr = AddElement(PBMap\Markers()) + If *Ptr + PBMap\Markers()\GeographicCoordinates\Latitude = Latitude + PBMap\Markers()\GeographicCoordinates\Longitude = Mod(Mod(Longitude, 360) + 360, 360) + PBMap\Markers()\Legend = Legend + PBMap\Markers()\Color = Color + PBMap\Markers()\CallBackPointer = CallBackPointer + PBMap\Redraw = #True + ProcedureReturn *Ptr + EndIf EndProcedure - ; Add a Marker To the Map - Procedure AddMarker(Latitude.d, Longitude.d, color.l=-1, CallBackPointer.i = -1) - AddElement(PBMap\Marker()) - PBMap\Marker()\GeographicCoordinates\Latitude = Latitude - PBMap\Marker()\GeographicCoordinates\Longitude = Mod(Mod(Longitude, 360) + 360, 360) - PBMap\Marker()\color = color - PBMap\Marker()\CallBackPointer = CallBackPointer - PBMap\Redraw = #True - EndProcedure - - ; Draw all markers on the screen ! - Procedure DrawMarkers(*Drawing.DrawingParameters) + ; Draw all markers + Procedure DrawMarkers() Protected Pixel.PixelCoordinates - ForEach PBMap\Marker() - If PBMap\Marker()\GeographicCoordinates\Latitude <> 0 And PBMap\Marker()\GeographicCoordinates\Longitude <> 0 - ;GetPixelCoordFromLocation(PBMap\Marker()\GeographicCoordinates, @Pixel) - LatLon2PixelRel(PBMap\Marker()\GeographicCoordinates, @Pixel, PBMap\Zoom) + ForEach PBMap\Markers() + If PBMap\Markers()\GeographicCoordinates\Latitude <> 0 And PBMap\Markers()\GeographicCoordinates\Longitude <> 0 + ;GetPixelCoordFromLocation(PBMap\Markers()\GeographicCoordinates, @Pixel) + LatLon2PixelRel(PBMap\Markers()\GeographicCoordinates, @Pixel, PBMap\Zoom) If Pixel\X >= 0 And Pixel\Y >= 0 And Pixel\X < GadgetWidth(PBMap\Gadget) And Pixel\Y < GadgetHeight(PBMap\Gadget) ; Only if visible ^_^ - If PBMap\Marker()\CallBackPointer > 0 - CallFunctionFast(PBMap\Marker()\CallBackPointer, Pixel\X, Pixel\Y, PBMap\Marker()\Selected) + If PBMap\Markers()\CallBackPointer > 0 + CallFunctionFast(PBMap\Markers()\CallBackPointer, Pixel\X, Pixel\Y, PBMap\Markers()\Focus, PBMap\Markers()\Selected) Else - DrawMarker(Pixel\X, Pixel\Y, PBMap\Marker()\Color, PBMap\Marker()\Selected) + DrawMarker(Pixel\X, Pixel\Y, ListIndex(PBMap\Markers()), PBMap\Markers()\Color, PBMap\Markers()\Focus, PBMap\Markers()\Selected, PBMap\Markers()\Legend) EndIf EndIf EndIf Next EndProcedure + Procedure DrawDebugInfos() + ; Display how many images in cache + VectorFont(FontID(PBMap\Font), 30) + VectorSourceColor(RGBA(0, 0, 0, 80)) + MovePathCursor(50,50) + DrawVectorText(Str(MapSize(PBMap\MemCache\Images()))) + MovePathCursor(50,80) + Protected ThreadCounter = 0 + ForEach PBMap\MemCache\Images() + If PBMap\MemCache\Images()\Tile <> 0 + If IsThread(PBMap\MemCache\Images()\Tile\GetImageThread) + ThreadCounter + 1 + EndIf + EndIf + Next + DrawVectorText(Str(ThreadCounter)) + EndProcedure + ;-*** Main drawing Procedure Drawing() Protected *Drawing.DrawingParameters = @PBMap\Drawing Protected Px.d, Py.d,a, ts = PBMap\TileSize PBMap\Dirty = #False PBMap\Redraw = #False - ;Precalc some values + ; Precalc some values *Drawing\CenterX = GadgetWidth(PBMap\Gadget) / 2 *Drawing\CenterY = GadgetHeight(PBMap\Gadget) / 2 *Drawing\GeographicCoordinates\Latitude = PBMap\GeographicCoordinates\Latitude *Drawing\GeographicCoordinates\Longitude = PBMap\GeographicCoordinates\Longitude LatLon2TileXY(*Drawing\GeographicCoordinates, *Drawing\TileCoordinates, PBMap\Zoom) - ;Pixel shift, aka position in the tile + ; Pixel shift, aka position in the tile Px = *Drawing\TileCoordinates\x : Py = *Drawing\TileCoordinates\y *Drawing\DeltaX = Px * ts - (Int(Px) * ts) ;Don't forget the Int() ! *Drawing\DeltaY = Py * ts - (Int(Py) * ts) - ;Main drawing stuff + ; Main drawing stuff StartVectorDrawing(CanvasVectorOutput(PBMap\Gadget)) ;TODO add in layers of tiles ;this way we can cache them as 0 base 1.n layers - ;such as for openseamap tiles which are overlaid. not that efficent from here though. + ; such as for openseamap tiles which are overlaid. not that efficent from here though. ForEach PBMap\Layers() DrawTiles(*Drawing, ListIndex(PBMap\Layers())) Next - DrawTrack(*Drawing) - DrawMarkers(*Drawing) - DrawPointer(*Drawing) + If PBMap\Options\ShowTrack + DrawTrack(*Drawing) + EndIf + If PBMap\Options\ShowMarkers + DrawMarkers() + EndIf + If PBMap\Options\ShowPointer + DrawPointer(*Drawing) + EndIf If PBMap\Options\ShowDebugInfos - ; Display how many images in cache - VectorFont(FontID(PBMap\Font), 30) - VectorSourceColor(RGBA(0, 0, 0, 80)) - MovePathCursor(50,50) - DrawVectorText(Str(MapSize(PBMap\MemCache\Images()))) - MovePathCursor(50,80) - Protected ThreadCounter = 0 - ForEach PBMap\MemCache\Images() - If PBMap\MemCache\Images()\Tile <> 0 - If IsThread(PBMap\MemCache\Images()\Tile\GetImageThread) - ThreadCounter + 1 - EndIf - EndIf - Next - DrawVectorText(Str(ThreadCounter)) + DrawDebugInfos() EndIf If PBMap\Options\ShowDegrees DrawDegrees(*Drawing, 192) EndIf If PBMap\Options\ShowScale - DrawScale(*Drawing,10,GadgetHeight(PBMAP\Gadget)-20,192) + DrawScale(*Drawing, 10, GadgetHeight(PBMAP\Gadget) - 20, 192) EndIf StopVectorDrawing() EndProcedure @@ -1138,7 +1191,7 @@ Module PBMap Procedure.d Pixel2Lon(x) Protected NewX.d = (PBMap\PixelCoordinates\x - GadgetWidth(PBMap\Gadget) / 2 + x) / PBMap\TileSize Protected n.d = Pow(2.0, PBMap\Zoom) - ;double mod is to ensure the longitude to be in the range [-180;180[ + ; double mod is to ensure the longitude to be in the range [-180;180[ ProcedureReturn Mod(Mod(NewX / n * 360.0, 360.0) + 360.0, 360.0) - 180 EndProcedure @@ -1151,7 +1204,7 @@ Module PBMap Procedure.d MouseLongitude() Protected MouseX.d = (PBMap\PixelCoordinates\x - GadgetWidth(PBMap\Gadget) / 2 + GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseX)) / PBMap\TileSize Protected n.d = Pow(2.0, PBMap\Zoom) - ;double mod is to ensure the longitude to be in the range [-180;180[ + ; double mod is to ensure the longitude to be in the range [-180;180[ ProcedureReturn Mod(Mod(MouseX / n * 360.0, 360.0) + 360.0, 360.0) - 180 EndProcedure @@ -1161,25 +1214,28 @@ Module PBMap ProcedureReturn Degree(ATan(SinH(#PI * (1.0 - 2.0 * MouseY / n)))) EndProcedure - Procedure SetLocation(latitude.d, longitude.d, zoom = 15, Mode.i = #PB_Absolute) + Procedure SetLocation(latitude.d, longitude.d, Zoom = -1, Mode.i = #PB_Absolute) Select Mode Case #PB_Absolute PBMap\GeographicCoordinates\Latitude = latitude PBMap\GeographicCoordinates\Longitude = longitude - PBMap\Zoom = zoom + If Zoom <> -1 + PBMap\Zoom = Zoom + EndIf Case #PB_Relative PBMap\GeographicCoordinates\Latitude + latitude PBMap\GeographicCoordinates\Longitude + longitude - PBMap\Zoom + zoom + If Zoom <> -1 + PBMap\Zoom + Zoom + EndIf EndSelect If PBMap\Zoom > PBMap\ZoomMax : PBMap\Zoom = PBMap\ZoomMax : EndIf If PBMap\Zoom < PBMap\ZoomMin : PBMap\Zoom = PBMap\ZoomMin : EndIf LatLon2TileXY(@PBMap\GeographicCoordinates, @PBMap\Drawing\TileCoordinates, PBMap\Zoom) - ;Convert X, Y in tile.decimal into real pixels + ; Convert X, Y in tile.decimal into real pixels PBMap\PixelCoordinates\x = PBMap\Drawing\TileCoordinates\x * PBMap\TileSize PBMap\PixelCoordinates\y = PBMap\Drawing\TileCoordinates\y * PBMap\TileSize PBMap\Redraw = #True - ;Drawing() If PBMap\CallBackLocation > 0 CallFunctionFast(PBMap\CallBackLocation, @PBMap\GeographicCoordinates) EndIf @@ -1234,15 +1290,14 @@ Module PBMap Case #PB_Absolute PBMap\Zoom = zoom EndSelect - If PBMap\Zoom > PBMap\ZoomMax : PBMap\Zoom = PBMap\ZoomMax : EndIf - If PBMap\Zoom < PBMap\ZoomMin : PBMap\Zoom = PBMap\ZoomMin : EndIf + If PBMap\Zoom > PBMap\ZoomMax : PBMap\Zoom = PBMap\ZoomMax : ProcedureReturn : EndIf + If PBMap\Zoom < PBMap\ZoomMin : PBMap\Zoom = PBMap\ZoomMin : ProcedureReturn : EndIf LatLon2TileXY(@PBMap\GeographicCoordinates, @PBMap\Drawing\TileCoordinates, PBMap\Zoom) - ;Convert X, Y in tile.decimal into real pixels + ; Convert X, Y in tile.decimal into real pixels PBMap\PixelCoordinates\X = PBMap\Drawing\TileCoordinates\x * PBMap\TileSize PBMap\PixelCoordinates\Y = PBMap\Drawing\TileCoordinates\y * PBMap\TileSize - ;First drawing + ; First drawing PBMap\Redraw = #True - ;Drawing() If PBMap\CallBackLocation > 0 CallFunctionFast(PBMap\CallBackLocation, @PBMap\GeographicCoordinates) EndIf @@ -1281,8 +1336,8 @@ Module PBMap y - CenterY ;*** First : Zoom PBMap\Zoom + zoom - If PBMap\Zoom > PBMap\ZoomMax : PBMap\Zoom = PBMap\ZoomMax : EndIf - If PBMap\Zoom < PBMap\ZoomMin : PBMap\Zoom = PBMap\ZoomMin : EndIf + If PBMap\Zoom > PBMap\ZoomMax : PBMap\Zoom = PBMap\ZoomMax : ProcedureReturn : EndIf + If PBMap\Zoom < PBMap\ZoomMin : PBMap\Zoom = PBMap\ZoomMin : ProcedureReturn : EndIf LatLon2Pixel(@PBMap\GeographicCoordinates, @PBMap\PixelCoordinates, PBMap\Zoom) If Zoom = 1 PBMap\PixelCoordinates\x + x @@ -1292,9 +1347,9 @@ Module PBMap PBMap\PixelCoordinates\y - y/2 EndIf Pixel2LatLon(@PBMap\PixelCoordinates, @PBMap\GeographicCoordinates, PBMap\Zoom) - ;Start drawing + ; Start drawing PBMap\Redraw = #True - ;If CallBackLocation send Location to function + ; If CallBackLocation send Location To function If PBMap\CallBackLocation > 0 CallFunctionFast(PBMap\CallBackLocation, @PBMap\GeographicCoordinates) EndIf @@ -1310,21 +1365,19 @@ Module PBMap PBMap\PixelCoordinates\x + x PBMap\PixelCoordinates\y + y Pixel2LatLon(@PBMap\PixelCoordinates, @PBMap\GeographicCoordinates, PBMap\Zoom) - ;Start drawing + ; Start drawing PBMap\Redraw = #True - ;If CallBackLocation send Location to function + ; If CallBackLocation send Location to function If PBMap\CallBackLocation > 0 CallFunctionFast(PBMap\CallBackLocation, @PBMap\GeographicCoordinates) EndIf EndProcedure Procedure.d GetLatitude() - ; ProcedureReturn 0-(90-Mod((PBMap\GeographicCoordinates\Latitude+90),180)) ProcedureReturn PBMap\GeographicCoordinates\Latitude EndProcedure Procedure.d GetLongitude() - ; ProcedureReturn 0-(180-Mod((PBMap\GeographicCoordinates\Longitude+180),360)) ProcedureReturn PBMap\GeographicCoordinates\Longitude EndProcedure @@ -1357,11 +1410,14 @@ Module PBMap ;Clip MouseX to the map range (in X, the map is infinite) MouseX = Mod(Mod(MouseX, MapWidth) + MapWidth, MapWidth) If PBMap\Mode = #MODE_DEFAULT Or PBMap\Mode = #MODE_SELECT - ;Check if we select a marker - ForEach PBMap\Marker() - If PBMap\Marker()\Selected - PBMap\EditMarker = #True;ListIndex(PBMap\Marker()) - Break + PBMap\EditMarker = #False + ;Check if we select marker(s) + ForEach PBMap\Markers() + PBMap\Markers()\Selected = #False + If PBMap\Markers()\Focus + PBMap\Markers()\Selected = #True + PBMap\EditMarker = #True;ListIndex(PBMap\Markers()) + PBMap\Markers()\Focus = #False EndIf Next EndIf @@ -1375,15 +1431,14 @@ Module PBMap MouseY = GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseY) - PBMap\MoveStartingPoint\y ;Move selected markers If PBMap\EditMarker And (PBMap\Mode = #MODE_DEFAULT Or PBMap\Mode = #MODE_SELECT) - ForEach PBMap\Marker() - If PBMap\Marker()\Selected - LatLon2Pixel(@PBMap\Marker()\GeographicCoordinates, @MarkerCoords, PBMap\Zoom) + ForEach PBMap\Markers() + If PBMap\Markers()\Selected + LatLon2Pixel(@PBMap\Markers()\GeographicCoordinates, @MarkerCoords, PBMap\Zoom) MarkerCoords\x + MouseX MarkerCoords\y + MouseY - Pixel2LatLon(@MarkerCoords, @PBMap\Marker()\GeographicCoordinates, PBMap\Zoom) - Break ;Only one marker moved at once - EndIf - Next + Pixel2LatLon(@MarkerCoords, @PBMap\Markers()\GeographicCoordinates, PBMap\Zoom) + EndIf + Next ElseIf PBMap\Mode = #MODE_DEFAULT Or PBMap\Mode = #MODE_HAND ;Move map only LatLon2Pixel(@PBMap\GeographicCoordinates, @PBMap\PixelCoordinates, PBMap\Zoom) ;This line could be removed as the coordinates don't have to change but I want to be sure we rely only on geographic coordinates @@ -1406,14 +1461,14 @@ Module PBMap MouseY = PBMap\PixelCoordinates\y - GadgetHeight(PBMap\Gadget) / 2 + GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseY) ;Clip MouseX to the map range (in X, the map is infinite) MouseX = Mod(Mod(MouseX, MapWidth) + MapWidth, MapWidth) + ;Check if mouse touch markers If PBMap\Mode = #MODE_DEFAULT Or PBMap\Mode = #MODE_SELECT - ;Check if mouse touch markers - ForEach PBMap\Marker() - LatLon2Pixel(@PBMap\Marker()\GeographicCoordinates, @MarkerCoords, PBMap\Zoom) + ForEach PBMap\Markers() + LatLon2Pixel(@PBMap\Markers()\GeographicCoordinates, @MarkerCoords, PBMap\Zoom) If Distance(MarkerCoords\x, MarkerCoords\y, MouseX, MouseY) < 8 - PBMap\Marker()\Selected = #True + PBMap\Markers()\Focus = #True Else - PBMap\Marker()\Selected = #False + PBMap\Markers()\Focus = #False EndIf Next EndIf @@ -1421,13 +1476,6 @@ Module PBMap EndIf Case #PB_EventType_LeftButtonUp PBMap\MoveStartingPoint\x = - 1 - If PBMap\EditMarker - PBMap\EditMarker = #False - ;Deselect markers - ForEach PBMap\Marker() - PBMap\Marker()\Selected = #False - Next - EndIf PBMap\Redraw = #True Case #PB_MAP_REDRAW Debug "Redraw" @@ -1469,7 +1517,7 @@ Module PBMap EndModule -;-Example +;-**** Example of application **** CompilerIf #PB_Compiler_IsMainFile InitNetwork() @@ -1488,8 +1536,8 @@ CompilerIf #PB_Compiler_IsMainFile #Text_2 #Text_3 #Text_4 - #String_0 - #String_1 + #StringLatitude + #StringLongitude #Gdt_LoadGpx #Gdt_AddMarker #Gdt_AddOpenseaMap @@ -1502,12 +1550,12 @@ CompilerIf #PB_Compiler_IsMainFile EndStructure Procedure UpdateLocation(*Location.Location) - SetGadgetText(#String_0, StrD(*Location\Latitude)) - SetGadgetText(#String_1, StrD(*Location\Longitude)) + SetGadgetText(#StringLatitude, StrD(*Location\Latitude)) + SetGadgetText(#StringLongitude, StrD(*Location\Longitude)) ProcedureReturn 0 EndProcedure - Procedure MyMarker(x.i, y.i, Selected = #False) + Procedure MyMarker(x.i, y.i, Focus = #False, Selected = #False) Protected color = RGBA(0, 255, 0, 255) MovePathCursor(x, y) AddPathLine(-16,-32,#PB_Path_Relative) @@ -1515,9 +1563,12 @@ CompilerIf #PB_Compiler_IsMainFile AddPathLine(-16,32,#PB_Path_Relative) VectorSourceColor(color) FillPath(#PB_Path_Preserve) - If Selected + If Focus VectorSourceColor(RGBA($FF, $FF, 0, $FF)) StrokePath(2) + ElseIf Selected + VectorSourceColor(RGBA($FF, $FF, 0, $FF)) + StrokePath(3) Else VectorSourceColor(RGBA(0, 0, 0, 255)) StrokePath(1) @@ -1540,8 +1591,8 @@ CompilerIf #PB_Compiler_IsMainFile ResizeGadget(#Button_4,WindowWidth(#Window_0)-150,#PB_Ignore,#PB_Ignore,#PB_Ignore) ResizeGadget(#Button_5,WindowWidth(#Window_0)-100,#PB_Ignore,#PB_Ignore,#PB_Ignore) ResizeGadget(#Text_3,WindowWidth(#Window_0)-170,#PB_Ignore,#PB_Ignore,#PB_Ignore) - ResizeGadget(#String_0,WindowWidth(#Window_0)-100,#PB_Ignore,#PB_Ignore,#PB_Ignore) - ResizeGadget(#String_1,WindowWidth(#Window_0)-100,#PB_Ignore,#PB_Ignore,#PB_Ignore) + ResizeGadget(#StringLatitude,WindowWidth(#Window_0)-100,#PB_Ignore,#PB_Ignore,#PB_Ignore) + ResizeGadget(#StringLongitude,WindowWidth(#Window_0)-100,#PB_Ignore,#PB_Ignore,#PB_Ignore) ResizeGadget(#Text_4,WindowWidth(#Window_0)-170,#PB_Ignore,#PB_Ignore,#PB_Ignore) ResizeGadget(#Gdt_AddMarker,WindowWidth(#Window_0)-170,#PB_Ignore,#PB_Ignore,#PB_Ignore) ResizeGadget(#Gdt_LoadGpx,WindowWidth(#Window_0)-170,#PB_Ignore,#PB_Ignore,#PB_Ignore) @@ -1565,9 +1616,9 @@ CompilerIf #PB_Compiler_IsMainFile ButtonGadget(#Button_4, 550, 180, 50, 30, " + ") : SetGadgetFont(#Button_4, FontID(1)) ButtonGadget(#Button_5, 600, 180, 50, 30, " - ") : SetGadgetFont(#Button_5, FontID(1)) TextGadget(#Text_3, 530, 230, 60, 15, "Latitude : ") - StringGadget(#String_0, 600, 230, 90, 20, "") + StringGadget(#StringLatitude, 600, 230, 90, 20, "") TextGadget(#Text_4, 530, 250, 60, 15, "Longitude : ") - StringGadget(#String_1, 600, 250, 90, 20, "") + StringGadget(#StringLongitude, 600, 250, 90, 20, "") ButtonGadget(#Gdt_AddMarker, 530, 280, 150, 30, "Add Marker") ButtonGadget(#Gdt_LoadGpx, 530, 310, 150, 30, "Load GPX") ButtonGadget(#Gdt_AddOpenseaMap, 530, 340, 150, 30, "OpenSeaMap") @@ -1582,12 +1633,13 @@ CompilerIf #PB_Compiler_IsMainFile PBMap::SetOption("ShowDegrees", "1") PBMap::SetOption("ShowDebugInfos", "1") PBMap::SetOption("ShowScale", "1") + PBMap::SetOption("TrackShowKms", "1") PBMap::MapGadget(#Map, 10, 10, 512, 512) PBMap::SetCallBackMainPointer(@MainPointer()) ; To change the main pointer (center of the view) PBMap::SetCallBackLocation(@UpdateLocation()) ; To obtain realtime coordinates PBMap::SetLocation(-36.81148, 175.08634,12) ; Change the PBMap coordinates - PBMAP::SetMapScaleUnit(PBMAP::#SCALE_NAUTICAL) ; To change the scale unit - PBMap::AddMarker(49.0446828398, 2.0349812508, -1, @MyMarker()) ; To add a marker with a customised GFX + PBMAP::SetMapScaleUnit(PBMAP::#SCALE_KM) ; To change the scale unit + PBMap::AddMarker(49.0446828398, 2.0349812508, "", -1, @MyMarker()) ; To add a marker with a customised GFX Repeat Event = WaitWindowEvent() @@ -1611,8 +1663,14 @@ CompilerIf #PB_Compiler_IsMainFile Case #Gdt_LoadGpx PBMap::LoadGpxFile(OpenFileRequester("Choose a file to load", "", "Gpx|*.gpx", 0)) PBMap::ZoomToArea() ; <-To center the view, and zoom on the tracks + Case #StringLatitude, #StringLongitude + Select EventType() + Case #PB_EventType_LostFocus + PBMap::SetLocation(ValD(GetGadgetText(#StringLatitude)), ValD(GetGadgetText(#StringLongitude))) ; Change the PBMap coordinates + PBMAP::Refresh() + EndSelect Case #Gdt_AddMarker - PBMap::AddMarker(ValD(GetGadgetText(#String_0)), ValD(GetGadgetText(#String_1)), RGBA(Random(255), Random(255), Random(255), 255), @MyMarker()) + PBMap::AddMarker(ValD(GetGadgetText(#StringLatitude)), ValD(GetGadgetText(#StringLongitude)), "", RGBA(Random(255), Random(255), Random(255), 255)) Case #Gdt_AddOpenseaMap If OpenSeaMap = 0 OpenSeaMap = PBMap::AddMapServerLayer("OpenSeaMap", 2, "http://t1.openseamap.org/seamark/") ; Add a special osm overlay map on layer nb 2 @@ -1636,9 +1694,9 @@ CompilerIf #PB_Compiler_IsMainFile CompilerEndIf ; IDE Options = PureBasic 5.50 (Windows - x64) -; CursorPosition = 438 -; FirstLine = 422 -; Folding = ------------ +; CursorPosition = 49 +; FirstLine = 27 +; Folding = ------------- ; EnableThread ; EnableXP ; EnableUnicode \ No newline at end of file From 60288ffbef7c4c9bb2d33754facab6cfe42593b4 Mon Sep 17 00:00:00 2001 From: djes Date: Thu, 15 Sep 2016 17:57:19 +0200 Subject: [PATCH 58/62] Markers legend --- PBMap.pb | 43 +++++++++++++++++++++++-------------------- 1 file changed, 23 insertions(+), 20 deletions(-) diff --git a/PBMap.pb b/PBMap.pb index f91ed96..19ddf5e 100644 --- a/PBMap.pb +++ b/PBMap.pb @@ -165,8 +165,8 @@ Module PBMap TimerInterval.i MaxMemCache.i ; in MiB TrackShowKms.i - ShowMarkerNb.i - ShowMarkerLegend.i + ShowMarkersNb.i + ShowMarkersLegend.i EndStructure Structure Layer @@ -377,10 +377,10 @@ Module PBMap SelBool(ShowPointer) Case "showtrack" SelBool(ShowTrack) - Case "showmarkernb" - SelBool(ShowMarkerNb) - Case "showmarkerlegend" - SelBool(ShowMarkerLegend) + Case "showmarkersnb" + SelBool(ShowMarkersNb) + Case "showmarkerslegend" + SelBool(ShowMarkersLegend) Case "trackshowkms" SelBool(TrackShowKms) EndSelect @@ -411,8 +411,8 @@ Module PBMap WritePreferenceInteger("ShowMarkers", PBMap\Options\ShowMarkers) WritePreferenceInteger("ShowPointer", PBMap\Options\ShowPointer) WritePreferenceInteger("ShowTrack", PBMap\Options\ShowTrack) - WritePreferenceInteger("ShowMarkerNb", PBMap\Options\ShowMarkerNb) - WritePreferenceInteger("ShowMarkerLegend", PBMap\Options\ShowMarkerLegend) + WritePreferenceInteger("ShowMarkersNb", PBMap\Options\ShowMarkersNb) + WritePreferenceInteger("ShowMarkersLegend", PBMap\Options\ShowMarkersLegend) WritePreferenceInteger("TrackShowKms", PBMap\Options\TrackShowKms) ClosePreferences() EndProcedure @@ -458,8 +458,8 @@ Module PBMap PBMap\Options\ShowMarkers = ReadPreferenceInteger("ShowMarkers", #True) PBMap\Options\ShowPointer = ReadPreferenceInteger("ShowPointer", #True) PBMap\Options\ShowTrack = ReadPreferenceInteger("ShowTrack", #True) - PBMap\Options\ShowMarkerNb = ReadPreferenceInteger("ShowMarkerNb", #True) - PBMap\Options\ShowMarkerLegend = ReadPreferenceInteger("ShowMarkerLegend", #False) + PBMap\Options\ShowMarkersNb = ReadPreferenceInteger("ShowMarkersNb", #True) + PBMap\Options\ShowMarkersLegend = ReadPreferenceInteger("ShowMarkersLegend", #False) PBMap\Options\TrackShowKms = ReadPreferenceInteger("TrackShowKms", #False) PBMap\Options\TimerInterval = 20 ClosePreferences() @@ -1045,7 +1045,7 @@ Module PBMap EndIf EndProcedure - Procedure DrawMarker(x.i, y.i, Nb, Color.l, Focus.i, Selected.i, Legend.s) + Procedure DrawMarker(x.i, y.i, Nb, Color.l, Legend.s, Focus.i, Selected.i) VectorSourceColor(color) MovePathCursor(x, y) AddPathLine(-8, -16, #PB_Path_Relative) @@ -1066,18 +1066,19 @@ Module PBMap VectorSourceColor(Color) StrokePath(1) EndIf - If PBMap\Options\ShowMarkerNb + If PBMap\Options\ShowMarkersNb Protected Text.s = Str(Nb) VectorFont(FontID(PBMap\Font), 13) MovePathCursor(x - 10, y) VectorSourceColor(RGBA(0, 0, 0, 255)) DrawVectorParagraph(Text, 20, 20, #PB_VectorParagraph_Center) EndIf - If PBMap\Options\ShowMarkerLegend + If PBMap\Options\ShowMarkersLegend VectorFont(FontID(PBMap\Font), 13) - MovePathCursor(x - 10, y - 30) + Protected Height = VectorParagraphHeight(Legend, 100, 13) + MovePathCursor(x - 50, y - 30 - Height) VectorSourceColor(RGBA(0, 0, 0, 255)) - DrawVectorParagraph(Legend, 20, 20, #PB_VectorParagraph_Center) + DrawVectorParagraph(Legend, 100, Height, #PB_VectorParagraph_Center) EndIf EndProcedure @@ -1114,7 +1115,7 @@ Module PBMap If PBMap\Markers()\CallBackPointer > 0 CallFunctionFast(PBMap\Markers()\CallBackPointer, Pixel\X, Pixel\Y, PBMap\Markers()\Focus, PBMap\Markers()\Selected) Else - DrawMarker(Pixel\X, Pixel\Y, ListIndex(PBMap\Markers()), PBMap\Markers()\Color, PBMap\Markers()\Focus, PBMap\Markers()\Selected, PBMap\Markers()\Legend) + DrawMarker(Pixel\X, Pixel\Y, ListIndex(PBMap\Markers()), PBMap\Markers()\Color, PBMap\Markers()\Legend, PBMap\Markers()\Focus, PBMap\Markers()\Selected) EndIf EndIf EndIf @@ -1555,6 +1556,7 @@ CompilerIf #PB_Compiler_IsMainFile ProcedureReturn 0 EndProcedure + ;This callback demonstration procedure will receive relative coords from canvas Procedure MyMarker(x.i, y.i, Focus = #False, Selected = #False) Protected color = RGBA(0, 255, 0, 255) MovePathCursor(x, y) @@ -1633,7 +1635,8 @@ CompilerIf #PB_Compiler_IsMainFile PBMap::SetOption("ShowDegrees", "1") PBMap::SetOption("ShowDebugInfos", "1") PBMap::SetOption("ShowScale", "1") - PBMap::SetOption("TrackShowKms", "1") + PBMap::SetOption("ShowMarkersLegend", "1") + PBMap::SetOption("TrackShowKms", "1") PBMap::MapGadget(#Map, 10, 10, 512, 512) PBMap::SetCallBackMainPointer(@MainPointer()) ; To change the main pointer (center of the view) PBMap::SetCallBackLocation(@UpdateLocation()) ; To obtain realtime coordinates @@ -1670,7 +1673,7 @@ CompilerIf #PB_Compiler_IsMainFile PBMAP::Refresh() EndSelect Case #Gdt_AddMarker - PBMap::AddMarker(ValD(GetGadgetText(#StringLatitude)), ValD(GetGadgetText(#StringLongitude)), "", RGBA(Random(255), Random(255), Random(255), 255)) + PBMap::AddMarker(ValD(GetGadgetText(#StringLatitude)), ValD(GetGadgetText(#StringLongitude)), "Test", RGBA(Random(255), Random(255), Random(255), 255)) Case #Gdt_AddOpenseaMap If OpenSeaMap = 0 OpenSeaMap = PBMap::AddMapServerLayer("OpenSeaMap", 2, "http://t1.openseamap.org/seamark/") ; Add a special osm overlay map on layer nb 2 @@ -1694,8 +1697,8 @@ CompilerIf #PB_Compiler_IsMainFile CompilerEndIf ; IDE Options = PureBasic 5.50 (Windows - x64) -; CursorPosition = 49 -; FirstLine = 27 +; CursorPosition = 1675 +; FirstLine = 1654 ; Folding = ------------- ; EnableThread ; EnableXP From 95ec4c41de97e0312c2fbcf288c18f881282dfb2 Mon Sep 17 00:00:00 2001 From: djes Date: Fri, 16 Sep 2016 11:42:20 +0200 Subject: [PATCH 59/62] Delete markers (wip CTRL key) --- PBMap.pb | 92 +++++++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 68 insertions(+), 24 deletions(-) diff --git a/PBMap.pb b/PBMap.pb index 19ddf5e..f35ecb6 100644 --- a/PBMap.pb +++ b/PBMap.pb @@ -58,6 +58,7 @@ DeclareModule PBMap Declare.i AddMarker(Latitude.d, Longitude.d, Legend.s = "", color.l=-1, CallBackPointer.i = -1) Declare ClearMarkers() Declare DeleteMarker(*Ptr) + Declare DeleteSelectedMarkers() Declare Quit() Declare Error(msg.s) Declare Refresh() @@ -206,7 +207,7 @@ Module PBMap Dirty.i ; To signal that drawing need a refresh List track.GeographicCoordinates() ; To display a GPX track - List Markers.Marker() ; To diplay marker + List Markers.Marker() ; To diplay marker EditMarker.l ImgLoading.i ; Image Loading Tile @@ -884,14 +885,14 @@ Module PBMap EndIf Else ;If PBMap\Layers()\Name = "" - MovePathCursor(px, py) - DrawVectorImage(ImageID(PBMap\ImgNothing)) + MovePathCursor(px, py) + DrawVectorImage(ImageID(PBMap\ImgNothing)) ;EndIf EndIf Next Next EndProcedure - + Procedure DrawPointer(*Drawing.DrawingParameters) If PBMap\CallBackMainPointer > 0 ; @Procedure(X.i, Y.i) to DrawPointer (you must use VectorDrawing lib) @@ -1009,12 +1010,12 @@ Module PBMap ;Trace Track ForEach PBMap\track() ;If *Drawing\GeographicCoordinates\Latitude<>0 And *Drawing\GeographicCoordinates\Longitude<>0 - LatLon2PixelRel(@PBMap\track(), @Pixel, PBMap\Zoom) - If ListIndex(PBMap\track())=0 - MovePathCursor(Pixel\X, Pixel\Y) - Else - AddPathLine(Pixel\X, Pixel\Y) - EndIf + LatLon2PixelRel(@PBMap\track(), @Pixel, PBMap\Zoom) + If ListIndex(PBMap\track())=0 + MovePathCursor(Pixel\X, Pixel\Y) + Else + AddPathLine(Pixel\X, Pixel\Y) + EndIf ;EndIf Next VectorSourceColor(RGBA(0, 255, 0, 150)) @@ -1081,16 +1082,25 @@ Module PBMap DrawVectorParagraph(Legend, 100, Height, #PB_VectorParagraph_Center) EndIf EndProcedure - - Procedure ClearMarkers() + + Procedure ClearMarkers() ClearList(PBMap\Markers()) EndProcedure - + Procedure DeleteMarker(*Ptr) ChangeCurrentElement(PBMap\Markers(), *Ptr) DeleteElement(PBMap\Markers()) EndProcedure + Procedure DeleteSelectedMarkers() + ForEach PBMap\Markers() + If PBMap\Markers()\Selected + DeleteElement(PBMap\Markers()) + PBMap\Redraw = #True + EndIf + Next + EndProcedure + Procedure.i AddMarker(Latitude.d, Longitude.d, Legend.s = "", Color.l=-1, CallBackPointer.i = -1) Protected *Ptr = AddElement(PBMap\Markers()) If *Ptr @@ -1139,7 +1149,7 @@ Module PBMap Next DrawVectorText(Str(ThreadCounter)) EndProcedure - + ;-*** Main drawing Procedure Drawing() Protected *Drawing.DrawingParameters = @PBMap\Drawing @@ -1391,11 +1401,42 @@ Module PBMap Procedure CanvasEvents() Protected MouseX.i, MouseY.i Protected MarkerCoords.PixelCoordinates, *Tile.Tile, MapWidth = Pow(2, PBMap\Zoom) * PBMap\TileSize - Protected key.s + Protected key.s, Touch.i, CtrlKey.i PBMap\Moving = #False - Select EventType() + Select EventType() + Case #PB_EventType_KeyUp + Select GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_Key) + Case #PB_Shortcut_Delete + DeleteSelectedMarkers() + Case #PB_Canvas_Control + CtrlKey = #False + EndSelect + Case #PB_EventType_KeyDown + Select GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_Key) + Case #PB_Canvas_Control + CtrlKey = #True + EndSelect Case #PB_EventType_LeftDoubleClick - GotoPixelRel(GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseX), GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseY)) + If PBMap\Mode = #MODE_DEFAULT Or PBMap\Mode = #MODE_SELECT + ;Check if the mouse touch a marker, if so, jump to it + LatLon2Pixel(@PBMap\GeographicCoordinates, @PBMap\PixelCoordinates, PBMap\Zoom) + MouseX = PBMap\PixelCoordinates\x - GadgetWidth(PBMap\Gadget) / 2 + GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseX) + MouseY = PBMap\PixelCoordinates\y - GadgetHeight(PBMap\Gadget) / 2 + GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseY) + ;Clip MouseX to the map range (in X, the map is infinite) + MouseX = Mod(Mod(MouseX, MapWidth) + MapWidth, MapWidth) + Touch = #False + ForEach PBMap\Markers() + LatLon2Pixel(@PBMap\Markers()\GeographicCoordinates, @MarkerCoords, PBMap\Zoom) + If Distance(MarkerCoords\x, MarkerCoords\y, MouseX, MouseY) < 8 + Touch = #True + SetLocation(PBMap\Markers()\GeographicCoordinates\Latitude, PBMap\Markers()\GeographicCoordinates\Longitude) + Break + EndIf + Next + EndIf + If Not Touch + GotoPixelRel(GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseX), GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseY)) + EndIf Case #PB_EventType_MouseWheel If PBMap\Options\WheelMouseRelative ;Relative zoom (centered on the mouse) @@ -1432,19 +1473,19 @@ Module PBMap MouseY = GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_MouseY) - PBMap\MoveStartingPoint\y ;Move selected markers If PBMap\EditMarker And (PBMap\Mode = #MODE_DEFAULT Or PBMap\Mode = #MODE_SELECT) - ForEach PBMap\Markers() + ForEach PBMap\Markers() If PBMap\Markers()\Selected LatLon2Pixel(@PBMap\Markers()\GeographicCoordinates, @MarkerCoords, PBMap\Zoom) MarkerCoords\x + MouseX MarkerCoords\y + MouseY Pixel2LatLon(@MarkerCoords, @PBMap\Markers()\GeographicCoordinates, PBMap\Zoom) EndIf - Next + Next ElseIf PBMap\Mode = #MODE_DEFAULT Or PBMap\Mode = #MODE_HAND ;Move map only LatLon2Pixel(@PBMap\GeographicCoordinates, @PBMap\PixelCoordinates, PBMap\Zoom) ;This line could be removed as the coordinates don't have to change but I want to be sure we rely only on geographic coordinates - ;Ensures that pixel position stay in the range [0..2^Zoom*PBMap\TileSize[ coz of the wrapping of the map PBMap\PixelCoordinates\x - MouseX + ;Ensures that pixel position stay in the range [0..2^Zoom*PBMap\TileSize[ coz of the wrapping of the map PBMap\PixelCoordinates\x = Mod(Mod(PBMap\PixelCoordinates\x, MapWidth) + MapWidth, MapWidth) PBMap\PixelCoordinates\y - MouseY Pixel2LatLon(@PBMap\PixelCoordinates, @PBMap\GeographicCoordinates, PBMap\Zoom) @@ -1469,7 +1510,9 @@ Module PBMap If Distance(MarkerCoords\x, MarkerCoords\y, MouseX, MouseY) < 8 PBMap\Markers()\Focus = #True Else - PBMap\Markers()\Focus = #False + If CtrlKey = #False + PBMap\Markers()\Focus = #False + EndIf EndIf Next EndIf @@ -1514,6 +1557,7 @@ Module PBMap BindGadgetEvent(PBMap\Gadget, @CanvasEvents()) AddWindowTimer(PBMap\Window, PBMap\Timer, PBMap\Options\TimerInterval) BindEvent(#PB_Event_Timer, @TimerEvents()) + ;AddKeyboardShortcut(#PB_Shortcut_Delete EndProcedure EndModule @@ -1641,7 +1685,7 @@ CompilerIf #PB_Compiler_IsMainFile PBMap::SetCallBackMainPointer(@MainPointer()) ; To change the main pointer (center of the view) PBMap::SetCallBackLocation(@UpdateLocation()) ; To obtain realtime coordinates PBMap::SetLocation(-36.81148, 175.08634,12) ; Change the PBMap coordinates - PBMAP::SetMapScaleUnit(PBMAP::#SCALE_KM) ; To change the scale unit + PBMAP::SetMapScaleUnit(PBMAP::#SCALE_KM) ; To change the scale unit PBMap::AddMarker(49.0446828398, 2.0349812508, "", -1, @MyMarker()) ; To add a marker with a customised GFX Repeat @@ -1697,8 +1741,8 @@ CompilerIf #PB_Compiler_IsMainFile CompilerEndIf ; IDE Options = PureBasic 5.50 (Windows - x64) -; CursorPosition = 1675 -; FirstLine = 1654 +; CursorPosition = 1514 +; FirstLine = 1487 ; Folding = ------------- ; EnableThread ; EnableXP From 1089eb80b0a61d722743115a4fe2b3c4519411bf Mon Sep 17 00:00:00 2001 From: djes Date: Fri, 16 Sep 2016 17:13:38 +0200 Subject: [PATCH 60/62] CTRL key multiselect --- PBMap.pb | 25 ++++++++++++++----------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/PBMap.pb b/PBMap.pb index f35ecb6..2c4b00e 100644 --- a/PBMap.pb +++ b/PBMap.pb @@ -1401,21 +1401,22 @@ Module PBMap Procedure CanvasEvents() Protected MouseX.i, MouseY.i Protected MarkerCoords.PixelCoordinates, *Tile.Tile, MapWidth = Pow(2, PBMap\Zoom) * PBMap\TileSize - Protected key.s, Touch.i, CtrlKey.i + Protected key.s, Touch.i + Static CtrlKey PBMap\Moving = #False Select EventType() Case #PB_EventType_KeyUp Select GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_Key) Case #PB_Shortcut_Delete DeleteSelectedMarkers() - Case #PB_Canvas_Control - CtrlKey = #False - EndSelect - Case #PB_EventType_KeyDown - Select GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_Key) - Case #PB_Canvas_Control - CtrlKey = #True EndSelect + If GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_Modifiers)&#PB_Canvas_Control = 0 + CtrlKey = #False + EndIf + Case #PB_EventType_KeyDown + If GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_Modifiers)&#PB_Canvas_Control <> 0 + CtrlKey = #True + EndIf Case #PB_EventType_LeftDoubleClick If PBMap\Mode = #MODE_DEFAULT Or PBMap\Mode = #MODE_SELECT ;Check if the mouse touch a marker, if so, jump to it @@ -1455,7 +1456,9 @@ Module PBMap PBMap\EditMarker = #False ;Check if we select marker(s) ForEach PBMap\Markers() - PBMap\Markers()\Selected = #False + If CtrlKey = #False + PBMap\Markers()\Selected = #False ;If no CTRL key, deselect everything and select only the focused marker + EndIf If PBMap\Markers()\Focus PBMap\Markers()\Selected = #True PBMap\EditMarker = #True;ListIndex(PBMap\Markers()) @@ -1741,8 +1744,8 @@ CompilerIf #PB_Compiler_IsMainFile CompilerEndIf ; IDE Options = PureBasic 5.50 (Windows - x64) -; CursorPosition = 1514 -; FirstLine = 1487 +; CursorPosition = 1500 +; FirstLine = 1478 ; Folding = ------------- ; EnableThread ; EnableXP From b1a8db8b1e60408fb3846d09bf70ccc4042cfcfc Mon Sep 17 00:00:00 2001 From: djes Date: Sun, 18 Sep 2016 14:19:27 +0200 Subject: [PATCH 61/62] Cursor keys to move markers --- PBMap.pb | 55 +++++++++++++++++++++++++++++++++++++++++++++---------- 1 file changed, 45 insertions(+), 10 deletions(-) diff --git a/PBMap.pb b/PBMap.pb index 2c4b00e..eb386e9 100644 --- a/PBMap.pb +++ b/PBMap.pb @@ -585,6 +585,11 @@ Module PBMap *Location\Latitude = Degree(ATan(SinH(#PI * (1.0 - 2.0 * *Coords\y / n)))) EndProcedure + ;Ensures the longitude to be in the range [-180;180[ + Procedure.d ClipLongitude(Longitude.d) + ProcedureReturn Mod(Mod(Longitude + 180, 360.0) + 360.0, 360.0) - 180 + EndProcedure + ;Lat Lon coordinates 2 pixel absolute [0 to 2^Zoom * TileSize [ Procedure LatLon2Pixel(*Location.GeographicCoordinates, *Pixel.PixelCoordinates, Zoom) Protected tilemax = Pow(2.0, Zoom) * PBMap\TileSize @@ -1410,11 +1415,41 @@ Module PBMap Case #PB_Shortcut_Delete DeleteSelectedMarkers() EndSelect + PBMap\Redraw = #True If GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_Modifiers)&#PB_Canvas_Control = 0 CtrlKey = #False EndIf - Case #PB_EventType_KeyDown - If GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_Modifiers)&#PB_Canvas_Control <> 0 + Case #PB_EventType_KeyDown + With PBMap\Markers() + Select GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_Key) + Case #PB_Shortcut_Left + ForEach PBMap\Markers() + If \Selected + \GeographicCoordinates\Longitude = ClipLongitude( \GeographicCoordinates\Longitude - 10* 360 / Pow(2, PBMap\Zoom + 8)) + EndIf + Next + Case #PB_Shortcut_Up + ForEach PBMap\Markers() + If \Selected + \GeographicCoordinates\Latitude + 10* 360 / Pow(2, PBMap\Zoom + 8) + EndIf + Next + Case #PB_Shortcut_Right + ForEach PBMap\Markers() + If \Selected + \GeographicCoordinates\Longitude = ClipLongitude( \GeographicCoordinates\Longitude + 10* 360 / Pow(2, PBMap\Zoom + 8)) + EndIf + Next + Case #PB_Shortcut_Down + ForEach PBMap\Markers() + If \Selected + \GeographicCoordinates\Latitude - 10* 360 / Pow(2, PBMap\Zoom + 8) + EndIf + Next + EndSelect + EndWith + PBMap\Redraw = #True + If GetGadgetAttribute(PBMap\Gadget, #PB_Canvas_Modifiers)&#PB_Canvas_Control <> 0 CtrlKey = #True EndIf Case #PB_EventType_LeftDoubleClick @@ -1513,9 +1548,9 @@ Module PBMap If Distance(MarkerCoords\x, MarkerCoords\y, MouseX, MouseY) < 8 PBMap\Markers()\Focus = #True Else - If CtrlKey = #False - PBMap\Markers()\Focus = #False - EndIf + ;If CtrlKey = #False + PBMap\Markers()\Focus = #False + ;EndIf EndIf Next EndIf @@ -1743,10 +1778,10 @@ CompilerIf #PB_Compiler_IsMainFile EndIf CompilerEndIf -; IDE Options = PureBasic 5.50 (Windows - x64) -; CursorPosition = 1500 -; FirstLine = 1478 +; IDE Options = PureBasic 5.42 LTS (Windows - x64) +; CursorPosition = 1433 +; FirstLine = 1405 ; Folding = ------------- +; EnableUnicode ; EnableThread -; EnableXP -; EnableUnicode \ No newline at end of file +; EnableXP \ No newline at end of file From e3b1bc8a6dafe0dcc98c4b338d985f203bfde322 Mon Sep 17 00:00:00 2001 From: djes Date: Sat, 24 Sep 2016 11:29:59 +0200 Subject: [PATCH 62/62] Multitracks wip, markers moving with cursor --- .gitignore | 1 + PBMap.pb | 161 ++++++++++++++++++++++++++++++++--------------------- 2 files changed, 97 insertions(+), 65 deletions(-) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..9a024d7 --- /dev/null +++ b/.gitignore @@ -0,0 +1 @@ +PBMap.pb.bak \ No newline at end of file diff --git a/PBMap.pb b/PBMap.pb index eb386e9..2f9aaa1 100644 --- a/PBMap.pb +++ b/PBMap.pb @@ -40,6 +40,7 @@ DeclareModule PBMap #MODE_SELECT = 2 #MODE_EDIT = 3 + ;-Declarations Declare InitPBMap(window) Declare SetOption(Option.s, Value.s) Declare LoadOptions(PreferencesFile.s = "PBMap.prefs") @@ -50,7 +51,8 @@ DeclareModule PBMap Declare SetLocation(latitude.d, longitude.d, Zoom = -1, mode.i = #PB_Absolute) Declare Drawing() Declare SetZoom(Zoom.i, mode.i = #PB_Relative) - Declare ZoomToArea() + Declare ZoomToArea(MinY.d, MaxY.d, MinX.d, MaxX.d) + Declare ZoomToTracks(*Tracks) Declare SetCallBackLocation(*CallBackLocation) Declare SetCallBackMainPointer(CallBackMainPointer.i) Declare SetMapScaleUnit(ScaleUnit=PBMAP::#SCALE_KM) @@ -111,8 +113,6 @@ Module PBMap TileCoordinates.Coordinates Bounds.TileBounds Canvas.i - PBMapTileX.i - PBMapTileY.i PBMapZoom.i GeographicCoordinates.GeographicCoordinates CenterX.i @@ -176,6 +176,9 @@ Module PBMap ServerURL.s ; Web URL ex: http://tile.openstreetmap.org/ EndStructure + Structure Tracks + List Track.GeographicCoordinates() + EndStructure ;-PBMap Structure Structure PBMap Window.i ; Parent Window @@ -206,7 +209,7 @@ Module PBMap Moving.i Dirty.i ; To signal that drawing need a refresh - List track.GeographicCoordinates() ; To display a GPX track + List TracksList.Tracks() ; To display a GPX track List Markers.Marker() ; To diplay marker EditMarker.l @@ -672,21 +675,22 @@ Module PBMap Protected *MainNode,*subNode,*child,child.l *MainNode=MainXMLNode(0) *MainNode=XMLNodeFromPath(*MainNode,"/gpx/trk/trkseg") - ClearList(PBMap\track()) + Protected *NewTrack.Tracks = AddElement(PBMap\TracksList()) For child = 1 To XMLChildCount(*MainNode) *child = ChildXMLNode(*MainNode, child) - AddElement(PBMap\track()) + AddElement(*NewTrack\Track()) If ExamineXMLAttributes(*child) While NextXMLAttribute(*child) Select XMLAttributeName(*child) Case "lat" - PBMap\track()\Latitude=ValD(XMLAttributeValue(*child)) + *NewTrack\Track()\Latitude=ValD(XMLAttributeValue(*child)) Case "lon" - PBMap\track()\Longitude=ValD(XMLAttributeValue(*child)) + *NewTrack\Track()\Longitude=ValD(XMLAttributeValue(*child)) EndSelect Wend EndIf Next + ZoomToTracks(LastElement(PBMap\TracksList())) ; <-To center the view, and zoom on the tracks EndIf EndProcedure @@ -894,6 +898,14 @@ Module PBMap DrawVectorImage(ImageID(PBMap\ImgNothing)) ;EndIf EndIf + If PBMap\Options\ShowDebugInfos + VectorFont(FontID(PBMap\Font), 16) + VectorSourceColor(RGBA(0, 0, 0, 80)) + MovePathCursor(px, py) + DrawVectorText("x:" + Str(tilex)) + MovePathCursor(px, py + 16) + DrawVectorText("y:" + Str(tiley)) + EndIf Next Next EndProcedure @@ -1007,47 +1019,56 @@ Module PBMap DrawVectorText(Str(dist)) EndProcedure - Procedure DrawTrack(*Drawing.DrawingParameters) + Procedure DrawTracks(*Drawing.DrawingParameters) Protected Pixel.PixelCoordinates Protected Location.GeographicCoordinates Protected km.f, memKm.i - If ListSize(PBMap\track())>0 - ;Trace Track - ForEach PBMap\track() - ;If *Drawing\GeographicCoordinates\Latitude<>0 And *Drawing\GeographicCoordinates\Longitude<>0 - LatLon2PixelRel(@PBMap\track(), @Pixel, PBMap\Zoom) - If ListIndex(PBMap\track())=0 - MovePathCursor(Pixel\X, Pixel\Y) - Else - AddPathLine(Pixel\X, Pixel\Y) - EndIf - ;EndIf - Next - VectorSourceColor(RGBA(0, 255, 0, 150)) - StrokePath(10, #PB_Path_RoundEnd|#PB_Path_RoundCorner) - ;Draw Distance - ForEach PBMap\track() - ;Test Distance - If ListIndex(PBMap\track())=0 - Location\Latitude=PBMap\track()\Latitude - Location\Longitude=PBMap\track()\Longitude - Else - km=km+HaversineInKM(@Location,@PBMap\track()) ;<- display Distance - Location\Latitude=PBMap\track()\Latitude - Location\Longitude=PBMap\track()\Longitude + ;Trace Track + If ListSize(PBMap\TracksList()) > 0 + BeginVectorLayer() + ForEach PBMap\TracksList() + If ListSize(PBMap\TracksList()\Track()) > 0 + ForEach PBMap\TracksList()\Track() + ;If *Drawing\GeographicCoordinates\Latitude<>0 And *Drawing\GeographicCoordinates\Longitude<>0 + LatLon2PixelRel(@PBMap\TracksList()\Track(), @Pixel, PBMap\Zoom) + If ListIndex(PBMap\TracksList()\Track()) = 0 + MovePathCursor(Pixel\X, Pixel\Y) + Else + AddPathLine(Pixel\X, Pixel\Y) + EndIf + ;EndIf + Next + VectorSourceColor(RGBA(0, 255, 0, 150)) + StrokePath(10, #PB_Path_RoundEnd|#PB_Path_RoundCorner) EndIf - If PBMap\Options\TrackShowKms - LatLon2PixelRel(@PBMap\track(),@Pixel, PBMap\Zoom) - If Int(km)<>memKm - memKm=Int(km) - If PBMap\Zoom>10 - BeginVectorLayer() + Next + EndVectorLayer() + EndIf + ;Draw Distance + If PBMap\Options\TrackShowKms And ListSize(PBMap\TracksList()) > 0 + BeginVectorLayer() + ForEach PBMap\TracksList() + km = 0 : memKm = -1 + ForEach PBMap\TracksList()\Track() + ;Test Distance + If ListIndex(PBMap\TracksList()\Track()) = 0 + Location\Latitude = PBMap\TracksList()\Track()\Latitude + Location\Longitude = PBMap\TracksList()\Track()\Longitude + Else + km = km + HaversineInKM(@Location, @PBMap\TracksList()\Track()) + Location\Latitude = PBMap\TracksList()\Track()\Latitude + Location\Longitude = PBMap\TracksList()\Track()\Longitude + EndIf + LatLon2PixelRel(@PBMap\TracksList()\Track(), @Pixel, PBMap\Zoom) + If Int(km) <> memKm + memKm = Int(km) + If PBMap\Zoom > 10 TrackPointer(Pixel\X , Pixel\Y, Int(km)) - EndVectorLayer() EndIf EndIf - EndIf + Next Next + EndVectorLayer() EndIf EndProcedure @@ -1153,6 +1174,8 @@ Module PBMap EndIf Next DrawVectorText(Str(ThreadCounter)) + MovePathCursor(50,110) + DrawVectorText(Str(PBMap\Zoom)) EndProcedure ;-*** Main drawing @@ -1179,7 +1202,7 @@ Module PBMap DrawTiles(*Drawing, ListIndex(PBMap\Layers())) Next If PBMap\Options\ShowTrack - DrawTrack(*Drawing) + DrawTracks(*Drawing) EndIf If PBMap\Options\ShowMarkers DrawMarkers() @@ -1257,24 +1280,9 @@ Module PBMap EndIf EndProcedure - Procedure ZoomToArea() + Procedure ZoomToArea(MinY.d, MaxY.d, MinX.d, MaxX.d) ;Source => http://gis.stackexchange.com/questions/19632/how-to-calculate-the-optimal-zoom-level-to-display-two-or-more-points-on-a-map ;bounding box in long/lat coords (x=long, y=lat) - Protected MinY.d,MaxY.d,MinX.d,MaxX.d - ForEach PBMap\track() - If ListIndex(PBMap\track())=0 Or PBMap\track()\LongitudeMaxX - MaxX=PBMap\track()\Longitude - EndIf - If ListIndex(PBMap\track())=0 Or PBMap\track()\LatitudeMaxY - MaxY=PBMap\track()\Latitude - EndIf - Next Protected DeltaX.d=MaxX-MinX ;assumption ! In original code DeltaX have no source Protected centerX.d=MinX+DeltaX/2 ; assumption ! In original code CenterX have no source Protected paddingFactor.f= 1.2 ;paddingFactor: this can be used to get the "120%" effect ThomM refers to. Value of 1.2 would get you the 120%. @@ -1299,6 +1307,30 @@ Module PBMap EndIf EndProcedure + Procedure ZoomToTracks(*Tracks.Tracks) + Protected MinY.d, MaxY.d, MinX.d, MaxX.d + If ListSize(*Tracks\Track()) > 0 + With *Tracks\Track() + FirstElement(*Tracks\Track()) + MinX = \Longitude : MaxX = MinX : MinY = \Latitude : MaxY = MinY + ForEach *Tracks\Track() + If \Longitude < MinX + MinX = \Longitude + EndIf + If \Longitude > MaxX + MaxX = \Longitude + EndIf + If \Latitude < MinY + MinY = \Latitude + EndIf + If \Latitude > MaxY + MaxY = \Latitude + EndIf + Next + ZoomToArea(MinY.d, MaxY.d, MinX.d, MaxX.d) + EndWith + EndIf + EndProcedure Procedure SetZoom(Zoom.i, mode.i = #PB_Relative) Select mode Case #PB_Relative @@ -1715,7 +1747,7 @@ CompilerIf #PB_Compiler_IsMainFile ;Our main gadget PBMap::InitPBMap(#Window_0) PBMap::SetOption("ShowDegrees", "1") - PBMap::SetOption("ShowDebugInfos", "1") + PBMap::SetOption("ShowDebugInfos", "0") PBMap::SetOption("ShowScale", "1") PBMap::SetOption("ShowMarkersLegend", "1") PBMap::SetOption("TrackShowKms", "1") @@ -1747,7 +1779,6 @@ CompilerIf #PB_Compiler_IsMainFile PBMap::SetZoom( - 1) Case #Gdt_LoadGpx PBMap::LoadGpxFile(OpenFileRequester("Choose a file to load", "", "Gpx|*.gpx", 0)) - PBMap::ZoomToArea() ; <-To center the view, and zoom on the tracks Case #StringLatitude, #StringLongitude Select EventType() Case #PB_EventType_LostFocus @@ -1778,10 +1809,10 @@ CompilerIf #PB_Compiler_IsMainFile EndIf CompilerEndIf -; IDE Options = PureBasic 5.42 LTS (Windows - x64) -; CursorPosition = 1433 -; FirstLine = 1405 +; IDE Options = PureBasic 5.50 (Windows - x64) +; CursorPosition = 11 ; Folding = ------------- -; EnableUnicode ; EnableThread -; EnableXP \ No newline at end of file +; EnableXP +; DisableDebugger +; EnableUnicode \ No newline at end of file