ViSit Anywhere Development

Development news and release notes

Correcting Proj4 Type Load Problems

A number of people are experiencing problems in ViSit Anywhere that are associated with transforming between different geographic coordinate systems.  This often manifests itself when users activate the sample location tool or try to navigate to an address using the base d'adresse nationale.  The origin of this problem is that ViSit Anywhere includes the widely used open source package, Proj4, to correctly perform these complex coordinate system transformations.  As Proj4 is a native application, ViSit Anywhere is required to use a C++ bridge to access this functionality.  Part of this bridge requires the Microsoft C++ redistributable to be installed on the same machine as that running ViSit Anywhere.

Until recently, this redistributable could be installed using a standard merge module provided by Microsoft.  However, with the arrival of the new universal Windows platform (UWP) framework, Microsoft has decided that the merge module installs were not always appropriate and are now recommending that the C++ redistributables be pre-installed when required.  This page on StackOverflow provides more details.  For this reason, we are starting to see more and more problems related to missing C++ redistributables.

The problem is relatively simple to detect in ViSit Anywhere as type load error is raised when accessing some aspect of Proj4.  The screenshot below illustrates a typical example.

While this appears complex, the source of the problem is very clear - a missing C++ redistributable package.  When we see this problem, we must install the C++ redistributable version 14 (Visual Studio 2015) manually.

Note: Géotech understands the importance of this problem and the standard ViSit Anywhere installers will be updated to force the installation of the appropriate C++ redistributable, prior to installing ViSit Anywhere.  This represents a major change in the installer logic and thus, this can only be implemented as part of the next major release.  Thus, this problem will be resolved in ViSit Anywhere 2017, which is scheduled to be available in the first 3rd of 2017.

Installing the C++ Runtime

This problem can be resolved by downloading the appropriate C++ redistributable and installing it. 

Step 1 Download the 32 bit C++ Runtime for Visual Studio 2015

The required installer is freely available from the Microsoft.  The appropriate installer can be downloaded from this link.  The page should look similar to the screenshot below.

 

 

It is important to download the x86 (32-bit) version of the redistributable.  When we click on the button to download the redistributable installer, we will be presented with a choice of installers.  It is very important to select the version for x86 (32-bit), as ViSit Anywhere 2016 is a 32-bit application.

Ensure that the name of the file downloaded includes the x86 specification.

Step 2: Install the Redistributable

Once the executable installer has been downloaded, we should be able to locate it in the download directory.

Once we have located the file, we can unblock it to ensure that it can be executed correctly.  This can be done by clicking the right mouse button on the file and selecting the Properties item from the menu.  Once the Properties dialog opens, we can select the Unblock check box.

Once the file has been unblocked, we can start the installation by double clicking on the file, or right clicking and selecting the run option.  Note that when the installation starts, it may be necessary to accept that the application run with elevated privileges (in the same way as for other Windows installers execute).

Simply, execute the click-through installer to terminate the procedure.  Once this has been accomplished, the problem with loading the types required to transform coordinates should have been resolved.

Summary

This article has explained how to download and install the Visual Studio C++ 2015 redistributable (x86 version).  Installing this is sometimes required for newer versions of Windows (Windows 7 and better).  The source of this problem is the change in Microsoft's policy with respect to the installation of the C++ runtime merge modules.

Géotech will update the installation infrastructure in ViSit Anywhere 2017 to address this problem.  In the meantime, we are recommending that our customers install the C++ redistributable manually.  The new version of ViSit Anywhere will be made available in the first third of 2017.

Comments are closed