Adding geographical maps functionality

Axiell Collections optionally offers geographical map functionality. If implemented for a database, a Geographical map view is available (next to the Record editor, the Result set and the Media viewer and so on). (Please also see the next topic before implementing this functionality.)

Geo1

The view is meant to display locations (as registered in different fields in your records) on a world map for a quick visual overview. You can use it to easily track down main locations of storage or the geographical distribution of production places of a certain record selection or the range of content subjects of objects manufactured by a single creator, for example.

Also, the Find data for the field dialog for linked geographical place fields will display an extra Geographical map tab which allows you to enter data into the field by selecting a place on the map.

Geo2

This functionality is not present in the model Axiell Collections applications prior to version 4.5.2, but any field which contains geographical places can be set up for the geographical map functionality, by making it a so-called "geolocation" designated field. Databases which do not have such special fields won’t offer the maps functionality.

Creating geolocation fields

In the Application browser of Axiell Designer, proceed as follows to create geolocation fields: on the Field properties tab of field definitions in the data dictionary you'll encounter a Data type called Geo location. The intention is not to create any new fields with this data type but to change the data type of one or more existing fields (linked or not) that contain geographical names, (mostly from data type Text) to Geo location if you'd like those fields to have the validation by geographical map (if it concerns a linked field) and if you want those fields to be selectable in the Geographical map view of Axiell Collections.

An example would be the production.place field in the collect.inf database structure. If you make it a geolocation field by changing its field definition (no other settings required), the Geographical map view in Collections will then allow the user to show the production places of a selection of records as coloured markers on a geographical map which can be zoomed in or out and scrolled in all directions.

Geo3

Setting up a caching database for geographical places

To improve map display performance and to not overload the map provider with too much requests, you can (optionally, but still recommended) configure a SQL database to contain geographical location names and coordinates that were automatically marked on the map once before for selected fields in displayed records. This database doesn’t necessarily need to be on the same server as Axiell Collections and it can be shared by multiple applications run by Collections. Just create a new database in SQL Server like you would normally do. You won’t need to create any tables manually: Axiell Collections will automatically do that for you the first time the map functionality is used.

In settings.xml, (in your Collections\App_Data folder), underneath the <Settings> node, add the following settings and replace MySQLSERVER by the name of your SQL Server and geolocations by the actual name of the database you created for storing these place names. <ConnectionType> must then be set to SqlServer. User name and password only need to be specified if you use SQL Server authentication (instead of Active Directory authentication) to access the database. The different GIS providers each offer their own map layer: if you don’t want certain map layers to be available in the user interface, you can switch them off here by setting <Enabled> to false for the relevant GIS provider. Note that GIS services are not always free to use: you may have to deal with paid licenses for some GIS services, both for an Axiell hosted Collections application as well as for an Axiell Collections installation on your own web server. If you choose not to use a caching database, set <ConnectionType> to None. None is the default, but better not rely on defaults (as they may change), so do specify the setting explicitly.

 

<AlmSettings>

  <Gis DefaultMapProvider="OpenStreetMap" 
   DefaultGeocodingProvider="Google">

      <DatabaseSettings>

        <ConnectionType>SqlServer</ConnectionType>

        <Server>MySQLSERVER</Server>

        <Database>geolocations</Database>

        <User />

        <Password />

      </DatabaseSettings>

      <GisProvider>

        <Provider>Google</Provider>

        <Enabled>true</Enabled>

        <ApiKey />

        <ApiSignature />

        <CacheType>Memory</CacheType>

      </GisProvider>

      <GisProvider>

        <Provider>MapQuest</Provider>

        <Enabled>true</Enabled>

        <ApiKey />

        <ApiSignature />

        <CacheType>Memory</CacheType>

      </GisProvider>

      <GisProvider>

        <Provider>Microsoft</Provider>

        <Enabled>true</Enabled>

        <ApiKey />

        <ApiSignature />

        <CacheType>Memory</CacheType>

      </GisProvider>

      <GisProvider>

        <Provider>Yahoo</Provider>

        <Enabled>true</Enabled>

        <ApiKey />

        <ApiSignature />

        <CacheType>Memory</CacheType>

      </GisProvider>

      <GisProvider>

        <Provider>OpenStreetMap</Provider>

        <Enabled>true</Enabled>

        <ApiKey />

        <ApiSignature />

        <CacheType>Memory</CacheType>

      </GisProvider>

      <GisProvider>

        <Provider>Custom</Provider>

        <Enabled>true</Enabled>

        <ApiKey />

        <ApiSignature />

        <CacheType>Memory</CacheType>

      </GisProvider>

    </Gis>

  <Applications />

</AlmSettings>