Jump to content

Sky Slate Blueberry Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate
Photo

Aaron's Google Earth Cache Stasher


  • Please log in to reply
12 replies to this topic
aaronbewza
  • Members
  • 466 posts
  • Last active: Feb 05 2013 08:40 AM
  • Joined: 20 Feb 2011
Aaron's Google Earth Cache Stasher
version 0.1.4.0 (beta) portable

Posted Image<<< click for magnified image

This script allows the User to manage Google Earth's image cache files.

System Requirements:
Windows XP, Vista, 7+ (32 or 64-bit)
Google Earth v5.2 or 6 (Get Google Earth v5.2 HERE, or Google Earth v6 HERE if needed)

Download Aaron's Google Earth Cache Stasher.ahk (latest version, 26 kb)
Download Aaron's Google Earth Cache Stasher.exe (latest version, 860 kb)

...comments, suggestions (and insults) are always welcome!

Information:
As you browse locations normally in Google Earth, the images are saved
to a backup file in Google Earth's working directory, up to a maximum of 2gb.

The problem is when the 2gb limit is reached, the oldest
images are discarded to make room for the new ones...
so no matter what, you are limited to 2gb of images.
This serves to limit the amount of offline data you can view
when there is no internet connection available.

The solution is to make backups with this script. You can create backups
anytime you want, name them anything you want and restore them any
time you want. This script is also the answer for those who do not have
an internet connection...
Users can share backup stashes between them and now even Users
without an internet connection can use the backed up cache stashes!

It works best if you first make the default backup of your current stash
(this will empty your current cache), then open Google Earth and zoom in
and around the location you'd like to archive (your hometown, for example).
This will start filling your newly emptied cache with new images from that
location. When you are satisfied you have covered enough area for your
archive, create a Cache Stash with your own custom name
(your hometown, again for example).

Version History:
v0.1.0.0 - built beta version and worked out some "what if" solutions
v0.1.0.1 - solved issues with folder access and environment variables
v0.1.1.0 - added support for Windows XP (cache files have different location)
v0.1.2.0 - added animation to the window while opening and closing (by nimda)
v0.1.3.0 - stashes are now named with file size and date in the archive name
v0.1.4.0 - added more comments, cleaned up and optimized some bits of code


Future Plans:
- include script that zooms in and out on Google Earth to load locations into the cache quickly
- use a "zip" function to group the stash files (when written) for an easy sharing format
- start archiving locations and hopefully others will contribute their own stashes to a torrent-based collection


nimda
  • Members
  • 4368 posts
  • Last active: Jan 15 2014 02:47 PM
  • Joined: 26 Dec 2010
I would encourage you to use #NoEnv and the A_ variables and EnvGet, as opposed to relying on the deprecated, slow method of env lookup. (UserProfile is one ex in your script)

I will try it out at home :)

aaronbewza
  • Members
  • 466 posts
  • Last active: Feb 05 2013 08:40 AM
  • Joined: 20 Feb 2011
This does not work (with out without #NoEnv):
#NoEnv
EnvGet, User, %UserProfile%
SetWorkingDir, %User%\AppData\LocalLow\Google\GoogleEarth ; Sets working directory to this directory
GoogleCache = %User%\AppData\LocalLow\Google\GoogleEarth ; Location of Google Earth's image cache files
Neither does this:
SetWorkingDir, %A_UserProfile%\AppData\LocalLow\Google\GoogleEarth ; Sets working directory to this directory
GoogleCache = %A_UserProfile%\AppData\LocalLow\Google\GoogleEarth ; Location of Google Earth's image cache files
I have no idea why A_variables do not work here, it's a mystery at the moment.... very strange.

nimda
  • Members
  • 4368 posts
  • Last active: Jan 15 2014 02:47 PM
  • Joined: 26 Dec 2010
MsgBox %UserProfile%
#NoEnv

EnvGet, U, UserProfile

MsgBox % U


aaronbewza
  • Members
  • 466 posts
  • Last active: Feb 05 2013 08:40 AM
  • Joined: 20 Feb 2011
I had percent signs on the UserProfile variable that should not have been there. This works now:
#NoEnv
EnvGet, User, UserProfile
SetWorkingDir, %User%\AppData\LocalLow\Google\GoogleEarth
GoogleCache = %User%\AppData\LocalLow\Google\GoogleEarth
Script updated to not use system environment variables. (thank you nimda!)
I'd also like to suggest a few more similar commands for a future release of AHK:
#NoEnvAllowedGoAway ; #NoEnv, but the "for sure" brass-knuckles version.

#AndStayOuttaRiverdale!! ; Big Moose's voice coupled with "Return" and "ExitApp" combined, twice in a row.

#HardwareLag ; Random choppiness will be inserted into a running script...
 ; reminiscent of old Arcade games such as Double Dragon in 1987.

#OmgImOnSecondLife ; Instructions and arrow keys provided so User can learn how to walk.


aaronbewza
  • Members
  • 466 posts
  • Last active: Feb 05 2013 08:40 AM
  • Joined: 20 Feb 2011
Support for XP added, I used this:
EnvGet, User, UserProfile
SetWorkingDir, %User%\AppData\LocalLow\Google\GoogleEarth
GoogleCache = %User%\AppData\LocalLow\Google\GoogleEarth

RegRead, OSVersion, HKEY_LOCAL_MACHINE, SOFTWARE\Microsoft\Windows NT\CurrentVersion, ProductName
IfInString, OSVersion, XP ; Looks for XP in the name of the operating system
	{
	 SetWorkingDir, %User%\Application Data\Google\GoogleEarth ; Sets these two variables to XP location
	 GoogleCache = %User%\Application Data\Google\GoogleEarth
	}
MsgBox, Operating System:`n%OSVersion%`n`nWorking Directory:`n%A_WorkingDir%`n`nGoogle Cache Folder:`n%GoogleCache% ; temporary, just for seeing the results
Now XP users can make cache stashes :)

Animation added to the main window while opening and closing ...a cool function by nimda

shailenkumar
  • Members
  • 1 posts
  • Last active: Jul 26 2012 05:53 PM
  • Joined: 26 Jul 2012
Can not use the programme; tried on XP, Windows 7, on different machines, on line, offline ... tried all. Once I try to save the cache(1.7 GB), it says it can not find cache. Use google earth..... Please help. I also tried reinstalling both google earth and Stasher again and again, but no success :cry:
Thanks and waiting for your reply.
Shailen

Klark92
  • Members
  • 867 posts
  • Last active: Mar 30 2014 08:44 AM
  • Joined: 19 Feb 2012
the links are not working ... is somebody find why ?

MasterFocus
  • Moderators
  • 4322 posts
  • Last active: Feb 05 2014 06:15 PM
  • Joined: 08 Apr 2009

the links are not working ... is somebody find why ?

[1] <!-- l --><a class="postlink-local" href="http://www.autohotkey.com/community/viewtopic.php?f=5&t=89124">viewtopic.php?f=5&t=89124</a><!-- l -->
[2] <!-- l --><a class="postlink-local" href="http://www.autohotkey.com/community/viewtopic.php?f=6&t=89243">viewtopic.php?f=6&t=89243</a><!-- l -->

Klark92
  • Members
  • 867 posts
  • Last active: Mar 30 2014 08:44 AM
  • Joined: 19 Feb 2012
I found the AHK file

If not A_IsAdmin { ; Runs script as Administrator for UAC in Windows Vista and 7+
  Run *RunAs "%A_ScriptFullPath%"
  ExitApp
  }
;  _______                                 _______                     __        
; |   _   |.---.-.----.-----.-----.-----. |     __|.-----.-----.-----.|  |.-----.
; |       ||  _  |   _|  _  |     |__ --| |    |  ||  _  |  _  |  _  ||  ||  -__|
; |___|___||___._|__| |_____|__|__|_____| |_______||_____|_____|___  ||__||_____|
;  _______              __   __      ______              __    |_____| 
; |    ___|.---.-.----.|  |_|  |--. |      |.---.-.----.|  |--.-----.
; |    ___||  _  |   _||   _|     | |   ---||  _  |  __||     |  -__|
; |_______||___._|__|  |____|__|__| |______||___._|____||__|__|_____|                                                                    
;  _______ __                __               
; |     __|  |_.---.-.-----.|  |--.-----.----.
; |__     |   _|  _  |__ --||     |  -__|   _|
; |_______|____|___._|_____||__|__|_____|__|  

; Written in Autohotkey
; by Aaron Bewza
#NoTrayIcon ; Not needed at all
#SingleInstance Force ; New attempt to open script will replace current instance
#NoEnv ; No system variables apply
EnvGet, User, UserProfile ; Sends User's profile name to User variable
SetWorkingDir, %User%\AppData\LocalLow\Google\GoogleEarth ; Sets working directory to this directory
GoogleCache = %User%\AppData\LocalLow\Google\GoogleEarth ; Location of Google Earth's image cache files
VersionInfo = 0.1.4.0 (beta) ; Creates these variables for "About" message window -->>
BuildDate = June 21st 2011 ; -------------------------------------------------------<<

RegRead, OSVersion, HKEY_LOCAL_MACHINE, SOFTWARE\Microsoft\Windows NT\CurrentVersion, ProductName ; Checks OS version, contents sent to OSVersion variable
IfInString, OSVersion, XP ; Looks for XP in the name of the operating system
  {
   SetWorkingDir, %User%\Application Data\Google\GoogleEarth ; Sets these two variables to XP location -->>
   GoogleCache = %User%\Application Data\Google\GoogleEarth ; -------------------------------------------<<
  }
FileCreateDir, %A_MyDocuments%\Google Earth Cache Stash ; Creates the stash destination
  MainStashFolder = %A_MyDocuments%\Google Earth Cache Stash ; sends that location to MainStashFolder variable
FileCreateDir, %MainStashFolder%\Default Cache ; Creates folder structure for Default Cache items
  DefaultCache = %MainStashFolder%\Default Cache ; Sends entire address to DefaultCache variable

If Not FileExist(DefaultCache "\Default Backup Message.txt") ; If this file does not exist, User has not seen the initial one-time Default Cache prompt
  GoSub DefaultBackupMessage ; Calls function to prompt User to create a Default Cache, and creates the above file
BkgPic_Extract(DefaultCache "\bkg.jpg") ; Calls "BkgPic_Extract" function, creates background image for main window
Gui, Add, Picture, x0 y0 w280 h170 , %DefaultCache%\bkg.jpg ; Displays background image
Gui, Add, Button, x10 y10 w120 h40 vCreateStash , Create Stash
Gui, Add, Button, x140 y10 w120 h40 vRestoreStash, Restore Stash
Gui, Add, Button, x10 y55 w60 h20 vInfo, Info
Gui, Add, Button, x10 y80 w60 h20 vOpen, Open
Gui, Add, Button, x200 y55 w60 h20 vAbout, About
 ; Calls animation when main window opened--------------->>
Gui, +LastFound
Gui, Show, Hide h171 w270, Cache Stasher
H := WinExist()
AnimateWindow(H, "Center", 400)
 ; ------------------------------------------------------<<
Return

ButtonCreateStash:
  Process, Close, googleearth.exe ; Closes Google Earth so files can be manipulated
  Gui, +Disabled
  Gui, +OwnDialogs
  If Not FileExist(GoogleCache "\dbCache.dat") ; If User's Google Earth Cache is empty then User is shown message
    {
    MsgBox, There are no cache files available to stash.`nYou need to use Google Earth to create a Cache File`nor restore one with this tool.
    Gui, -Disabled
    Return
    }
  InputBox, StashName, Google Earth Cache Stasher, Type the name you want for your Cache Stash: ; Sends User's chosen Cache Stash name to "Stashname" variable
  If ErrorLevel ; If nothing is typed in the Input Box
    {
    MsgBox, Operation cancelled.
    Gui, -Disabled
    Return
    }
  FileGetSize, CacheSize, %GoogleCache%\dbCache.dat, M ; Retrieves the size of Google Earth's current cache in megabytes
  MsgBox, Size of `"%StashName%`" will be %CacheSize%mb. ; Reports cache size
  FileCreateDir, %MainStashFolder%\%StashName% (%CacheSize%mb) %A_MMMM% %A_DD% %A_YYYY% ; Creates folder in Stash directory with User's chosen name, size, month/day/year
  StashLocation = %MainStashFolder%\%StashName% (%CacheSize%mb) %A_MMMM% %A_DD% %A_YYYY% ; Sends entire location and modified filename to "StashLocation" variable
  Loop, 100 { ; Controls how the progress bar operates
    Progress, %A_Index%,, Stashing Cache`, please wait... ; Message shown on progress bar
    Sleep 1 ; Sets progress bar updates to approximately 15 milliseconds
    If A_Index = 100
    Break
    }
  FileMove, %GoogleCache%\dbCache.dat, %StashLocation%\dbCache.dat, 1 ; These three files are moved to User's chosen stash location and name --->>
  FileMove, %GoogleCache%\dbCache.dat.index, %StashLocation%\dbCache.dat.index, 1 ; ------------------------------------------------------------
  FileMove, %GoogleCache%\dbroot_cache, %StashLocation%\dbroot_cache, 1 ; ----------------------------------------------------------------------<<
  Progress, Off ; Progress bar finished
  If Errorlevel ; If something goes wrong, User is returned to "ButtonCreateStash" (usually because Google Earth has been opened, making cache files "in use")
  {
    MsgBox, There was an error. Please make sure`nGoogle Earth is closed and try again.
    FileRemoveDir, %StashLocation%, 1
    GoTo ButtonCreateStash
  }
  MsgBox, ; Shown when FileMove operation restores Stash successfully, reports location of Stash
  ( LTrim
  Cache Stash Operation finished!`n
  "%StashName%" has been saved to`n
  %MainStashFolder%
  )
  Gui, -Disabled
Return

ButtonRestoreStash:
  Process, Close, googleearth.exe ; Closes Google Earth so files can be manipulated
  Gui, +Disabled
  Gui, +OwnDialogs
  FileSelectFolder, StashName, %MainStashFolder%, 0, Please select the Cache Stash you wish to restore:`n(Will overwrite your current cache) ; User selects Stash to restore
  If ErrorLevel ; If something goes wrong, User is returned to main window
    {
    MsgBox, Nothing was selected.`nOperation cancelled.
    Gui, -Disabled
    Return
    }
  If StashName = %MainStashFolder% ; User is returned to "ButtonRestoreStash" if main stash folder is selected instead of one of the archives inside it
    {
    Gui, -Disabled
    MsgBox, Please select a valid Cache Stash!
    GoTo ButtonRestoreStash
    }
  If StashName = %DefaultCache%  ; If, for some reason, Default Cache is selected and there is nothing in it, User is returned to "ButtonRestoreStash" 
    {
    If Not FileExist(DefaultCache "\dbCache.dat")
      {
      MsgBox, There is nothing in your default Cache Stash!`nPlease select a different backup.
      GoTo ButtonRestoreStash
      }
    }
  Loop, 100 { ; Controls how the progress bar operates
    Progress, %A_Index%,, Restoring Cache`, please wait...
    Sleep 1 ; Sets progress bar updates to approximately 15 milliseconds
    If A_Index = 100
    Break
    }
  FileCopy, %StashName%\dbCache.dat, %GoogleCache%\dbCache.dat, 1 ; These three files are restored to Google Earth's cache location --->>
  FileCopy, %StashName%\dbCache.dat.index, %GoogleCache%\dbCache.dat.index, 1 ; -------------------------------------------------------
  FileCopy, %StashName%\dbroot_cache, %GoogleCache%\dbroot_cache, 1 ; -----------------------------------------------------------------<<
  Progress, Off
  If Errorlevel ; If something goes wrong, User is returned to "ButtonRestoreStash" (usually because Google Earth has been opened, making cache files "in use")
  {
    MsgBox, There was an error. Please make sure`nGoogle Earth is closed and try again.
    GoTo ButtonRestoreStash
  }
  MsgBox, ; Shown when FileMove operation restores Stash successfully, reports location of Google Earth's cache
  ( LTrim
  Cache Restore Operation finished!`n
  Selected Cache Stash has been restored to:`n
  %GoogleCache%
  )
  Gui, -Disabled
Return

ButtonInfo: ; Shows some information about the program
  Gui, +Disabled
  Gui, +OwnDialogs
  MsgBox,
    ( LTrim
    Aaron's Google Earth Cache Stash

    Google Earth caches the images you view in:`n
    %GoogleCache%`n
    It constantly fills with images you view
    from locations you visit with Google Earth
    to a maximum size of 2gb. This is the cache
    that is referenced if no internet is available.`n
    Use this tool to create backups of that cache.
    For example, you can zoom into your own
    town or city and collect all those images.`n
    Stash that cache and name it "Your Hometown".
    This way you can use Google Earth even if
    you are offline.`n
    )
  Gui, -Disabled
Return

ButtonOpen: ; Opens the Stash folder location, for easy deleting
  Run, %MainStashFolder%
Return

ButtonAbout: ; Reports version, build date, Google Earth cache location and User's Stash location
  Gui, +Disabled
  Gui, +OwnDialogs
  MsgBox, 
    ( LTrim
    Version:`n%VersionInfo%`n
    Build Date:`n%BuildDate%`n
    Google Earth Cache location:`n%GoogleCache%`n
    Your Cache Stash location:`n%MainStashFolder%
    )
  Gui, -Disabled
Return

DefaultBackupMessage: ; Subroutine that shows User a prompt to make a default initial backup of Google Earth's cache
  Process, Close, googleearth.exe ; Closes Google Earth so files can be manipulated
  Gui, +Disabled
  Gui, +OwnDialogs
  MsgBox,3,,
    ( LTrim
    It is recommended that you do a "default backup" of your
    Google Earth Cache files. This will keep intact all the
    images you've viewed so far in Google Earth, so if you want
    to restore all of them like they originally were, you can.`n
    If you make a default backup now, you will then have an empty
    cache to work with so you can collect images from specific
    locations and keep them in their own individually named stashes.`n
    Press YES to create a default stash...
    (Always accessible to restore at any time)
    Press NO to cancel...
    (Your entire cache will be stashed the first time you create one)`n
    This message will be seen only once.
    )
  IfMsgBox No
    {
    FileCreateDir, %DefaultCache% ; Creates empty "Default Cache" archive with text message in it.
    FileAppend, One-time message seen about making a default backup.`nThis file ensures the message is only seen once., %DefaultCache%\Default Backup Message.txt
    Gui, -Disabled
    Return
    }
  IfMsgBox Yes
    {
    Process, Close, googleearth.exe ; Closes Google Earth so files can be manipulated
    If Not FileExist(GoogleCache "\dbCache.dat")
      {
      MsgBox, There are no cache files available to stash.`nYou need to use Google Earth to create a Cache File.
      Gui, -Disabled
      Return
      }
    FileGetSize, CacheSize, %GoogleCache%\dbCache.dat, M ; Retrieves the size of Google Earth's current cache in megabytes
    MsgBox Size of Default Cache is %CacheSize%mb. ; Reports cache size
    Loop, 100 { ; Controls how the progress bar operates
      Progress, %A_Index%,, Stashing...
      Sleep 1 ; Sets progress bar updates to approximately 15 milliseconds
      If A_Index = 100
      Break
      }
    FileMove, %GoogleCache%\dbCache.dat, %DefaultCache%\dbCache.dat, 1 ; These three files are moved to "Default Cache" location --->>
    FileMove, %GoogleCache%\dbCache.dat.index, %DefaultCache%\dbCache.dat.index, 1 ; -----------------------------------------------
    FileMove, %GoogleCache%\dbroot_cache, %DefaultCache%\dbroot_cache, 1 ; ---------------------------------------------------------<<
    Progress, Off
    If Errorlevel ; If something goes wrong, User is returned to main window
      {
      MsgBox, There was an error. Please make sure`nGoogle Earth is closed and try again.
      Gui, -Disabled
      Return
      }
    FileAppend, One-time message seen about making a default backup.`nThis file ensures the message is only seen once., %DefaultCache%\Default Backup Message.txt
    MsgBox, Cache Stash Operation finished! ; Message shown when operation successful
    }
  Gui, -Disabled
Return

GuiClose:
ExitApp

 ; Function adapted from "[AHK_L] AnimateWindow wrapper (by nimda)" ...applies animation to main window when opened and closed
AnimateWindow(HWND, Options, t=200) {
  o := 0, op := {Center : 0x00000010}
  List = Center
  Loop Parse, List,|
  If InStr(Options, A_LoopField, false)
    o |= op[A_LoopField]
  Return DllCall("AnimateWindow", "UInt", HWND, "Int", t, "UInt", o)
}

 ; Creates background picture for main window (by Rseding91)
BkgPic_Extract(Filename)
{
  Static Chars="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"
  VarSetCapacity(Temp_Data,13062)
  Temp_Data .= "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"
  
  StringReplace Temp_Data, Temp_Data, =,, All
  VarSetCapacity(Out_Data, 3*StrLen(Temp_Data)//4, 0)
  pos := 0, Address := &Out_Data
  Loop Parse, Temp_Data
  {
    m := A_Index&3, d := InStr(Chars,A_LoopField,1) - 1, b := m ? (m=1 ? d<<18 : b+(d<<24-6*m)) : b+d
    IfEqual,m,0
      Numput(b>>16,Address+0,Pos++,"UChar"), Numput(255 & b>>8,Address+0,Pos++,"UChar"), Numput(255 & b,Address+0,Pos++,"UChar")
  }
  c1 := b>>16, c2 := 255 & b>>8, c3 := 0
  Loop % !!m+(m&1)
    NumPut(c%A_Index%,Address+0,Pos++,"UChar")
  
  h := DllCall("CreateFile","str",Filename,"Uint",0x40000000,"Uint",0,"UInt",0,"UInt",4,"Uint",0,"UInt",0)
  DllCall("SetFilePointerEx","Uint",h,"Int64",0,"UInt *",p,"Int",0)
  DllCall("WriteFile","UInt",h,"UInt",&Out_Data,"UInt",9748,"UInt",0,"UInt",0)
  DllCall("CloseHandle", "Uint", h)
}


aaronbewza
  • Members
  • 466 posts
  • Last active: Feb 05 2013 08:40 AM
  • Joined: 20 Feb 2011
oh hey sorry, people! I had health problems and have not been able to keep up with coding stuff.

@shailenkumar:
I'm not sure why it is not working for you, but I will be going through the entire program soon to upgrade it and make it stable.... and hopefully this will fix your problem :)
Also... you could look in the section of code here:
EnvGet, User, UserProfile
SetWorkingDir, %User%\AppData\LocalLow\Google\GoogleEarth
GoogleCache = %User%\AppData\LocalLow\Google\GoogleEarth
Try changing these paths (if they are different) to the correct paths.

@Klark92 and MasterFocus:
The links are not working from my computer either... I will be checking this out after my nap.

hassanayoub85
  • Members
  • 35 posts
  • Last active:
  • Joined: 07 Dec 2009

Dear guys,

Does this tool allow me to change google earth cache while google earth is running?

Thx



aaronbewza
  • Members
  • 466 posts
  • Last active: Feb 05 2013 08:40 AM
  • Joined: 20 Feb 2011

Although I've never tried that, I would guess "no" because while Google Earth is open, that .DB file is being read from and written to. And while a file is in use, it can't be moved, replaced or deleted.

 

I'm quite surprised people are still finding use for this thing... I lost my AHK.net account here, it is inaccessible so to share my stuff I have a software section on my own page, located here:

 

http://aaronbewza.no-ip.org

 

Click the "Software" button to get to my AutoHotkey collection... that's where you'll find the most recently updated programs, source code is there as well.