VIRB Edit Javascript Error

I get the following error in the right side of panel when attempting to manually do a g-Metrix sync, and again if I try to use the Map tab.

"This page didn't load Google Maps correctly. See the JavaScript console for technical details."

Screenshot: https://imgur.com/WO6fpPU

Additionally, my actual video is ~5 minutes long, but the right panel is showing 40 minutes. This is the first run on a freshly formatted memory card. This is with the latest version of the software as of this post, v5.4.2.

Any insight would be great. I got this camera (Virb Ultra 30) specifically for the G-Metrix and every video I make has them badly and unusably out of sync.
  • Garmin could use Openstreetmap or link the whole thing to Basecamp. Issue solved for free.....
  • Seems to me that what we are actually seeing is an early announcement of the death of the VIRB line. Bad news if you bought one of the recent ones - released only a year ago.
  • It looks like it's going to take some engineering time before Garmin can release a fix. They've not updated to a private Maps API key since the 2016 announcement that anonymous use would be ended. This was a bit of an ugly move, on Google's part, to deactivate the functionality on a weekend, but Garmin did have 2 years to figure this out. https://churchthemes.com/page-didnt-load-google-maps-correctly/


    Right, you get 2 years notice, do nothing, and carry on selling cameras like nothing was going to happen.

    Safe to say we can assume VIRB action cameras are cancelled and deprecated?
  • Maybe we can edit this string from the virbedit.exe.config file to Bling or something

    <setting name="PreferredMap" serializeAs="String">
    <value>eGoogle</value>


    This looked like an interesting avenue to resolve Google Maps issue that recently started to pop up. So, I dug into the source code...

    After de-compiling the VirbEdit.exe source code, I found there are three known map providers for Virb Edit:
    • Google (eGoogle)
    • Baidu (eBaidu)
    • Bing (eBing)
    Using the "eGoogle" setting resolves the map as:
    http://static.garmincdn.com/desktop-...gle/index.html

    Using the "eBaidu" setting resolve the map as:
    http://static.garmincdn.com/desktop-...idu/index.html

    Note: The Baidu map is only available if your system's culture (language settings) is set to "zh-Hans" or "zh-Hant", aka Chinese.

    Using the "eBing" setting will fallback to the eGoogle setting. In other words, Bing may have been supported in the past, but Garmin no longer provides a Bing map editor.

    What is the actual error from Google Maps?
    "You have exceeded your request quota for this API."


    How do we resolve this right now?
    Right now? We can't without Garmin updating their account with Google: The Google Map link embedded into the compiled .exe is valid. The problem appears to be a billing issue. Garmin needs to pay up with Google.

    If Garmin doesn't want to pay up, then there's an easy fix: Garmin needs to release a minor update with a new config setting allowing us to define our own Google Maps API key. In this vein, we are fully responsible for acquiring our own key and pay for what we use. In most cases, we will likely end up with a free account.

    Another alternative is for Garmin to release a new version using Open Streets Maps or similar; however, I suspect they'd still end up in a resource usage issue at some point.

    For reference, here are the relevant source code blocks:

    Struct VirbShared.MapApi+ApiType_t: AutoLayout, AnsiClass, Class, NestedPublic, Sealed, BeforeFieldInit
    :System.Enum
    Fields:
    Int32 value__ : Public, SpecialName, RTSpecialName
    ApiType_t eBing = 0 : Public, Static, Literal, HasDefault
    ApiType_t eGoogle = 1 : Public, Static, Literal, HasDefault
    ApiType_t eBaidu = 2 : Public, Static, Literal, HasDefault


    public MapProvider_t MapProviderSetting
    {
    get
    {
    MapApi.ApiType_t eGoogle;
    if (!Enum.TryParse<MapApi.ApiType_t>(Settings.Default.PreferredMap, out eGoogle))
    {
    return MapProvider_t.FromKey(MapApi.ApiType_t.eGoogle);
    }
    if (eGoogle == MapApi.ApiType_t.eBing)
    {
    eGoogle = MapApi.ApiType_t.eGoogle;
    Settings.Default.PreferredMap = "eGoogle";
    }
    return MapProvider_t.FromKey(eGoogle);
    }
    }


    public static IEnumerable<MapProvider_t> AllMapProviders
    {
    get
    {
    if (mMapProviders == null)
    {
    List<MapProvider_t> list1 = new List<MapProvider_t>();
    MapProvider_t item = new MapProvider_t {
    Name = Virb.Properties.Resources.google,
    Key = MapApi.ApiType_t.eGoogle,
    Uri = new System.Uri("static.garmincdn.com/.../index.html")
    };
    list1.Add(item);
    mMapProviders = list1;
    if (((Common.Properties.Resources.CurrentCulture == "zh-Hans") || (Common.Properties.Resources.CurrentCulture == "zh-Hant")) || RuntimeUtilities_t.IsDebug())
    {
    MapProvider_t _t2 = new MapProvider_t {
    Name = Virb.Properties.Resources.baidu,
    Key = MapApi.ApiType_t.eBaidu,
    Uri = new System.Uri("static.garmincdn.com/.../index.html")
    };
    mMapProviders.Add(_t2);
    }
    }
    return mMapProviders;
    }
    }
  • Right, you get 2 years notice, do nothing, and carry on selling cameras like nothing was going to happen.

    Safe to say we can assume VIRB action cameras are cancelled and deprecated?


    I certainly won't be buying another one.
  • If Garmin doesn't want to pay up, then there's an easy fix: Garmin needs to release a minor update with a new config setting allowing us to define our own Google Maps API key. In this vein, we are fully responsible for acquiring our own key and pay for what we use. In most cases, we will likely end up with a free account.


    Another alternative is hosting the Google Maps page yourself with your own API key.
    This could be done by spoofing the URL or by changing the URL inside the binary (a bit hardcore, but can be done).
  • Another alternative is hosting the Google Maps page yourself with your own API key.
    This could be done by spoofing the URL or by changing the URL inside the binary (a bit hardcore, but can be done).


    I thought about providing a re-compiled VirbEdit.exe w/ a configurable Google Maps API, but figured I'd be breaking some sort of EULA or other legal issue would arise. I've also looked at intercepting / spoofing the URL; I think that could be done with some routing rules or something like Fiddler or Wire Shark. Was going to play with the latter scenario when I had more time.
  • MetroSmurf Agreed you shouldnt provide a binary from Garmin, but it could solve it for you.
    Spoofing the URL doesn't seem to work for now. Spoofed it on my Mac with a self-signed certificated (trusted locally) which is fine in a browser, but VirbEdit is showing a gray screen. Fun playing with Google API keys though (you need the Maps JavaScript API key)
  • Well...I guess I'm glad I'm not the only one in this boat. UGH. I had just gotten my process down pat...looks like I'll need to download and learn DashWare now... ????????
  • looks like some progress is made. The maps show up again now - with an overlay of "For development purposes only". Seems to be usable in my first tests...ciq.forums.garmin.com/.../1388725.jpg