GeoBase Release Notes

Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
GeoBase 4.2 Release Notes
Changes made from version 4.1.15 to 4.2:
Geocoding
Improved the recognition of long form suffixed street types (such as 'Drive' and 'Parkway') in address
strings supplied to DrillDownGeoCoder.GetStreets methods. This requires a GBFS map data file
containing appropriate information.
Corrected an AutocompleteGeocoder fault that could cause an exception to be thrown, or result in a
system crash, when searching for short addresses in cities or suburbs without a parent region.
Fixed a fault that prevented the AutocompleteGeocoder returning addresses for some countries,
including Greece, Luxembourg, Egypt and Portugal.
Improved the appearance of results returned from the AutocompleteGeocoder when searching for a
city if the city name was also a suburb, county or state.
Fixed poor sorting of AutocompleteGeocoder results when using a location hint. Sorting now better
incorporates results' proximities to the location hint.
Corrected poor forward geocoding accuracy for a small number of street addresses in Chicago, Illinois,
USA.
Mapping
Corrected a memory leak in the WPF MapControl class caused by the incorrect disposal of bitmap
images on window closure.
Fixed an exception thrown when setting a Map.Display scale to an invalid value.
Fixed a WPF MapControl fault that could cause an application to freeze if a window containing a large
number of map images was resized.
Corrected a fault that could cause the map orientation to change, resulting in a skewed map, at close
zoom levels.
Fixed an invalid repository exception thrown when calling GetMap if the MapRepository set for the Map
object was a GeoStreamRepository.
Fixed a MapCtrl.ZoomToBoundingbox problem that could cause an InvalidLatLonException error
to be thrown when panning the map to the North or South Poles.
Corrected off-center alignment of text and numbers on highway shields.
One Platform for Location Intelligence
Page 1
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
General
Added the new MaximumVisibleZoom parameter to the Telogis.GeoBase.PoiRenderer class. This
parameter allows users to set the maximum zoom at which POIs will be rendered, rather than the
previous hard-coded zoom value of 5 or less.
Fixed a problem in the BoundingBox.Add(BoundingBox) constructor when BoundingBox.
AllowCrossAntimeridian was set to true. This fault could result in the new BoundingBox object
created not containing the added BoundingBox if its maximum and minimum longitudes were far apart.
Corrected a fault that prevented the correct display of imported historical traffic data for Sundays or the
last day of the week.
GeoStream
Fixed an internal error thrown when requesting Directions using client versions older than version 4.0
together with a GeoStream installation of 4.0 or newer.
Fixed a GeoStream problem that could cause invalid JSON strings to be returned when using the
JavaScript Telogis.GeoBase.MapLayers.ClusterLayer(config)property usePost.
Corrected an error that caused automatic GeoStreamRepository server authentication to fail.
GeoStreamRepository will now once again attempt to re-authenticate with the server after the auth
token has expired.
Corrected a fault that could result in a 500 server error being returned when requesting tiles using a third
party application if the tile data was not available at the time. A more appropriate 204 error (no content) is
now returned.
Fixed a GeoStream issue that resulted in very recent statistics (for activity within the last 30 seconds) not
showing on the stats.aspx page.
Map Explorer
Fixed an exception thrown in Map Explorer when run in GeoStream mode if a route was optimized, then a
stop on that route was deleted.
JavaScript
Corrected a problem that could cause images to jump to another location when dragged on maps in a
div that used padding.
Fixed a problem that prevented mouseup events firing when the mouse was over the dock.
Routing
Corrected poor route optimization results returned when Telogis.GeoBase.Routing.
RoadCrossingBehavior was set to Forbidden.
One Platform for Location Intelligence
Page 2
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
Corrected a problem that could cause vehicles to be routed along pedestrian street links.
GeoBase 4.1.15 Release Notes
Changes made from version 4.1.10 to 4.1.15:
Geocoding
Corrected a code base omission that prevented AutocompleteGeocoder operations returning address
results for a large number of countries.
Fixed an AutocompleteGeocoder fault that stopped city results being returned for street name searches
until the first letters of the city name had been entered, or a street number.
GeoBase 4.1.10 Release Notes
Changes made from version 4.1 to 4.1.10:
Routing
Improved routing performance when calculating multi-stop routes with large numbers of stops close to
one another by reducing the number of disk access operations required.
General
Fixed a licensing issue identified in GeoBase 4.1 that prevented access to traffic data.
Fixed a FileNotFoundException exception thrown if a default map repository folder location could not
be found, even if Repository was not being used to reference map data.
GeoBase 4.1 Release Notes
New Features
Support for High Resolution Displays
Added native GeoStream support for high resolution screens (eg. Retina displays). Larger 600 x 600 pixel map
tiles will now be served automatically to high resolution devices by the GeoStream server. This feature can
also be set manually using the useRetina config for the Tile object.
One Platform for Location Intelligence
Page 3
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
New PointAddresses Property
Added the new PointAddresses property to the Telogis.GeoBase.Street class. This property is used to
return a list of point addresses on the Street object.
Enhancements and Minor Fixes
GeoStream
Added the 'Fallback Tiles' served graph to the GeoStream stats.aspx page. The graph details the
frequency GeoStream falls back to standard tiles rather than using satellite tiles from the imagery cache.
Updated the 'Data Served' graph presented on the GeoStream stats.aspx page. The graph's y-axis
now displays data served in megabytes rather than kilobytes.
Improved the speed of the AddStop and AddStops routing methods when operating in .NET client
GeoStream mode.
Fixed a NullReferenceException thrown when requesting statistics from the GeoStream stats.aspx
page while the statistics thread was still running (the thread may execute for up to 30 seconds).
Fixed the returning of the wrong HTTP error type when requesting map tiles using a scale of 3. Only scale
1 and 2 are accepted by default (note however that allowed scales can be manually adjusted in web.
config).
Fixed a problem that caused incorrect WMS layer expiration times to be set when requesting several
WMS layers simultaneously.
Fixed a problem that resulted in invalid data requests (for data not present on the server) returning 500
errors rather than 400 errors.
Corrected the duplication of GeoStream log entries when geostreamlogging is enabled.
Geocoding
Improved point address geocoding for addresses that share point locations (typically addresses colocated on street corners). The location closest to the geocoded street will now be returned.
Improved geocoding when using PointAddresses and forward geocoding for addresses without point
data. The address will now be interpolated between the closest known PointAddresses, not between
the street range.
Fixed an exception thrown when searching for strings containing the '@' character to represent a cross
street.
One Platform for Location Intelligence
Page 4
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
Mapping
Added the DisplayScale property to Windows Forms Map and MapCtrl classes, and the WPF
MapControl class, to support scaling of map elements such as labels, shields and masks on higher
resolution displays.
Improved the display of state labels and borders within Slovenia, Croatia, Hungary and Switzerland in the
default map style.
Implemented the SetProperty method of the WPF MapControl class.
Fixed a problem that prevented 2.5D map perspective displaying correctly when using Windows Forms
MapCtrl and WPF MapControl classes in a desktop .NET environment.
Fixed a fault in the WPF MapControl class that prevented the cursor changing to a closed hand icon
when dragging the map.
Fixed an issue that could cause an application to freeze after calling a GetMap() method on large maps
using MapQuality.FastStreets.
Corrected a problem that caused footpaths to be more prominent on the map than surface streets at
some zoom levels in satellite mode.
JavaScript
Added the limitLatitudeRange boolean configuration option to Telogis.GeoBase.Widgets.Map to
restrict vertical panning of the map. This configuration option has also been added to the tutorial.
simple-map.js example file.
Fixed an error in the GeoBase.MapLayers.DivObject that caused the EndDrag event handler to fire on
a mouse click, not on a mouse drag.
Corrected a fault that stopped map tiles rendering correctly after adding a large number of geofences to a
JavaScript map in the Chrome browser.
Fixed an issue which prevented dragging of Telogis.GeoBase.MapLayers.ImageObject objects in
the Firefox browser.
Fixed a momentum panning issue that could cause stuttering when panning a map on an iPad device, or
the map to pan too far.
Alchemy
Fixed an issue that could cause zero-sized suburbs to be imported from Alchemy into GBFS data, even if
a real suburb was already found at a location. Zero-sized suburbs are no longer duplicated.
Routing
Corrected a routing fault that permitted only one direction of travel through a Waypoint when using
RoadCrossingBehavior.Forbidden.
One Platform for Location Intelligence
Page 5
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
General
The Telogis.GeoBase.Repositories.MultiRepository constructor now throws a FileNotFound
exception when supplied an invalid path to map data.
Corrected a fault that could cause Alchemy to throw an exception following the installation of a GeoBase
hotfix.
GeoBase 4.0.10 Release Notes
Changes made from version 4.0 to 4.0.10:
Chameleon
Fixed an issue affecting map styles containing multiple custom data rendering blocks for a single data
type, e.g. polygons. This caused all BEGIN CUSTOM statements for a given data type to be executed
against the table name provided in the first statement, regardless of any alternative table names
specified in subsequent statements.
One Platform for Location Intelligence
Page 6
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
GeoBase 4.0 Release Notes
New Features & Important Changes
New Default Map Style for GeoStream & Desktop .NET Environments
This release features an all-new map style for GeoStream and Desktop .NET environments. The new style is
designed to deliver a fresh, clean look in line with current UI trends, while also enhancing the clarity of key map
information for routing, navigation and fleet tracking, and is recommended for all clients.
One Platform for Location Intelligence
Page 7
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
The previous default map style, now called legacy style, is still available in the API, but will receive no further
updates. If you have a requirement to revert to the legacy style, then this can be achieved via the methods
below, which vary depending on your choice of API and data source.
GeoStream Server:
A new Web.config attribute, UseLegacyStyle, has been added. Setting this to true will cause the GeoStream
server to generate all tiles using the legacy style, unless an alternative style is explicitly specified by the client.
XML Sample
<appSettings>
...
<add key="UseLegacyStyle" value="true" />
...
</appSettings>
This will affect tile requests from both JavaScript and .NET clients.
JavaScript API:
One Platform for Location Intelligence
Page 8
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
In addition to the GeoStream server setting above, the JavaScript API allows the legacy style to be requested on
a per-map basis. A new boolean config argument, useLegacyStyle, has been added to the Telogis.
GeoBase.MapLayers.TileLayers constructor. Setting this to true will request legacy tiles for that layer. This
can also be specified as part of the tileLayerConfig argument of the Telogis.GeoBase.Widgets.Map
constructor.
JavaScript Sample
// Create a legacy tile map
var legacyMap = new Map({ id: 'lgMap', tileLayerConfig: {useLegacyStyle: true} });
// Alternatively, create a Map with no built-in TileLayer & add legacy TileLayer
var blankMap = new Map({ id: 'blMap', createTiles: false});
var legLayer = new TileLayer({ id:'lgLayer', map: blankMap, useLegacyStyle: true});
.NET API:
A new property, UseLegacyStyle, has been added to the static Telogis.GeoBase.Settings class. Setting
this to true will result in all subsequently created Telogis.GeoBase.IMap classes (Telogis.GeoBase.Map,
Telogis.GeoBase.MapCtrl, Telogis.GeoBase.WPF.MapControl) using the legacy style. Note that this will
not affect maps using a GeoStream datasource, only those using local data. It is recommended that this call is
made early in the life-cycle of your application, prior to the initialization of other GeoBase components.
C# Sample
Settings.GeoBase.UseLegacyStyle = true;
// All subsequently created IMap objects will use the legacy style.
MapCtrl legacyMainMap = new MapCtrl();
Alternatively, the legacy style is also available via the new LegacyStyle property of the Telogis.GeoBase.
MapStyle class. This allows the legacy map style to be set on a per-map basis, or toggled during execution,
by setting the Style property of your active IMap object. This affects both maps using both local data, and
those using a GeoStream datasource. Note that this does not require the custom map styles runtime license
enhancement.
One Platform for Location Intelligence
Page 9
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
One Platform for
Location Intelligence
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
C# Sample
public void SwitchToLegacyStyle() {
mapMain.Style = MapStyle.LegacyStyle;
mapMain.Invalidate();
}
New Autocomplete Geocoder
This release adds support for autocomplete (match-as-you-type) geocoding, in the form of the new .NET class
Telogis.GeoBase.Geocoding.AutocompleteGeocoder, together with supporting classes. This can be
used to generate address suggestions from a partial address string, together with search status information
indicating whether further qualification is required. By combining this with a standard text entry form, either in a .
NET application using an asynchronous threaded approach, or on webpage using AJAX requests, applications
can provide users with near real-time matches against their address string, as they type.
The AutocompleteGeocoder supports both searching for addresses within a single country, and searching
multiple countries simultaneously, accepting a Telogis.GeoBase.BoundingBox argument to indicate which
countries should be searched. In addition, you may optionally provide a Telogis.GeoBase.LatLon location
hint, with results ordered based on their proximity to this location. This would typically be used to provide a
user's current geographic location, to bias search results towards those in the immediate area.
The Map Explorer sample application has been updated to make use of the AutocompleteGeocoder in its
address search box, and a new Autocomplete Geocoder Tutorial has been added to the GeoBase
documentation.
To make use of autocomplete geocoding, optimized GBFS files with additional indices are required. The
availability of these files varies by provider and country. If you are interested in taking advantage of this feature,
contact your Account Manager to discuss your data requirements.
The table below shows the full list of classes added to support this functionality. All classes are in the
Telogis.GeoBase.Geocoding namespace, except where indicated:
Class
AutocompleteGeocoder
Purpose
Used for geocoding partial address strings to a
list of address suggestions.
One Platform for Location Intelligence
Page 10
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
One Platform for
Location Intelligence
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
Class
Purpose
AutocompleteGeocoderArgs
Encapsulates a partial address string with other
search settings; suitable for passing to a
background thread for processing by the
AutocompleteGeocoder.
AutocompleteGeocoderResult
A result returned by the
AutocompleteGeocoder. Contains a list of
address suggestions, together with status
information indicating how the search terminated.
AutocompleteGeocoderSuggestion
An address suggestion produced by the
AutocompleteGeocoder. May relate to a region
or a street.
Telogis.GeoBase.Addresses.
AddressConvention
An enumeration used to indicate whether an
AutocompleteGeocoderSuggestion comes
from a country which places street numbers
before street names, or vice versa.
Changes to Navigation Announcement Classes
A new Telogis.GeoBase.Navigation.Announcements namespace has been added to the .NET API, to
contain classes facilitating the announcement of instructions and status updates during navigation. Existing
announcement classes, including XmlWaveAnnouncer and WaveAnnouncer, have been transplanted from
Telogis.GeoBase.Navigation into this new namespace. In addition, a new abstract parent class,
Telogis.GeoBase.Navigation.Announcements.Announcer has been added as a parent of
WaveAnnouncer, and nested classes have been transferred to this new parent. Finally, a new interface for
announcer classes has been added, Telogis.GeoBase.Navigation.Announcements.IAnnouncer, and
the Telogis.GeoBase.Navigation.NavigationManager.Announcer property now returns an IAnnouncer
object. These are breaking changes, and we advise auditing any code which makes use of these classes to
ensure this still compiles and functions correctly when using GeoBase 4.0.
These changes are summarized in the table below. All type references below have the Telogis.GeoBase
prefix, omitted here for brevity.
GeoBase 3.9.7.25 Types
Navigation.XmlWaveAnnouncer
GeoBase 4.0 Types
Navigation.Announcements.
XmlWaveAnnouncer
One Platform for Location Intelligence
Page 11
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
One Platform for
Location Intelligence
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
GeoBase 3.9.7.25 Types
GeoBase 4.0 Types
Navigation.WaveAnnouncer
Navigation.Announcements.WaveAnnouncer
Navigation.WaveAnnouncer.PlayItem
Navigation.Announcements.Announcer.
PlayItem
Navigation.WaveAnnouncer.PhraseDelegate
Navigation.Announcements.Announcer.
PhraseDelegate
Navigation.WaveAnnouncer.SoundDelegate
Navigation.Announcements.Announcer.
SoundDelegate
N/A
Navigation.Announcements.Announcer
N/A
Navigation.Announcements.IAnnouncer
Enhancements and Minor Fixes
GeoStream
Optimized the tile generation/caching process to improve the tile serving speed of the GeoStream server,
and increase the efficiency of memory and I/O usage.
Improved the management of collateral files; cached tiles, statistics and diagnostic logs. A new Web.
config key, GeoStreamDataFolder, is used to specify a directory within which three subfolders, Cache,
Stats and Logs will be created, each storing the corresponding collateral files. Previously, this
information was stored side-by-side in a single folder specified by the Web.config key
TileCacheFolder; this key is now obsolete, but will be used as a fallback if the
GeoStreamDataFolder key is absent. This change in structure makes it easier to maintain the server,
particularly when archiving/deleting old logs, stats or cache files.
Changed the approach used for reporting errors when serving tiles (requests to tile.aspx). If errors
are encountered while serving a basemap or overlay tile, then no tile will be served; instead, an
appropriate HTTP error code will be returned, e.g. HTTP 500 (Server Error), with an additional Error
header indicating the root cause of the problem. If an error is encountered while serving satellite tiles, a
basemap tile and HTTP 200 (OK) response will be sent, but with an additional Error header detailing
the issue affecting the satellite imagery provider. In addition, details of the error will be written to the
relevant GeoStream logs, if enabled. Previously, gray placeholder tiles displaying diagnostic error
messages were issued for all tile generation errors, but the display of these was often suppressed by
common IIS production settings. As part of this change, the Web.config key
AlwaysReturnErrorTilesOnFailure has been made obsolete.
One Platform for Location Intelligence
Page 12
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
Added a new Web.config key, EnableTilesWithoutAuth. Setting this to true allows requests to
tile.aspx to return tiles in the absence of an authentication key in the request URL or accompanying
cookie, provided the request URL includes a valid dataset and data hash (via the data and dsh
arguments, respectively). Enabling this setting can improve tile caching performance on proxy servers, or
in browsers which place limits on third-party cookies.
Fixed a problem which could result in 32-bit GeoStream servers running out of memory when receiving a
large number of simultaneous tile requests.
Updated the default tile request URL format to order all parameters alphabetically, and include the data
set name, data set hash and map style name. This allows web browser caches to be invalidated when
datasets or map styles are changed during a session.
Obsoleted the SuperTileMaxCacheQueue Web.config key, which limited the maximum number of
super tiles that would be cached in memory. This cache is now managed dynamically.
Fixed an HTTP response parsing problem which could prevent WMS layers from being displayed for
certain WMS server configurations.
Improved the handling of WMS tile requests, including satellite data, in the event of failures or slow
responses from the WMS server. Timeouts are now more strictly enforced, an incorrect repeat requests
for each tile on the supertile will no longer occur.
Added a new optional attribute, RequestTimeoutSeconds, to entries in Layers.config. This allows the
timeout period for WMS requests to be set on a layer by layer basis. If no value is specified, a timeout
period of 30 seconds will be used.
Improved handling of tile requests when an authentication token is invalid or has expired. Requests will
now receive HTTP 401 (Unauthorized) or HTTP 403 (Forbidden) responses instead of HTTP 500 (Server
Error) responses.
Updated GeoStream logging to standardize on 24hr UTC timestamps for both filenames and log
entries.
Changed the configuration file (.Config file) loading behavior of the GeoStream server. To improve
stability, these files will now only be read on server startup, and not checked for changes during server
execution. As a result of this change, you will need to restart your GeoStream website within IIS before
any changes made to these file will be reflected in your server environment.
Addressed an issue which, in rare circumstances, could cause the GeoStream server to search for
configuration files (e.g. respository.config) in incorrect locations.
One Platform for Location Intelligence
Page 13
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
Geocoding
Added a new value, VehiclesAllowedOnly, to the Telogis.GeoBase.ReverseGeoCodeMode
enumeration. When this value is set on the Mode property of a Telogis.GeoBase.
ReverseGeoCodeArgs object, calls to Telogis.GeoBase.GeoCoder.ReverseGeoCodeFull
(ReverseGeoCodeArgs) will only return streets where vehicles are allowed, with no pedestrian-only
streets returned.
Added a new property, StreetType, to the Telogis.GeoBase.Street class. This returns a Telogis.
GeoBase.StreetType value indicating the type of the Street object.
Added a new property, Intersection, to the Telogis.Geobase.GeocodeAddress class, for retrieving
the curbside location of a geocoded address. If Point Address Data is available, this will return the exact
street access location of the property, as recorded in the data. Note that in rare circumstances, a point
address number may belong to one street, but be accessed via a different street. If no Point Address
Data is in use, or there are no address points on the target street, then this will return the estimated point
along the street at which the address falls.
Fixed a problem that could cause Telogis.GeoBase.GeocodeAddress results to contain an incorrect
postcode when geocoding numbered addresses on streets with different postcode values for properties
on the left and right sides of the street.
Fixed an issue affecting forward geocoding for street intersections using the @ or & characters that could
prevent results from being returned if the intersecting streets fall within different postal codes.
Fixed an edge case in reverse geocoding, where a call to Telogis.GeoBase.ReverseGeoCodeFull
could return a Telogis.GeoBase.GeoCodeFull object with incorrect results on cross-street properties
CrossStreet and CrossStreetIntersection, due to a failure to correctly consider vehicle heading.
Mapping
Improved the placement of highway shields at junctions where two highways meet, reducing the
occurrence of ambiguous labeling.
Fixed a problem that resulted in district roads (Kreisstraße) around Augsburg, Germany, incorrectly
displaying Autobahn highway shields.
Fixed a problem which prevented state labels from being drawn on the map when satellite imagery was
enabled.
Added a new convenience method, GetBoundingBox, to the Telogis.GeoBase.IMap interface. This
method returns a bounding box representing the current viewport of the IMap object. Care should be
taken with the bounding box when the map is projected (IMap.Projected is set to true), as the edges
of the viewport will not always follow lines of constant latitude or longitude. The IMap classes Telogis.
GeoBase.Map, Telogis.GeoBase.MapCtrl and Telogis.GeoBase.WPF.MapControl have all been
updated to support this method.
One Platform for Location Intelligence
Page 14
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
Navigation
Fixed a thread safety issue which could cause the Telogis.GeoBase.Navigation.
NavigationManager to deadlock if invoking the UI thread from a delegate triggered by the embedded
Telogis.GeoBase.Navigation.Navigator, either by an event or a Telogis.GeoBase.Navigation.
Notification.
Added a new property, AutoRaiseEvents, and a new method, RaiseEvents, to the Telogis.GeoBase.
Navigation.Navigator class. AutoRaiseEvents defaults to true; if this is set to false, then events
(e.g. Navigator.RouteChanged) and notifications (as added via Navigator.AddNotification)
triggered by calls to the Navigator.AddPoint method will no longer be raised automatically during
AddPoint, but will be queued and can be raised manually through a subsequent call to RaiseEvents.
This approach can provide improved thread safety if running the Navigator on a non-UI thread.
Addressed an error in the Swedish (sv-SE) language pack which was resulting in incorrect repetition of
"and then" ("och sedan") in turn announcements.
Routing
Adjusted routing behavior for private roads. If a stop falls on a private road, then the routing engine will
also consider nearby private roads as being valid for routing. This prevents long route calculation times
and poor quality routes when routing into large networks of private roads, such as military bases.
Addressed some edge cases in route highlighting which could result in unnecessary diversions in route
reconstructions.
Fixed a routing engine issue which could cause long calculation times for multiple-stop routes where the
crow-flies distance between any two stops is significantly shorter than the shortest distance by road,
such as when routing around a large waterbody.
Fixed a problem affecting routes with a crow-flies distance of greater than 200 miles, where extended
travel on functional class 1 roads could be incorrectly preferred to shorter, faster travel on lower functional
class roads.
Traffic
When using the default map style, traffic tiles rendered via the JavaScript class Telogis.GeoBase.
MapLayers.TrafficLayer will now include grayscale rendering of surface streets, appearing
underneath the traffic flow lines. These occlude the colored streets on the basemap tiles, and prevent
visual confusion between road colors and traffic flow colors.
One Platform for Location Intelligence
Page 15
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
Traffic rendering now supports the use of a pre-traffic style, an optional additional style file which is used
to re-render selected basemap components underneath the traffic flow lines. This is designed to allow
the colors of basemap elements to be muted when traffic is displayed, as described in the previous note.
For GeoStream, including JavaScript, this style can be specified by adding an optional PreStyle
attribute to entries in Traffic.config. For .NET applications using local data, this style can be
specified via a new constructor overload of the Telogis.GeoBase.Traffic.TrafficRenderer class.
Added a new map style parameter, %PRE_TRAFFIC, which is set to true when a map style is being used
as a pre-traffic style. This can be utilized in custom map styles to allow rendering code to be selectively
re-used for purposes, meaning one style can be used for both basemap and pre-traffic rendering.
JavaScript
Fixed a problem that caused changes to the serverPage config property to be ignored when calling the
Telogis.Geobase.MapLayers.TileLayer.setTileConfig function.
Added a new config argument, suppressTileHashes, to the tileConfig argument of the Telogis.
GeoBase.MapLayers.TileLayer constructor. Setting this to true will prevent data set name, data set
hash and map style name being sent with all tile requests (see GeoStream release notes), effectively
reverting the tile request URLs to the pre-4.0 format, losing the benefit of enhanced browser caching.
Telogis WorkBench
Fixed an issue which prevented the map view from being automatically updated with the new style when
opening an existing CAM file.
Fixed a file handling issue which could cause Telogis WorkBench to crash if attempting to save a script
file that was open in another process. An error message will now be displayed explaining why the script
cannot be saved, and no crash will occur.
A new render block, POINT_ADDRESS, has been added to the Chameleon language. This allows custom
map styles to render the property location and road network access point information available in
supplementary Point Address Data GBFS files.
Alchemy
Fixed an issue where the dress function could fail to detect Roman numerals appearing immediately
before or after a hyphen.
General
Improved the methods used by GeoBase to check for the presence of Point Address Data within a
repository. This will result in a general performance increase in comparison to post-3.9.7.5 GeoBase
releases when working with repositories containing a large number of GBFS files.
One Platform for Location Intelligence
Page 16
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
GeoBase 3.9.7.25 Release Notes
Changes made from version 3.9.7.15 to 3.9.7.25:
Mapping
Fixed a problem which could cause Telogis.GeoBase.WPF.MapControl objects to throw an
AccessViolationException if the control was resized while simultaneously changing the map zoom.
Navigation
Fixed a problem with the Telogis.GeoBase.Navigation.DistanceIntervalNotification class
which caused notifications to be incorrectly triggered by the first valid GPS update received. This in turn
could cause a NullReferenceException to be thrown.
General
Fixed a threading issue that caused Telogis.GeoBase.Transactional.TransactionalRepository
objects to deadlock if the BeginTransaction method was called immediately after a call to the
AbortTransaction method.
Added a new property, BufferedReadsDisabled, to the static Telogis.GeoBase.Settings class.
This value defaults to false; setting this to true will revert GeoBase's GBFS I/O handling to pre-3.9.2.1
behavior, making a large number of small reads instead of a smaller number of large reads. This may
deliver a performance improvement for x86 applications in environments where data access is fast, but
data transfer is slow, such as some iSCSI environments. However, for the majority of environments, this
setting will be detrimental to application performance. If you believe your application may benefit from this
setting, please contact GeoBase Support at gbsupport@telogis.com to discuss your circumstances.
One Platform for Location Intelligence
Page 17
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
GeoBase 3.9.7.15 Release Notes
Changes made from version 3.9.7.10 to 3.9.7.15:
Geocoding
Fixed an issue that caused GeoBase to become unresponsive when reverse geocoding Point Address
locations for properties that have a number belonging to one Telogis.GeoBase.StreetLink, but are
accessed via an alternative StreetLink.
Navigation
Updated the Telogis.GeoBase.Navigation.Navigator class to use asynchronous route calculation
by default, ensuring that the UI will continue to be updated during route calculation when using the
Telogis.GeoBase.Navigation.NavigationManager class. Note that asynchronous calculation is
only available when the CrossingTurnPenalty property of the active Telogis.GeoBase.Routing.
RoutingStrategy object is set to the default value of 0; calculation of routes with custom
CrossingTurnPenalty values will be performed synchronously.
Fixed a thread-safety issue that could cause the Telogis.GeoBase.Navigation.NavigationManager
class to throw a NullReferenceException during navigation.
Adjusted the en-US language pack to disable the announcement of route numbers for minor County
Roads (prefix CR-) by the Telogis.GeoBase.Navigation.XmlWaveAnnouncer class. These
announcements were causing driver confusion due to a lack of corresponding roadside signage.
Routing
Fixed an edge case which could result in poor quality routes when the RoadCrossingBehavior property
of the active Telogis.GeoBase.Routing.RoutingStrategy object was set to
RoadCrossingBehavior.Discouraged.
General
Addressed a compatibility issue which caused GeoBase applications targeting .NET 4.5 to exit with an
ExecutionEngineException when running in 64-bit mode.
One Platform for Location Intelligence
Page 18
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
GeoBase 3.9.7.10 Release Notes
Changes made from version 3.9.7.5 to 3.9.7.10:
Mapping
Updated guidance and documentation on adding interactive, location aware objects to the WPF map
control, Telogis.GeoBase.WPF.MapControl. The use of objects implementing mouse events via the
Telogis.GeoBase.IMapMouseHandler interface has been obsoleted. For on-map display of objects
with mouse events, mouse-aware WPF objects such as System.Windows.Controls.Image should
be added as children of the MapControl, with the Location dependency property used to maintain
correct positioning on the map. The non-interactive display of objects implementing the Telogis.
GeoBase.IMapRenderer interface is still supported, and there is no change to IMapMouseHandler
support in the Windows Forms map control, Telogis.GeoBase.MapCtrl.
JavaScript
Fixed a problem that caused Telogis.GeoBase.MapLayers.ImageObject instances to incorrectly
report their location if the getLocation() function was called prior to the completion of a drag
operation.
Fixed a problem affecting Firefox that caused incorrect map panning behavior after clicking and dragging
on a Telogis.GeoBase.MapLayers.ImageObject object that was not drag-enabled.
GeoBase 3.9.7.5 Release Notes
Changes made from version 3.9.7 to 3.9.7.5:
Point Address Data
This release adds support for Point Address Data, supplementary GBFS data files containing LatLon location
points for individual numbered addresses within a country or region. This data allows for improved accuracy
when performing forward geocoding, reverse geocoding and routing operations, and also enables the
rendering of street address numbers on the map at close zoom levels. No code changes are required to take
advantage of these new features; if Point Address Data is detected for a region, the enhanced methods will be
applied automatically. For full details of the improvements provided, see the page 'Address Interpolation and
Point Address Data' in the GeoBase documentation.
One Platform for Location Intelligence
Page 19
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
Availability of Point Address Data varies by provider and country. If you are interested in taking advantage of
these features, contact your Account Manager to discuss your data requirements.
Geocoding
Added a new value to the Telogis.GeoBase.GeoCodeMatch enumeration, MATCH_POINT_ADDRESS, to
indicate that a Telogis.GeoBase.GeoCodeAddress result represents a location from a Point Address
Data file.
Mapping
Added a new boolean parameter, Show_Point_Addresses, to the default desktop map style. This can
be used to toggle the display of address numbers on the map at close zoom levels, and is enabled by
default.
JavaScript
Fixed a minor anchor point alignment issue that could occur when dragging Telogis.GeoBase.
MapLayers.ImageObject objects.
Fixed a problem which prevented dragging of Telogis.GeoBase.MapLayers.ImageObject objects on
Firefox.
Fixed an issue which caused Telogis.GeoBase.MapLayers.ImageObject objects to be incorrectly
positioned during dragging if the underlying map was indented.
Fixed a fault which could result in a JavaScript error occurring on Internet Explorer 7-9 if a Telogis.
GeoBase.MapLayers.TileLayer fails to load a tile.
Fixed an issue which could cause browser context menus to incorrectly appear when Telogis.
GeoBase.Widgets.Map.rightDragBehavior was set to DRAG_ZOOM.
GeoBase 3.9.7 Release Notes
Important Changes
GeoStream Server .NET Framework Changes
The GeoStream Server application now requires a .NET Framework 4.0 application pool, running in Integrated
Pipeline Mode. If using a .NET 2.0 application pool, as previously required, you may experience failures when
attempting to retrieve tiles from the server's tile cache. This is a breaking change.
One Platform for Location Intelligence
Page 20
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
Changes to NAVTEQ Branding and Classes
Nokia has recently rebranded all location and mapping services formerly known as NAVTEQ to HERE,
including the NAVTEQ map data and traffic feeds supported by Telogis GeoBase. As a consequence of this
rebranding, all references to NAVTEQ in the SDK have been replaced with the new HERE name. All classes
and configuration options that use the NAVTEQ name have been flagged as obsolete, and replaced with HERE
equivalents; see the table below for a full reference. In addition, from 13Q3 onwards, all new GBFS data
previously branded as NAVTEQ will instead feature HERE branding in file names, copyright strings and
internal properties.
Added classes:
Telogis.GeoBase.Traffic.HEREIncidentTrafficSource
Telogis.GeoBase.Traffic.HEREPredictiveRealTimeTrafficSource
Telogis.GeoBase.Traffic.HERERealTimeTrafficSource
Obsoleted classes:
Telogis.GeoBase.Traffic.NavteqIncidentTrafficSource
Telogis.GeoBase.Traffic.NavteqPredictiveRealTimeTrafficSource
Telogis.GeoBase.Traffic.NavteqRealTimeTrafficSource
GeoStream Web.config changes:
FlipHERETraffic and InvertHERETraffic keys are now supported, replacing the existing
FlipNavteqTraffic and InvertNavteqTraffic keys. These old keys should be considered
obsolete.
Changes to USA Data Files
To maintain legacy support for Windows CE/Mobile and platforms using FAT32 filesystems, no single GBFS
file may exceed 4 gigabytes in size. Due to organic network growth and the addition of new GeoBase features,
TomTom/HERE USA GBFS files are steadily approaching this limit. As a result, from 13Q3 onwards, USA map
data will be split across two GBFS files of roughly equal size: West USA and East USA. For full USA coverage,
these two files should be used together in a single repository, where they will provide the same function as the
previous single USA GBFS file. To avoid potential issues with routing or geocoding when using these new
files, we recommend that you update to GeoBase 3.9.6.0 or later.
A single GBFS file containing full USA coverage will no longer be produced, but existing USA GBFS files will
continue to work with new GeoBase releases. There is no change to the availability of our smaller USA
regional files (e.g. Pacific West, Mountain West). For further information about the region boundaries of our
available USA files, see the 'Data File Regions' page in the GeoBase documentation.
One Platform for Location Intelligence
Page 21
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
If you have any queries about this change, contact the GeoBase Support Team at gbsupport@telogis.com, who
will be happy to assist you.
Enhancements and Minor Fixes
General
Added new PostProcessingInfo and FileInfo properties to the Telogis.GeoBase.Repositories.
SimpleRepository class. These allow GBFS files to be queried for information about the build
processes used to create them, for support purposes.
Added a new speed unit, centimeters per second, and a new distance unit, decameters, to both the .NET
and JavaScript APIs. The Telogis.GeoBase.SpeedUnit and Telogis.GeoBase.DistanceUnit
enumerations in both .NET and JavaScript have been updated with the new values
CentimetersPerSecond and DECAMETERS, respectively.
Added a new method, GetCountriesIn(BoundingBox) to Telogis.GeoBase.Repositories.
LocalRepository. This method allows Telogis.GeoBase.Repositories.SimpleRepository and
Telogis.GeoBase.Repositories.MultiRespository objects to be queried with a BoundingBox,
and to return an array of Telogis.GeoBase.Country values for all countries within the repository that
intersect the BoundingBox.
Fixed an issue that caused the RPostcode property of Telogis.GeoBase.StreetLink objects to
always return String.Empty.
Addressed a fault that could cause an AccessViolationException to be thrown if a large number of
calls are made to Telogis.GeoBase.DataQuery.QueryStreets.
Fixed a problem that could cause calls to Telogis.GeoBase.DataQuery.QueryStreets to return
Telogis.GeoBase.Street objects that have incorrect values in their Points and BoundingBox
properties.
Geocoding
When working with a GeoStream repository, the TimeZone field of Telogis.GeoBase.GeoCodeFull
objects returned by calls to Telogis.GeoBase.ReverseGeoCodeFull will now be populated, provided
time zone information exists in the source data. This information was previously not serialized.
Improved the detection of cross streets where two roads are joined by ramps, making behavior
consistent between the forward geocoder and the drill-down geocoder. This change requires additional
information in the GBFS data file, which will be included in all builds from 13Q4 onwards.
One Platform for Location Intelligence
Page 22
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
Mapping
Adjusted the default minimum zoom of the Telogis.GeoBase.WPF.MapControl class to 0.07,
standardizing it with the behavior of the Telogis.GeoBase.MapCtrl class. If required, minimum zooms
as low as 0.001 can be set by adjusting the MinZoom property; however, map drawing and panning
behavior may be erratic beyond the default threshold.
Improved the behavior of the zoom box drawn by the Telogis.GeoBase.WPF.MapControl class when
the DragBehavior property is set to DragBehavior.Zoom. The origin of the box will no longer move if
the box is resized repeatedly, and the mouse cursor is now limited to the map's area while the zoom box
is active.
Fixed a issue that caused maps of locations in the southern hemisphere to be incompletely rendered
when both Lambert projection and 2.5D perspective were enabled.
Improved label drawing when rotating a map, resulting in greater consistency of label orientation
between frames.
Traffic
Fixed an issue where traffic rendered using Telogis.GeoBase.Traffic.TrafficRenderer (.NET API)
or Telogis.GeoBase.MapLayers.TrafficLayer (JavaScript API) could have missing sections on
streets with multiple TMC codes.
JavaScript
Added a new class, Telogis.GeoBase.MapLayers.WMSTileLayer, to simplify the use of WMS
imagery. This class also allows two separate WMS sources to be composited together, with a single set
of tiles delivered by the GeoStream server. The example script tutorial.weatherdata.aspx has been
updated to demonstrate the functionality of this new class.
Fixed a fault that prevented a Telogis.GeoBase.Widgets.Map object from correctly receiving focus in
Internet Explorer 8 and 9, which could cause problems with mouse wheel zooming.
Fixed an issue that caused unexpected background colors to appear on the map when zooming in
through multiple zoom levels using a Telogis.GeoBase.MapLayers.TileZoom transition.
Fixed a memory leak that could occur when working with Telogis.GeoBase.Canvas.Shapes.
PolyLine objects.
Fixed a problem with object dragging at very high zooms that could cause objects (any child of Telogis.
GeoBase.MapLayers.AbstractObject or Telogis.GeoBase.Canvas.Shapes.AbstractShape) to
become detached from the mouse pointer when dragged across the anti meridian.
Fixed a problem affecting Internet Explorer versions 7 to 9, where calls to Telogis.GeoBase.Routing.
Route.getQuickDirections could fail to respond when multiple simultaneous requests were
submitted in a cross-domain environment.
One Platform for Location Intelligence
Page 23
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
Fixed a compatibility issue that prevented objects on a Telogis.GeoBase.MapLayers.
XSLTObjectLayer from displaying in Internet Explorer 11.
Fixed a problem that could cause clusters displayed on a Telogis.GeoBase.MapLayers.
ClusterLayer to remain visible after the ClusterLayer had been hidden.
Updated the JavaScript GeoStream authentication example to remove all ASP.NET dependencies. The
old example script, tutorial.client-authentication.aspx has now been replaced with
tutorial.client-authentication.html
GeoStream
Fixed an issue that resulted in duplicate satellite map tiles being stored in the server's tile cache when
using a map style with no auxiliary layers.
Updated GeoStream cookies to make use of the HttpOnly flag. This change improves security against
cross-site scripting attacks.
Routing
Improved the quality of routing in situations where the start or end of a route falls on a pedestrian only
link, and the active VehicleType does not equal VehicleType.Pedestrian. Directions generated will
now start/end on the closest link where vehicles are allowed, rather than routing all the way to the
RouteStop via pedestrian links.
Fixed an issue that prevented vehicle specifications from being written to, or parsed from, XML when
using the ToXmlString and FromXml methods of a Telogis.GeoBase.Routing.Route object.
Fixed a fault in directions generation that could lead to the duplication or omission of turn instructions.
Addressed an edge case where Telogis.GeoBase.Routing.Route.OptimizeStops(DateTime)
could produce poor quality results, if the route contained duplicate stops and time windows were not in
use.
Fixed a fault that could cause a Telogis.GeoBase.Routing.RouteMatrix to throw
AccessViolationExceptions if truck attributes were in use and the ObeyConstraints property was
set to true.
Fixed a problem in GeoBase Mobile where routes taking longer than 60 seconds to calculate could fail to
return due to an exception occurring during logging.
Fixed an edge case that could result in a failure to generate directions for routes with near-duplicate
stops.
Navigation
Resolved an issue where an instance of Telogis.GeoBase.Navigation.NMEAGps would incorrectly
return a non-UTC DateTime if it failed to parse the timestamp in a $GPRMC NMEA sentence.
One Platform for Location Intelligence
Page 24
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
Chameleon
Added the ability to implement country-specific rendering of Lines, Polygons and Points, by
appending a list of named countries to the filter parameter of the corresponding render statement. For
example, to render state/province borders as red in Canada, green in the USA and blue in all other
countries, the following code could be used:
begin lines
render [states:"Canada"],pen<(255,0,0),1>
render [states:"USA"],pen<(0,255,0),1>
render [states],pen<(0,0,255),1>
end lines
Telogis WorkBench
Added the ability to close document tabs by clicking tab headers with the middle mouse button.
Fixed an issue where an Alchemy or Chameleon script open in a document tab could steal focus from
the map, making mouse wheel zooming of the map unreliable.
Improved application stability when working with Alchemy scripts containing UTF-8 characters.
GeoBase 3.9.6.30 Release Notes
Changes made from version 3.9.6.25 to 3.9.6.30:
Geocoding
Fixed an edge case that could cause calls to Telogis.GeoBase.StreetData.GetCrossStreets() to
throw a NullReferenceException for streets in border areas where two GBFS files meet.
One Platform for Location Intelligence
Page 25
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
GeoBase 3.9.6.25 Release Notes
Changes made from version 3.9.6.20 to 3.9.6.25:
GeoStream
Fixed an issue which could result in the GeoStream server entering a state where it returns HTTP 500 Internal Server Error to all JSON requests, and logs erroneous messages stating that
repository.config cannot not be found. As a consequence of this fix, GeoStream will no longer detect
changes made to repository.config during runtime, and a recycle of the application pool used by
GeoStream is required before any changes will be reflected by the server.
Fixed an issue in GeoStream exception handling where a GeoStreamRPCException could fail to provide
useful diagnostic detail.
Routing
Improved the memory efficiency of the Telogis.GeoBase.Routing.Route class when working with
Telogis.GeoBase.Routing.RoutingStrategy objects. The default Telogis.GeoBase.Routing.
RoutingStrategyFastest object created with a new Route instance will now be automatically
disposed, either on disposal of the parent Route, or when an alternative RoutingStrategy object is
assigned to the Strategy property. Note that this only applies to the default RoutingStrategy
instance, and timely disposal of any other RoutingStrategy objects remains the responsibility of your
application.
Fixed a slow memory leak associated with routing and route highlight operations.
General
Updated the GeoBase hotfix installation script to adjust the handling of GeoStream configuration files,
such as web.config and layers.config. Previously, the script automatically replaced all configuration
files with updated default files; this has now been changed to leave existing files unchanged, with the
previous behavior now available via a command line argument. The "Installing a GeoBase Hotfix"
documentation page has been updated to reflect these changes, and to provide best practice advice for
updating GeoStream configuration files.
One Platform for Location Intelligence
Page 26
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
GeoBase 3.9.6.20 Release Notes
Changes made from version 3.9.6.15 to 3.9.6.20:
Geocoding
Fixed a problem that prevented US addresses containing cardinal directions as part of their name, such
as West Lane or S Street, being found by the geocoder.
Routing
Fixed an issue which could result in inefficient routing at junctions for emergency vehicles.
GeoBase 3.9.6.15 Release Notes
Changes made from version 3.9.6.10 to 3.9.6.15:
Routing
Fixed an issue which could cause an OutOfMemoryException to be incorrectly thrown when performing
route matrix calculations.
GeoStream
Fixed an issue that could prevent repository.Config loading when starting a GeoStream server.
GeoBase 3.9.6.10 Release Notes
Changes made from version 3.9.6.5 to 3.9.6.10:
Routing
Fixed a problem that could cause Telogis.GeoBase.Routing.Route.OptimizeStops and Telogis.
GeoBase.Routing.IRoute.OptimizeStops overloads to fail with a RouteCanceledException
exception.
One Platform for Location Intelligence
Page 27
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
GeoStream
Fixed a fault that resulted in duplicate map tiles being stored in the GeoStreamCache when using a map
style with no auxiliary layers.
JavaScript
Fixed a problem that caused an error to be thrown when left-clicking the map in Internet Explorer 7 and 8
browsers.
Fixed an issue that prevented tiles scaling when using Telogis.GeoBase.MapLayers.TileZoom in
Internet Explorer 7 and 8 browsers.
GeoBase 3.9.6.5 Release Notes
Changes made from version 3.9.6.1 to 3.9.6.5:
JavaScript
Added momentum panning to maps. When panning the map using a drag, the map will now continue to
pan with decreasing speed until coming to a complete stop.
Added two new functions, setResizeAnchor and getResizeAnchor to the Telogis.GeoBase.
Widgets.Map class. These functions set and get the anchor point (the relative screen coordinates) that
will remain stationary following a map resize. If an anchor point is not specified, the map center will be
used.
Updated map zooms to support a maximum of one change in zoom level in the same direction every
250ms. This restriction prevents uncontrolled zooming across the full range of zooms on touch-enabled
devices
Fixed a problem with the tutorial.advanced-balloon.aspx JavaScript example that prevented pin
balloons re-positioning automatically when moved to the far-right edge of the map.
Fixed a problem that caused the tutorial.advanced-routing.aspx JavaScript example to crash in
Internet Explorer 8.
Fixed a JavaScript problem that prevented objects selected on the map from losing focus when
subsequently clicking the map. This caused these objects to exist in an undefined state in certain
frameworks; for example, ext.
Fixed a fault in the Telogis.GeoBase.MapLayers.TileLayer class that could cause tile image
elements to persist after they were no longer needed when changing between satellite and map modes.
Fixed a TypeError exception thrown when calling the Telogis.GeoBase.EventHandler.append and
Telogis.GeoBase.EventHandler.appendOnce functions without arguments.
One Platform for Location Intelligence
Page 28
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
Fixed a problem that caused incorrect zooming to a BoundingBox around the anti meridian.
GeoStream
Added a new statistics page, statsDescriptions.aspx, to the root of the GeoStream server directory.
This page is accessed by clicking any of the linked column titles in the stats.aspx page, and is used to
describe the statistical information displayed below each column.
Routing
Improved the route calculation speed of GetDirections and GetPath methods, and the accuracy of
routes generated by GetQuickDirections methods.
Improved route highlighting by removing penalties for speeding. If a driver is traveling quickly on a
highway ramp, or slowly on a highway next to a ramp, the highlight will remain on the correct roadway.
Geocoding
Added the ability to identify cross streets that occur on roundabouts.
Improved geocoding performance when searching for addresses that contain apostrophes, such as 'sGravenweg and 't Stegeslag.
Fixed an issue that prevented postcode searches without spaces returning results in the Netherlands.
Fixed a problem that prevented some addresses using English city names (for example Moscow and
Lisbon rather than Moskva and Lisboa) being found in NAVTEQ map data.
Mapping
Fixed a problem when viewing maps in 2.5D perspective that could result in partial drawing of polygons.
Fixed a WPF MapControl issue that prevented maps rendering correctly with a Windows Magnification
setting other than 100%.
Fixed a problem that prevented WPF MouseEventHandlers firing.
Fixed a WPF MapControl queuing problem that could cause the map to pan even after a user had
finished panning the map.
Mobile
Fixed a problem that could cause temporary files to accumulate in the root directories of mobile devices
rather than being deleted on exit.
Alchemy
Improved performance when importing corrupt or poorly formed shapefiles. An exception message will
now be thrown, and information about the reason for failure displayed. No partial import attempts will be
made.
One Platform for Location Intelligence
Page 29
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
Fixed an Alchemy problem that prevented prefixes in Sweden and Denmark that used the characters 'Ø',
'Ä' or 'Ö' being recognized.
Fixed an Alchemy issue that incorrectly joined simplified major streets.
Fixed an Alchemy problem that could cause city names entirely composed of some letters to be treated
as Roman numerals; for example, 'Lviv' in the Ukraine.
Fixed a problem that prevented the CREATE LOCALIZER statement functioning correctly.
General
Fixed a ReentrantTransactionException exception that could be thrown when querying a
transactional database in multi-threading environments.
GeoBase 3.9.6.1 Release Notes
Changes made from version 3.9.6 to 3.9.6.1:
Added the Telogis.GeoBase.StreetData.GetStreetObjects method. This method returns an array
of streets. Using the Telogis.GeoBase.Street.Links property, this method allows street link data,
such as RouteFlag information, to be retrieved directly.
Fixed a routing problem in Greece that prevented optimal directions being returned by GetDirections
methods.
Fixed a problem that could prevent GeoBase licenses activating correctly if stored in a read-only location.
Fixed a Telogis.GeoBase.MapLayers.CanvasLayer JavaScript problem that resulted in errors if all
points on a Shape were clipped.
Removed several unnecessary Telogis.GeoBase.MapLayers.CanvasLayer updates, increasing the
speed of the Telogis.GeoBase.MapLayers.CanvasLayer.setLineWidth, Telogis.GeoBase.
MapLayers.CanvasLayer.setLineColor and Telogis.GeoBase.MapLayers.CanvasLayer.
setFillColor functions when drawing objects on a layer.
One Platform for Location Intelligence
Page 30
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
GeoBase 3.9.6 Release Notes
Changes made from version 3.9.5.3 to 3.9.6:
GeoStream
Added the new RouteHighlightTimeLimit GeoStream configuration key. This key specifies the
maximum time that may be used for GeoStream route highlighting operations, in seconds. To enable
this feature, insert <add key="RouteHighlightTimeLimit" value="n" />, where n is the maximum
duration in seconds, into the appSettings block of the GeoStream Web.Config configuration file.
Added the new TrafficSuperTileMaxCacheSize GeoStream configuration key. This key specifies the
maximum number of traffic supertiles that will be cached in memory. Defaults to 50 tiles. To enable this
feature, insert <add key="TrafficSuperTileMaxCacheSize" value="n" />, where n is the
maximum number of traffic supertiles to cache, into the appSettings block of the GeoStream Web.
Config configuration file.
Added the new SuperTileMaxCacheQueue GeoStream configuration key. This key specifies the
maximum number of supertiles that will be cached. Defaults to 100 tiles. If a request is made that will
require rendering a new tile, and the queue size has reached its specified limit, the request will be
rejected. This feature ensures that all supertiles are cached, preventing multiple rendering of the same
supertile. To enable this feature, insert <add key="SuperTileMaxCacheQueue" value="n" />,
where n is the maximum number of supertiles to cache, into the appSettings block of the GeoStream
Web.Config configuration file.
Added the new Telogis.GeoBase.Addresses.RemoteAddressFormatter class. This class
duplicates the functionality of the existing Telogis.GeoBase.Addresses.AddressFormatter class
(that is, component address formatting by culture) for GeoStream use.
Fixed an issue that could result in incorrect tile expiration dates.
Fixed a problem that caused poor tile alignment at very high zoom levels. Maximum zoom level is now
restricted.
Fixed a race condition in the traffic server.
Fixed a problem that could result in an IOException when accessing the disk cache.
One Platform for Location Intelligence
Page 31
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
JavaScript
Updated the JavaScript client to use standard JSON when communicating with the GeoStream server.
Previously, the client used a custom implementation of JSON that could not be parsed by standard tools.
Using standard JSON, JavaScript developers can more easily examine GeoStream messages, which
may assist with application development. As a result of this change, JavaScript clients are no longer
compatible with 3.9.5.x server, or older. The GeoStream JSON API remains a proprietary internal
interface, and only applications that use one of the GeoStream clients provided by GeoBase are
supported.
Added the new Telogis.GeoBase.MapLayers.RouteLayer.getPath function. This function retrieves
the path being displayed on a route layer.
Added the new Telogis.GeoBase.Canvas.Group class. This class allows primitive shape objects to
be grouped, then drawn or hidden together on a canvas.
Removed the Telogis.GeoBase.MapLayers.Tile class. The functionality of this class is now
managed by the Telogis.GeoBase.MapLayers.TileLayer class.
Improved the quality of Telogis.GeoBase.MapLayers.RouteLayer when a route to be displayed
contains a large number of points.
Improved the speed of Telogis.GeoBase.MapLayers.DivObject when creating large numbers of DIV
objects on an ObjectLayer.
Improved the structure of the Telogis.GeoBase.MapLayers.TileZoom class by removing several
extraneous functions (clear, isActive, run, setSize and setup). The capabilities of these removed
functions are now provided by Telogis.GeoBase.MapLayers.TileLayer.
Improved Telogis.GeoBase.MapLayers.TileLayer performance when panning and resizing the
map, and when changing the source of the tiles (for example, toggling satellite mode). In addition,
Telogis.GeoBase.MapLayers.TileLayer's internal loading queue will only be requested if the tiles
will be visible. This greatly improves performance when zooming over multiple levels, or performing
cumulative drag pan operations on the map.
Improved Telogis.GeoBase.MapLayers.TileZoom performance. This class can now animate over
multiple zoom levels. Previously if the map was zoomed into while an animation was in progress, or the
tiles for that zoom level had not been fully loaded, the map would briefly disappear.
Fixed a problem that caused the Telogis.GeoBase.POI.getType function to return the POI type's
name as a string, rather than a number representing the POI type.
Fixed a problem that caused layers to be redrawn at the wrong size, and placed at the wrong location,
when the Telogis.GeoBase.MapLayers.AbstractLayer.hide function was called more than once
before calling Telogis.GeoBase.MapLayers.AbstractLayer.show.
Fixed the incorrect positioning of labels after calling Telogis.GeoBase.MapLayers.CanvasLayer.
hide and then Telogis.GeoBase.MapLayers.CanvasLayer.show.
One Platform for Location Intelligence
Page 32
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
Fixed an issue that could cause random tiles to be shown at the top of the map at the highest zoom
level.
Fixed an issue that caused the map to disappear briefly when resizing the map. A map can now be
continuously resized without the map's tiles flickering.
Fixed a problem that prevented canvas layers responding to mouse events in Internet Explorer 7.
Fixed a map issue that resulted in tiles failing to reload after an update using the Telogis.GeoBase.
Widgets.Map.UPDATE_REDRAW property.
Fixed a Telogis.GeoBase.MapLayers.TileLayer issue that could prevent tiles being fetched from the
browser cache.
Fixed a map problem on touch-enabled devices that resulted in poor tile positioning during a pinch
zoom, and a problem that caused the pinch zoom center of the map to be incorrect if the map was offset
from the page origin.
Fixed a problem in the example tutorial.geofences.aspx that caused an RPC exception to be
thrown when using the Snap to streets menu option.
Fixed a faulty path that stopped the JavaScript example page tutorial.reauthenticate.aspx
displaying the map after re-authenticating.
Fixed a problem that prevented geocoding in the JavaScript example page tutorial.demo.aspx when
viewed in the Safari web browser, and that could eventually lead to the computer becoming
unresponsive.
Fixed a problem that stopped RoadCrossingBehavior settings affecting the routing strategy in the
JavaScript example page tutorial.advanced-touting.aspx.
Fixed a problem in the Telogis.GeoBase.MapLayers.RouteLayer that prevented new route stops
being rendered on the map if dragged to a new location.
Routing
Added the new Telogis.GeoBase.RouteRoutingStrategy.ObeyPreferredConstraints property.
When set to true, the routing engine will use 'preferred' constraints (for example certain freeways) where
available. Most preferred constraints are truck-only, thus selecting this option will typically route trucks
along freeways more often.
Marked the unused Telogis.GeoBase.RouteStop.IgnitionOn property as obsolete.
Marked Telogis.GeoBase.Traffic.TrafficFetcher.GetLatestTraffic(DateTime) and
Telogis.GeoBase.Traffic.TrafficFetcher.GetLatestTraffic(DateTime,TimeSpan) as
obsolete. These methods have been replaced with Telogis.GeoBase.Traffic.TrafficFetcher.
GetLatestTraffic() and Telogis.GeoBase.Traffic.TrafficFetcher.GetLatestTraffic
(TimeSpan).
Improved the quality of cross-region routing on functional class 5 roads when using USA regional map
data files.
One Platform for Location Intelligence
Page 33
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
Fixed a problem that caused poor quality, off-road route highlighting.
Fixed a problem that could incorrectly prohibit right-hand turns for trucks.
Fixed a route highlighting and fitting problem that could be generated when routing along multi-level
bridges.
Fixed poor quality routing across USA state borders with TomTom map data.
Fixed a problem that caused duplicate route instructions to be returned when calling Telogis.
GeoBase.Routing.Route.GetDirections.
Geocoding
Added support for string normalization for GBFS files that support normalization. This feature allows the
geocoder to recognize different strings as representing a common base value, for example '15', '15th',
'XV', 'Fifteen' and 'Quinze'; and 'St' 'Sta' and 'Saint'.
Improved the quality of forward geocoding in Brazil and the USA.
Fixed an OutOfMemoryException exception thrown when searching for some USA addresses in
GeoBase 3.9.5.3 using TomTom map data.
Fixed a problem that caused extremely slow geocode results in large countries such as Germany.
Fixed a problem that prevented state abbreviations working for component geocoder calls within the
USA. One-line and structured geocode overloads were unaffected by this issue.
Mapping
Improved city labeling on supertiles. Label points near the edge of a supertile will now be rendered
correctly at all zoom levels.
Fixed a Telogis.GeoBase.Mapping.ArrowRenderer class problem that caused a misalignment
between lines and their associated ArrowProperties.
Fixed a NullReferenceException exception thrown when clicking a Telogis.GeoBase.CompassRose
on a Telogis.GeoBase.WPF.MapControl.
Fixed a problem that generated map images with semi-transparent borders on their left and top edges
when calling the Telogis.GeoBase.Map.GetMap function.
Mobile
Implemented a page cache to optimize read operations on mobile devices. This change significantly
increases the time before the read endurance limit of an installed SD card is reached.
Alchemy
Fixed a problem that could result in errors when building geometries that were perfectly vertical or
horizontal.
One Platform for Location Intelligence
Page 34
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
Sample Applications
Fixed a NullReferenceException exception thrown by the WPFMapSample sample solution (Start | All
Programs | Telogis GeoBase Developer's Kit | Sample Code & Projects | Projects | WPF Map) when
attempting to save a map image (File | Save Map Image).
General
Added the new Telogis.GeoBase.LatLon.ZLevel property. This property is used to get or set the zlevel of a LatLon.
Fixed a minor display problem that caused instruction text on MSI panels to overlap.
Fixed a problem that could result in an OverflowException when calling the Telogis.GeoBase.
GeoFence.PolygonFence.SnapToStreets method.
GeoBase 3.9.5.3 Release Notes
Changes made from version 3.9.5.2 to 3.9.5.3:
GeoStream
Added the Telogis.GeoBase.GeoStream.Server.Authenticator class containing two new
methods, SetUpRepository and GetUsername. These methods allow default thread repositories to be
set up for individual user accounts using an authentication token and a string array containing the
datasets requested, and for the username of the user making an HTTP request to be retrieved.
Added two new configuration keys, FlipNavteqTraffic and InvertNavteqTraffic, to the web.
config GeoStream configuration file. These keys are used to invert the flow of traffic displayed on maps
if required (typically resulting from changes made to NAVTEQ traffic data).
Fixed a memory leak associated with traffic threads.
JavaScript
Removed the optional arguments units and culture from the Javascript function Telogis.GeoBase.
Routing.Route.getQuickDirections. Text directions are not generated for the GeoStream RPC
method GetQuickDirections, resulting in an exception being thrown if these arguments were
provided.
Fixed an 'access denied' error returned by Internet Explorer 8 and 9 when using cross site scripting and
calling Telogis.GeoBase.Routing.Route.getQuickDirections.
Fixed a problem that caused label text on a Telogis.GeoBase.MapLayers.CanvasLayer to move
when redrawn after a map zoom.
One Platform for Location Intelligence
Page 35
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
Fixed a cosmetic problem that caused new route stops to have a heading of 1080 degrees. Route stops
will now have an initial heading of 0 degrees.
Routing
Fixed a problem that could cause route highlights to travel on non-existent or illegal links, resulting in offroad highlights.
Geocoding
Fixed a problem that resulted in calls to GetRegions returning unsorted results. The regions returned
will now be sorted in alphabetical order.
Fixed a problem that prevented some cities and streets being found by the geocoder.
Fixed a problem that could prevent results being returned, or cause an exception to be thrown, when
geocoding with multiple USA regional map data files installed.
Improved the quality of forward geocoding in the USA with normalized data.
Sample Applications
Fixed an ArgumentOutOfRangeException exception thrown by the WPFMapSample sample solution (
Start | All Programs | Telogis GeoBase Developer's Kit | Sample Code & Projects | Projects | WPF Map
) when zooming the map without the Perspective checkbox selected.
GeoBase 3.9.5.2 Release Notes
Changes made from version 3.9.5.1 to 3.9.5.2:
GeoStream
Fixed a problem that prevented labels appearing on maps if auxiliary layers were used.
GeoBase 3.9.5.1 Release Notes
NOTE: GeoBase 3.9.5.1 includes important updates present in previous 3.9.3.3 and 3.9.3.4 hotfix releases.
These hotfixes include features and improvements that were not incorporated into previous public releases.
Please read the release notes for these hotfixes for more information.
Changes made from version 3.9.5 to 3.9.5.1:
Improved the quality of forward geocoding in the USA.
Improved forward geocoding to allow streets located near city points to be found.
One Platform for Location Intelligence
Page 36
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
Fixed a problem that could result in polygons being displayed at incorrect locations on a map, caused by
distorted results from LatLontoXY methods.
Fixed a race condition in the Telogis.GeoBase.Navigation.SimulatedGps class when resetting an
instance using the Dispose or PowerDown methods.
Fixed a problem that caused too many departure notifications in directions lists when routing.
Fixed a DrillDown Geocoder problem that caused a null reference exception to be thrown when using
TomTom USA map data.
Fixed a DrillDown Geocoder problem that prevented street queries on the boundaries of regions
returning complete street number ranges.
GeoBase 3.9.5 Release Notes
Changes made from version 3.9.4.1 to 3.9.5:
JavaScript
Added the Telogis.GeoBase.Routing.VehicleSpec class to the JavaScript API. This class is used to
describe the physical specifications of a vehicle and is used to enable advanced routing with Truck
Attributes.
Added the ability to position balloon tags on the vertical edge of a balloon, in addition to the horizontal
edge. The Telogis.GeoBase.MapLayers.Balloon Config configuration object now accepts a
tagAlign argument that accepts values of TAG_ALIGN_AUTO, TAG_ALIGN_HORIZONTAL or
TAG_ALIGN_VERTICAL. This determines whether the tag is place horizontally (top or bottom of balloon)
or vertically (to the side of the balloon). TAG_ALIGN_AUTO will typically place the tag horizontally unless
the content of the balloon is so large that it will not fit above or below the image object.
Added Telogis.GeoBase.SpeedUnit and Telogis.GeoBase.TimeUnit enumeration to the
JavaScript API, and corresponding utility functions for unit conversions (convertTimeUnits and
convertSpeedUnits in Telogis.GeoBase.MathUtil).
Updated the Telogis.GeoBase.DistanceUnit property KNOTS to NAUTICAL_MILES. Knots is a unit of
speed, not of distance.
Fixed a problem that could cause WMS tiles to be duplicated on the map when maximizing the browser
window.
Updated the balloonConfig configuration object (used to configure the content of balloons on map
pins) to return DOM objects with either content or contentFunc() properties.
Fixed a problem that caused balloons to throw an error in Firefox and Chrome when the config property
show was set to true.
One Platform for Location Intelligence
Page 37
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
Fixed a Telogis.GeoBase.MapLayers.CanvasLayer problem that caused a polyline to be shown
when the layer was updated, after the line had been hidden.
Fixed a Telogis.GeoBase.MapLayers.CanvasLayer problem that prevented polylines updating
correctly following a large map pan.
Fixed a stack overflow error thrown in Internet Explorer 7 and 8 browsers when zooming in and out of
maps.
Fixed a problem in the tutorial.minimap.aspx JavaScript example that caused the main map to
zoom in too close, rendering is unusable, when the minimap was also zoomed into.
Fixed a problem in the tutorial.demo.aspx JavaScript example that required a location to be
geocoded twice, after panning over large distances, in order to center the map on the location.
Fixed a problem that could prevent tiles updating when panning or zooming a map in Chrome or Safari
browsers. This fix was accomplished by disabling tile request cancellation by the client. This feature will
be reinstated in a later release.
GeoStream
Added the ability to set an IP range mask in the Telogis.GeoBase.Authentication.Authenticator
class function getAuthToken (using the mask property).
Added logging of server performance metrics (for example, memory and processor usage). GeoStream
metric logging is enabled using the LogServerPerformance configuration key (by inserting <add
key="LogServerPerformance" value="true" /> into the appSettings block of the GeoStream
Web.Config configuration file). Once enabled, text format logs (.log extension) will be stored in the root
of the GeoStreamcache folder and updated every minute.
Updated the default opacity value of the GeoStream 'Cloud' WMSLayer (in the layers.config file) to 75
in order to make satellite cloud imagery more visible on the map.
Fixed an IOException that could be thrown if repeated cache requests were made for the same tile, and
a NullReferenceException that could be thrown when disposing of a supertile.
Navigation
Fixed several navigation arrow display errors that caused unnecessary directional arrow offsets when
navigating roundabouts, performing u-turns on narrow street, or taking sharp turns; fixed a problem that
caused turn arrows to extended arbitrarily behind the selected map route (that is, for arrows to have 'tails'
that extended off road); fixed a problem that caused poor NavigationManager arrows if the destination
was very close to a turn; and fixed a problem that prevented an arrowhead being displayed if the route
destination was located at the center of the street. As part of these changes, the logic behind turn arrows
has been updated to improve their quality and stability.
Fixed a problem in all language packs other than English that prevented distances to upcoming turns
being displayed in instructions.
One Platform for Location Intelligence
Page 38
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
Mapping
Updated point features in order to make them renderable on a map with only a label. The feature no
longer also requires a visible dot.
Fixed a NullReferenceException thrown if a BalloonPushPin was created at a location without
corresponding address data.
Fixed a ZoomToBoundingBox(BoundingBox, Int32) problem in the Telogis.GeoBase.WPF.
MapControl, Telogis.GeoBase.MapCtrl and Telogis.GeoBase.Map classes that caused an
incorrect zoom level and/or location when zooming from a high zoom level to a small BoundingBox if the
Projected property was set to false.
Fixed a zooming problem that caused an outward zoom using a mouse scroll-wheel to zoom out twice
as far as an equivalent inward zoom using a scroll-wheel.
Fixed an InvalidOperationException thrown by the WPF MapControl when using remote data and a
location without cached map tiles.
Fixed a problem that prevented the WPF MapControl's Cursor property from permanently hiding the
mouse cursor (value set to None).
Routing
Fixed a route highlighting problem that could cause the routing engine to lock up if a large number of
points were located near constraints.
Removed an unnecessary five second route penalty applied automatically when traveling through stop
intersections.
Fixed a condition that could allow a route highlight to contain missing (not highlighted) sections.
Fixed a problem that could result in an IndexOutOfRangeException when routing through some Tintersections.
Geocoding
Fixed a problem that prevented some single-letter street names being found by the geocoder.
Fixed a forward geocoder issue that prevented suburbs being found in some countries.
Fixed a problem that prevented some streets not being returned by the Drill Down GeoCoder.
Alchemy
Updated Alchemy to allow searching of imported indexes with normalized formatting. This feature may be
used to replace white space or convert lower-case to upper-case characters, for example. Normalization
is only applied to string queries.
Fixed a problem that caused an exception to be thrown when indexing data imported with multiple
select statements.
One Platform for Location Intelligence
Page 39
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
GeoBase Mobile
Fixed a mobile memory allocator bug caused by allocating memory blocks larger than 512 KB.
Map Explorer and Sample Applications
Fixed a geocoding problem that could cause incorrect geocode results after changing GBFS map files
without then re-starting the Map Explorer application.
Fixed an error thrown when the WPF Map sample project (located in Telogis GeoBase Developer's Kit |
Sample Code & Projects | Projects | WPF Map) was run or built in Debug mode.
General
Removed an unnecessary file, telogis.geobase.plugins.dll, from the GeoBase MSI installer.
Fixed a Telogis.GeoBase.DataQuery.QueryStreets method problem that prevented some streets
being found when querying with a BoundingBox.
Fixed a problem that prevented the Telogis.GeoBase.Geometry.Polygon.Intersects(LatLon[])
and Telogis.GeoBase.Geometry.Polygon.Ring.BoundaryIntersects(LatLon[])methods
returning accurate intersection results.
GeoBase 3.9.4.1 Release Notes
Changes made from version 3.9.4 to 3.9.4.1:
Added a new GeoCodeArgs class to the Telogis.GeoBase.Geocoding namespace. This addition allows
GeoCoding using a GeoCodeArgs object that includes the ability to use an external GeoCoder. Three child
subclasses, ExtendedStructuredGeoCodeArgs, OneLineGeoCodeArgs, and StructuredGeoCodeArgs
have also been added as part of this update.
GeoBase 3.9.4 Release Notes
Changes made from version 3.9.3.2 to 3.9.4:
New Features
Added the new Telogis.GeoBase.Indexes.WordLevenshtein and Telogis.GeoBase.
Transactional.WordLevenshteinFilter classes to implement fuzzy string matching for
Transactional (.gbtx) databases using the WordLevenshtein algorithm.
One Platform for Location Intelligence
Page 40
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
General
Fixed a race condition that occurred when the action passed to AsyncResult.Begin completed on
another thread before AsyncResult.Begin returned.
Updated the GeoBase SDK MSI to no longer copy the obsolete 'support' folder and its contents into the
destination computer's 'GeoBase' folder.
Fixed a problem that could cause Visual Studio to crash in Design view if referencing different versions of
the geobase.net.dll library.
GeoCoding
Added a new CrossStreetIntersection property to the Telogis.GeoBase.GeoCodeFull class. This
property returns the LatLon at which the nearest cross street intersects with a specified location on a
street link.
Mapping
Fixed a problem that could produce an infinite loop when zooming to a bounding box if the bounding box
was invalid.
Fixed a map tile problem that caused the unnecessary upload of the default map style to the server
whenever a .NET map tile was first used.
Routing
Fixed a routing problem on dead end streets. If a route location starts in a dead end street with an initial
heading toward the dead end, we now immediately perform a u-turn toward the intersection rather than
routing to the dead end and back.
Fixed a condition in the routing engine that could result in incorrect and badly formed routes being
returned.
Fixed an atypical routing error caused by links without names that could result in null reference exception
being thrown.
Fixed a problem that occurred in English and Portuguese language directions when exiting a roundabout
onto a street without a name. Previously, an incomplete sentence would be produced; for example, 'Take
first exit off roundabout onto'. If the exit street has no name, 'onto' (or 'em direção á' for Portuguese) will
now be omitted from the instruction ('Take first exit off roundabout').
Fixed a problem that could prevent routing across international borders.
Alchemy
Fixed a problem introduced in Telogis WorkBench 3.9.3 that resulted in poor application performance
when carrying out data-related activities.
One Platform for Location Intelligence
Page 41
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
Fixed an issue that prevented importing data into the same table more than once.
GeoStream
Improved GeoStream tile generation, significantly decreasing the time required to respond to requests.
Improved map zooming speed and reduced server load when using the mouse scroll-wheel. Tile
requests are no longer queued when zooming up or down multiple levels, and a Load event is now
triggered on the TileLayer when all requests have been successfully responded to.
Updated the GeoStreamCache such that the contents of one SuperTile is now contained within a
single directory, with a maximum of 1000 sub-directories per directory.
Fixed a problem that prevented the JavaScript property Telogis.GeoBase.MapLayers.Balloon.
DRAGGABLE allowing balloons to be re-positioned on a map.
Fixed a default u-turn compatibility issue when using licenses that do not allow custom turn penalties. A
20 second penalty can now be applied to older GeoStream versions (pre 3.9.1) without a license
exception being thrown.
Fixed a WPF problem that required progressive calls to Telogis.GeoBase.WPF.MapControl.
ZoomToBoundingBox in order to zoom to the correct map level.
Fixed a problem caused by Telogis.GeoBase.Widgets.Map.shade being called without a color
definition. This issue resulted in the mini-map in the tutorial.demo.aspx JavaScript example being
shaded by a rectangle with zero opacity.
Fixed a bug that prevented more than one map parameter being set at once.
Removed the limitation of JavaScript routes to a maximum of 50 stops. The number of stops in routes is
now unrestricted.
Fixed a backwards compatibility issue with licenses that do not allow custom turn penalties. A 20 second
penalty can now be set using older GeoStream versions.
Map Explorer and Sample Applications
Updated the generic warning window displayed by Map Explorer in the event of an error. These will now
ask if an error report should be sent, and include 'Yes' and 'No' buttons rather than the previously used
'OK' and 'Cancel'.
GeoBase Mobile
Fixed a problem that could result in memory corruption when running multiple processes using the
mobile allocator at the same time on mobile devices.
One Platform for Location Intelligence
Page 42
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
GeoBase 3.9.3.4 Release Notes
Changes made from version 3.9.3.3 to 3.9.3.4:
GeoCoding
Added the new IGeocodeResult interface to the Telogis.GeoBase.Addresses namespace.
IGeocodeResult contains two properties, FoundAddress and RawAddress, that are used to retrieve the
address result returned (as an IStructuredAddressData) and the original address data (as an
IAddressData) supplied for a geocoding operation, allowing easy comparison of the two.
Added the new IAddressSerializer interface to the Telogis.GeoBase.Addresses namespace.
IAddressSerializer contains two new methods, ToDatabaseString and FromDatabaseString,
that are used to convert an IStructuredAddressData object to a string and vice versa. These methods
allow address data generated from geocoding operations (IGeoCodeResults) to be stored in, and
retrieved from, a database. As part of this change the new IJSONSerializable interface has also been
added to the Telogis.GeoBase.Serialization namespace. IJSONSerializable contains two new
methods, FromJSON and ToJSON, and the JSONName property, that are used to serialize and deserialize
IAddressData objects.
Added the new IAddressFormatter interface to the Telogis.GeoBase.Addresses namespace.
IAddressFormatter contains eight new methods, GetCountryString, GetLabelNames, GetLines,
GetLinesWithCountry, GetLongLineForm, GetLongLineFormWithCountry,
GetOrderedComponents, and GetShortLineForm. These methods return address values contained
within an IGeoCodeResults object (generated from geocoding operations) as string data.
Added the new IStructuredAddressData, IAddressData, IStreetAddressData and
IOneLineAddressData interfaces to the Telogis.GeoBase.Addresses namespace. These members
are used to represent address data within IGeocodeResult objects returned by geocoding operations.
IAddressData allows address components (such as street address, postcode, state, country, and
location) to be retrieved. IOneLineAddressData represents an address as a single line of text.
IStructuredAddressData and IStreetAddressData represent, respectively, fully or partially
structured street addresses.
Routing
Improved general routing and route highlighting quality.
Reduced the time taken to cancel a route, and corrected a problem that could leave route objects in an
invalid state once canceled.
One Platform for Location Intelligence
Page 43
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
GeoStream
Added the new field, MemoryLimit, to the Telogis.GeoBase.Routing.Route class. This member
defines the maximum memory usage permitted, in megabytes, when calculating a route. Defaults to 0,
indicating no limit. GeoStream servers may adjust this memory limit using the RoutingMemoryLimit
configuration key (that is, by inserting <add key="RoutingMemoryLimit" value="n" /> , where n is
a number representing megabytes, into the appSettings block of the GeoStream Web.Config
configuration file).
Added targeted logging of GeoStream data requests for diagnostic purposes. This will log route
requests that take longer than 45 seconds; geocode requests that take longer than 5 seconds; regional
data requests (such as QueryPoi) that take longer than 3 seconds; general data queries that take
longer than 1 second, and requests of any other category that take longer than 200ms to return.
Requests with response times below these thresholds will not be logged. These logs are used for
informational purposes only, and do not indicate an error. GeoStream logging is enabled using the
ExceptionLogging configuration key (by inserting <add key="ExceptionLogging"
value="true" /> into the appSettings block of the GeoStream Web.Config configuration file). Once
enabled, text format logs (.log extension) are stored in the root of the GeoStreamcache folder.
Added the ability to cancel GeoStream route requests that do not return a result within a specified time.
Route cancellation is enabled using the RoutingTimeLimit configuration key (that is, by inserting <add
key="RoutingTimeLimit" value="n" />, where n is a number representing a time limit in seconds,
into the appSettings block of the GeoStream Web.Config configuration file). Route cancellation will
throw an RPCError error.
Added dynamic load balancing (task redirection) between GeoStream servers. This feature is enabled
using the RedirectConfig key (by inserting <add key="RedirectConfig" value="redirect.
config" /> into the appSettings block of the GeoStream Web.Config configuration file, and creating
a new redirect.config XML configuration file within the same directory. The redirect.config
configuration file specifies the types of JSON requests that can be assigned to another GeoStream
server, or to multiple GeoStream servers (with dynamic load balancing). For example, to specify routing
tasks be evenly distributed across three servers, but geocoding be restricted to only one of these three,
a redirect.config configuration file similar to the following should be used:
One Platform for Location Intelligence
Page 44
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
<Redirect>
<Method name="GetDirections" serverGroupId="routing"/>
<Method name="GeoCode" serverGroupId="geocoding"/>
<Servers>
<Server url="http://geostream.workerserver.1">
<MemberOf groupId="routing"/>
<MemberOf groupId="geocoding"/>
</Server>
<Server url="http://geostream.workerserver.2">
<MemberOf groupId="routing"/>
</Server>
<Server url="http://geostream.workerserver.3">
<MemberOf groupId="routing"/>
</Server>
</Servers>
</Redirect>
Updated the time values in GeoStream logs to use standard UTC formatting.
Fixed exception message popups that previously contained HTML code. These will now be displayed as
plain text.
GeoBase 3.9.3.3 Release Notes
Changes made from version 3.9.3.2 to 3.9.3.3:
Routing
Fixed a condition in the routing engine that could cause some input points to be ignored when creating a
route highlight.
GeoBase 3.9.3.2 Release Notes
Changes made from version 3.9.3.1 to 3.9.3.2:
New Features
Added a new Vendor property to the Telogis.GeoBase.StreetLink class. This property returns the
vendor of the street data containing a specified link.
One Platform for Location Intelligence
Page 45
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
General
Updated the GeoBase End User License Agreement (EULA). All customers are advised to re-read this
document.
Routing
Fixed an error in the routing engine that could occur when attempting to generate route highlights.
GeoStream
Updated the Links property of the Telogis.GeoBase.Street class. This will now return a value over
GeoStream, rather than null.
Fixed an accuracy problem with the Telogis.GeoBase.LatLon.toString method. When used, this
method will now print the location to six decimal places rather than to six significant figures.
Alchemy
Fixed a problem that caused Alchemy to incorrectly interpret a Norwegian character as Newline,
preventing scripts compiling successfully. Alchemy now reads using UTF-8 encoding.
GeoBase 3.9.3.1 Release Notes
Changes made from version 3.9.3 to 3.9.3.1:
New Features
Added a new batch script file to automate the installation of GeoBase hotfix files. This script will be
included only with hotfix archives without an MSI.
Added a new Validate method to the Telogis.GeoBase.Repositories.SimpleRepository class.
This method is used to check the integrity of a GBFS data file by calculating its MD5 checksum and
validating it against the checksum stored in the file.
General
Fixed a problem that could cause false speeding alerts when traveling along streets with bidirectional
speed data (that is, along streets with speed limits that differ according to direction of travel). In future
GBFS files, if the difference in directional speed limit is less than 10 (mph or km/h), the higher limit will
be used for both directions and the posted flag will remain true. If the difference is 10 or greater, the
average of the two will be used and the posted flag will be set to false.
One Platform for Location Intelligence
Page 46
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
GeoCoding
Improved GeoCoding of city names, including better recognition of cities with names separated by
spaces.
Fixed a problem that caused ambiguity errors when using the Telogis.GeoBase.DrillDownGeoCoder
class in VB.NET.
Fixed an error that could cause the return of only one result despite repeated calls to Telogis.
GeoBase.DrillDownGeoCoder.GetStreets.
Fixed a problem that prevented some streets being found when using a structured GeoCode with short
form state names.
Fixed a problem that prevented cross streets being found when GeoCoded using the structured API.
Mapping
Fixed a problem that could cause GeoBase to freeze when rendering railways using a custom map
style.
Fixed a problem that allowed the Telogis.GeoBase.MapCtrl.ZoomLevel property to function in local
mode. This property now works only in GeoStream mode.
Fixed a problem that could cause highway shields to be rendered too close together on a map.
Routing
Removed a condition that caused the route highlighter to travel off-road to get to a stop when it should
have continued along road surfaces.
Navigation
Added a new turn icon to indicate changing freeway lane from a left lane to a right lane. Previously, only
one lane change icon was used (illustrating a change from a right lane to a left lane) for any freeway lane
change type.
Fixed an announcement problem that could generate incomplete and grammatically incorrect navigation
instructions if the destination was less than five meters away.
GeoStream
Updated JavaScript maps so mini-maps that are attached to other, larger, maps will no longer display a
copyright mark.
Updated the behavior of scroll-wheel zooming in the Opera browser. This is now consistent with other
browsers (scroll up to zoom in, scroll down to zoom out).
Fixed a problem with the GeoStream-only installer that resulted in the langs folder failing to install.
One Platform for Location Intelligence
Page 47
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
Fixed a JavaScript problem that caused shaded Telogis.GeoBase.MapLayers.RegionShadeLayer
corners to move slightly when panning the map.
Fixed a problem that resulted in invalid argument errors being thrown in Internet Explorer 7 and 8 when
the map was zoomed out in the tutorial.demo.aspx and tutorial.minimap.aspx examples.
Fixed an issue that caused all XSLT objects in a query region to be updated unnecessarily when one of
the objects had previously shown its balloon content.
Fixed a problem that prevented Telogis.GeoBase.AbstractDOMEntity.toggleVisibility correctly
toggling visibility when applied to an XSLTObjectLayer that was initially hidden.
Fixed a problem that could cause balloon content to be displayed momentarily in the wrong balloon in
Google Chrome and Mozilla Firefox browsers if more than one XSLTObjectLayer was used and the
Telogis.GeoBase.MapLayers.XSLTObjectLayer.dynamicBalloonContent property was set to
true.
Removed the Telogis.GeoBase.Canvas.getUL and Telogis.GeoBase.Canvas.getBR functions.
Telogis.GeoBase.MapLayers.CanvasLayer.getPaddedUL and Telogis.GeoBase.MapLayers.
CanvasLayer.getPaddedLR should now be used when calculating the offset of the Canvas (wrapped
by a CanvasLayer) with respect to the Map.
Alchemy
Updated Alchemy to use NetTopologySuite rather than GeoTools. This change improves the robustness
of shapefile importing and error handling.
Updated Alchemy to suppress warnings if 1000 identical instances are generated. Other warnings will
continue to be logged. This change prevents the log file growing excessively.
Fixed an Alchemy problem that resulted in geometries loading automatically when opening a *.DBF file
(rather than a lower-case *.dbf file). Previously, only the table itself was loaded automatically and
pressing the Load Geometry button was required to load geometries. This behavior has been restored.
Fixed an issue that caused Alchemy to freeze when opening a shapefile if the map was not initially
visible.
Fixed an error in Alchemy's dress function that could cause letters in some names to be incorrectly
displayed in upper-case format.
One Platform for Location Intelligence
Page 48
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
GeoBase 3.9.3 Release Notes
Changes made from version 3.9.2.2 to 3.9.3:
New Features
Added a new GeoCode method, Telogis.GeoBase.GeoCoder.geoCodeStructured, for .NET and
JavaScript GeoStream clients. This new method is used to convert structured addresses to sets of
LatLon coordinates.
Added the ability to cancel/abort several Route class calculation methods with a new Telogis.
GeoBase.Concurrency.CancellationToken class. Methods that can now be canceled include
Telogis.GeoBase.Routing.Route.GetDirections overloads, Telogis.GeoBase.Routing.
Route.GetQuickDirections, Telogis.GeoBase.Routing.RouteMatrix (other than in GeoStream
mode) and Telogis.GeoBase.Routing.Route.GetRouteHighlight. When successfully canceled,
the method will throw a RouteCanceledException.
General
Marked the Telogis.GeoBase.Mobile.MobileNotifications class as obsolete.
Updated the MSI installer to remove four obsolete HTML files (manual.htm, Map.htm, test.htm and
sandbox.htm) previously installed in the GeoStream\server folder.
Fixed a memory leak and a deadlock related to garbage collection of Repository objects.
GeoCoding
Improved the performance of the Telogis.GeoBase.DrillDownGeoCoder, and extended the API to
support asynchronous DrillDownGeoCoder region searching. This functionality mirrors that provided for
asynchronous street searches, such as Telogis.GeoBase.DrillDownGeoCoder.
GetStreetSearcher. New methods include Telogis.GeoBase.DrillDownGeoCoder.
GetRegionSearcher, Telogis.GeoBase.DrillDownGeoCoder.BeginGetRegions, Telogis.
GeoBase.DrillDownGeoCoder.EndGetRegions, and Telogis.GeoBase.DrillDownGeoCoder.
AbortGetRegions
Updated the Telogis.GeoBase.DrillDownGeoCoder.GetRegions methods. These now return a
maximum of 100 results.
Fixed the GeoBase Simulator so it no longer throws an InsufficientPermissionsException when
using the Telogis.GeoBase.DrillDownGeoCoder without Administrator privileges.
Fixed several problems that prevented Telogis.GeoBase.DrillDownGeoCoder locating some streets
and street numbers.
One Platform for Location Intelligence
Page 49
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
Fixed the Telogis.GeoBase.StreetData.GetCrossStreets method. This method will now return all
cross streets that meet at an intersection. Previously, at intersections of three or more streets, one of the
intersecting streets was not returned (for example, where two physical roadways met at a 'T' intersection
but the horizontal roadway changed name at the intersection, only one of these two names would be
returned).
Fixed a DrillDownGeoCoder problem that resulted in successful GetRegions searches returning an
incorrect SearchResult status (TooManyResults rather than SearchCompleted).
Routing
Improved route highlighting behavior. Previously, depot visits (that is, multiple consecutive stops in the
same small area) were always approached from the closest link. This logic has been removed, and
stops at depots now receive no special handling. They will be approached from the candidate link
chosen using the standard stop methodology.
Improved route calculation speed. The routing engine will no longer avoid constraint violations within 500
meters of a stop. This change prevents searches for alternative routes when a stop can only be
accessed by violating a constraint; an action that typically results in the slower return of route results.
Updated the routing engine. It will no longer attempt to generate a new, alternative route if only
KeyAccess constraints are being violated as typically any alternate routes generated will also violate this
constraint.
Fixed a problem that generated erroneous 'Take Exit' instructions when a street link was a continuation of
a highway, but flagged as a ramp.
Fixed a problem that prevented GeoBase finding a route across a border that would have required the
use of one-way functional class five roads.
Fixed a directions problem that could prevent turn instructions being issued on highways that make
sharp turns at intersections.
Fixed a directions problem that caused bad instructions for roundabouts with more than five exits.
Fixed a directions problem that could cause turn instructions to be issued at a highway exit when the
route in fact continues along the highway.
Fixed route objects re-using routing networks.
Fixed various route highlighting problems, including highlights failing to snap to streets, highlighting
jumping between stops, and one-way links being given incorrect penalties.
Removed Telogis.GeoBase.Routing.ConstraintType enumeration.
One Platform for Location Intelligence
Page 50
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
Mapping
Added support for a Navigation-optimized embedded mobile map style for .NET desktops, called using
the new Telogis.GeoBase.MapStyle.MobileStyle property. This map style includes a night_mode
parameter that makes maps more suitable for display at night. Three properties are now available:
detailed, tileserver and night_mode.
Added four new mouse events to the Telogis.GeoBase.WPF.MapControl Windows Presentation
Foundation class. These new events are MouseDown, MouseUp, MouseLeftButtonDown and
MouseLeftButtonUp.
Improved street labels. Previously, long streets on large maps were labeled only once for each unique
street name. This caused some streets to appear unlabeled over much of their length. Labels will now
be drawn on these streets at regular intervals.
Improved highway shields. If a highway or major street has more than one name, for example a
European and a local country name, each of these names will be displayed on separate highway
shields. Dependent on map style.
Improved German highway shields. Shields for highways starting with 'A' are now blue with white text,
and those starting with 'B' light orange with black text. German highways are also labeled with both their
local names (beginning with 'A') and their European names (beginning with 'E') when both are known.
European highway names are labeled using green shields with white text.
Fixed a problem that prevented streets being drawn at low zoom levels when certain GBFS map files
were used together.
Fixed a problem that resulted in Auxiliary Layers being flattened onto the base map, even when these
layers were not being used. This flattening caused performance issues when panning the map.
Alchemy
Improved Alchemy's ability to import various data types into Transactional (GBTX) databases. Previously,
some polygons could not be imported, while others were imported but caused Telogis WorkBench to
throw exceptions.
Updated Alchemy to prevent importing of streets with LinkId values of 0 or 1. Customers using custom
data containing streets with LinkID values of 0 or 1 may need to update their data and/or their IMPORT
STREETS scripts. These values are reserved for GeoBase internal use.
Updated the Allegheny sample shape file data packaged with the SDK. This data no longer contains
street links with a LinkID value of 1, which cannot be imported or built.
One Platform for Location Intelligence
Page 51
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
GeoStream
Added JavaScript GeoStream client authentication that does not require the use of ASP.NET on the
application server. This is now provided natively by the JavaScript Telogis.GeoBase.Authenticator
class (using the format Telogis.GeoBase.Authenticator.getAuthToken(server string,
username string, password string, success function, error function)). Clients may now
move the JavaScript components of their applications onto separate Linux/Apache based servers.
Added the Telogis.GeoBase.Widgets.Map.setRotation function. This will rotate the map to a
heading, in degrees. The Telogis.GeoBase.Widgets.Map.PreRotate event is triggered on the map
immediately before the map rotation updates and Telogis.GeoBase.Widgets.Map.Rotate, when the
map rotates.
Added the Telogis.GeoBase.MapLayers.ObjectLayer.getAllObjects function, which returns an
array of all Telogis.GeoBase.MapLayers.AbstractObject instances on the Telogis.GeoBase.
MapLayers.ObjectLayer.
Added the Telogis.GeoBase.AbstractDOMEntity.TouchTap event. This is triggered on a GeoBase
JavaScript element when a Telogis.GeoBase.AbstractDOMEntity.TouchEnd event occurs within
500 milliseconds of its corresponding Telogis.GeoBase.AbstractDOMEntity.TouchStart event
and no Telogis.GeoBase.AbstractDOMEntity.TouchMove event was registered. This indicates that
the element was "tapped".
Improved the performance of Telogis.GeoBase.MapLayers.TileLayer. Rather than adding all Tiles
in the buffer to the DOM, we now add only those Tiles that are visible on screen. We also now modify
previous Tile DOM elements when calling a new Tile rather than removing them and adding entirely new
elements.
Updated the tutorial.routing.aspx JavaScript example by removing the 'Unknown' option from the
Directions Unit drop-down list.
Fixed a fault in Telogis.GeoBase.MapLayers.ObjectLayer where an object would not be shown on
the map if its size was greater than the set padding of 100 pixels. The padding is now dynamically
adjusted when an object is added to, or removed from, the layer. Padding is now always the maximum
width and height, respectively, of every object.
Fixed a fault in Telogis.GeoBase.MapLayers.ObjectLayer where an object would sometimes fail to
be shown if the map was zoomed out to world view.
Fixed a fault in Telogis.GeoBase.LatLon.equals, which affected LatLon value comparisons at
around 180 degrees longitude, with a set tolerance.
Fixed a route serialization problem that prompted some routes to fail.
Fixed a broken image in the tutorial.weatherdata.aspx JavaScript example when viewed in Internet
Explorer 7 and 8.
One Platform for Location Intelligence
Page 52
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
Fixed a problem in the tutorial.demo.aspx JavaScript example that caused balloons to disappear if
the map was panned or zoomed in the Safari browser.
Fixed a problem that caused map markers to disappear if the screen size was changed with the map
zoom level set to world view (zoomIndex of 0).
Fixed a problem that prevented maps being set to an initial Telogis.GeoBase.Widgets.Map.
zoomIndex value of 0.
Fixed a cosmetic problem with the anchor images used for left-aligned balloon map objects (that is,
those with hAlign set to Balloon.ALIGN_LEFT).
Map Explorer and Sample Applications
Fixed a Map Explorer problem when searching for an address in local mode or in GeoStream mode. The
map is now zoomed to a level that shows the location found and the streets around it. Previously, the
map was either zoomed in as close as possible, or out as far as possible.
Fixed a fault in the Add Point option for Fences in Map Explorer (right-click | Fence | Add Point). This
feature now works correctly when an initial polygon has been created that doesn't fully cover any streets
and Snap to Streets is then selected. Previously, points could not be added after the Snap to Streets.
Fixed a problem in the GeoBase Mobile Simulator (GeoBase Navigation) application (Start | All
Programs | Telogis GeoBase Developer's Kit | Example Applications | Navigator). The sample
application no longer displays a blank screen when setting the current location using the smart list box.
Fixed a problem that prevented the GeoBase Mobile Simulator application locating streets by postcode.
GeoBase 3.9.2.2 Release Notes
Enhancements and minor fixes
Traffic
Altered Telogis.GeoBase.Traffic.NavteqRealTimeTrafficSource so that the TMC codes in ID
elements within the traffic XML file are used in preference to those in LOCATION elements. The TMC
codes in ID elements are currently more reliable.
One Platform for Location Intelligence
Page 53
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
GeoBase 3.9.2.1 Release Notes
Enhancements and minor fixes
GeoCoding
GeoCode location (for example RouteStop aStop = new RouteStop(GeoCoder.GeoCode
("Cherry St, Los Angeles, CA", Country.USA)[0].Location);) is now always treated as
approximately 5.5 meters off the road, regardless of latitude. The directions generator has been
modified to recognize destinations as being to the side only if they are 5 meters or more off the road
("Destination is on the left/right after about..."). If the location is less than 5 meters from the side of the
road then it is regarded as straight ahead ("Destination is after about..." ).
Street-only GeoCode searches are now supported for small countries (those with fewer than 500,000
streets).
A GeoCoding problem that could cause an invalid LatLon to be returned, and an
InvalidLatLonException to be thrown, when trying to retrieve the location of a cross street has been
corrected.
Forward GeoCoding of USA addresses, including those containing the text 'Unit', 'Apt' and 'Blvd', has
been improved.
Routing
The performance and memory usage of routing, in particular when routing over long distances, has been
improved.
The RoutingProfile class, used to set speed profiles for functional classes when routing, is now
supported when using a GeoStreamRepository and over JavaScript.
A problem that could result in routing failures and an exception being thrown due to unexpected
intersection types when routing has been fixed.
Alchemy
GeoBase case sensitivity has been removed from GBTX (transactional) tables. The case used in CAM
files will no longer matter, as is the case for other data sources.
JavaScript
GeoBase's JavaScript features are now compatible with Android GingerBread (2.3) operating systems.
When panning JavaScript maps, if an invalid LatLon is passed in, an exception will now be thrown.
Previously, passing in an invalid LatLon would cause the map to be positioned incorrectly, but an error
would not be thrown.
One Platform for Location Intelligence
Page 54
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
A problem that could cause JavaScript maps to display duplicate tiles, or result in the rendering of tiles at
inappropriate locations, if a map was fully zoomed out and the area containing the map was larger than
the map itself has been corrected.
The map now displays correctly when GeoCoding an address in the tutorial.geocoder.aspx
JavaScript tutorial page. Previously, an immediate zoom and pan of the map could result in tiles failing to
display.
A stack overflow error thrown in Internet Explorer 7 and 8 browsers when zooming in and out of the map
in the JavaScript tutorial.advanced.routing.aspx tutorial has been corrected.
A problem that stopped routes updating automatically in Internet Explorer 7 and 8 browsers when using
the JavaScript tutorial.advanced.routing.aspx tutorial has been corrected.
Map Explorer
The Truck Attributes main menu option (Route>Truck Attributes) in Map Explorer is now always
enabled. In previous GeoBase 3.9 SDK releases this option was not selectable.
GeoBase 3.9.2 Release Notes
Enhancements and minor fixes
A new 'ein' wav audio file has been added to the GeoBase German language pack in addition to the existing
'eins' and 'einem' audio files.
GeoCoding problems that limited the ability to find intersections which are not cross streets have been
fixed.
Reverse GeoCoding speed has been significantly improved.
An error that prevented some streets being found by the DrillDownGeoCoder has been fixed.
US streets that include the name 'Parkway' are now found by the Forward GeoCoder.
The cities of Hof in Germany, and Preston and Acomb in the UK, are now found by the Forward GeoCoder.
A DrillDownGeoCoder issue that prevented some searches that used only postcodes and street names
returning results has been fixed.
Streets that are not within the town or city specified in the search text are no longer returned by the
DrillDownGeoCoder.
The RegionData.Location property no longer returns incorrect values when two regions with the same
name exist at the same level (such as 'England, North Yorkshire, Acomb' and 'England, Northumberland,
Acomb').
Postcode searches in South Africa using TomTom 12Q2 DrillDownGeoCoder data now return streets.
The GeoCodeAddress fields MinNumber and MaxNumber will now return a value of 0 when the Forward
GeoCoder is able to provide an exact address result. Previously, a number of less than 1 would be returned.
One Platform for Location Intelligence
Page 55
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
GeoStream's installation folder now includes a troubleshooting page, repositories.aspx. This page
displays details about the GBFS map data files currently in use by the GeoStream server.
Blank (transparent) auxiliary layer tile images are no longer created in the GeoStreamCache when auxiliary
layers are not used.
Three new events, Request, Response and Error, have been added to the JavaScript ClusterLayer
class. Request is triggered when a request for clusters is sent to the GeoStream server; Response when
ClusterLayer receives clusters from the GeoStream server, and Error when ClusterLayer receives an
error from the GeoStream server.
JavaScript routestop rendering issues present in GeoBase 3.9.1 have been corrected. Routestops on maps
are no longer rendered within blue boxes.
A new GeoStream GetServerLayers method has been created that may be accessed by JavaScript and .
NET clients. This method is used to retrieve a collection containing information about the layers.Config
file (name, description, copyright text, rendermode, expiration). Two properties, Tag and HasLegend, are
also available to this method. The Tag property is used to tag layers with arbitrary string data, and the
HasLegend Boolean indicates whether a layer has a legend image.
Alchemy GBFS data build failures caused by adjoining data fields being connected directly without a space
separator have been corrected.
Alchemy once again recognizes PoiRestaurantType food types when importing POIs from NAVTEQ data.
NAVTEQ 12Q2 data files created using previous 3.8 and 3.9 Alchemy releases between July and September
2012 did not include food types, which resulted in restaurant food type always being treated as Unknown.
IMPORT STREETS statements are now supported by Alchemy with CSV format text files. Street geometry data
in the CSV file should be formatted as LineStrings or MultiLineStrings in Well Known Text format,
typically enclosed within quotes. Polygons may also be imported from CSV files using IMPORT POLYGONS
statements (with geometry data again stored as Well Known Text).
null exceptions thrown when querying MultiPolygons in GBTx data files have been corrected.
Loss of route highlighting between two routestops when the distance between the stops is too great has
been corrected.
WPF maps no longer pan in the wrong direction if the map has been rotated.
Missing Balloon and BalloonSkin variable declarations that prevented POIs being displayed in the
tutorial.custom-poi.aspx tutorial, and eventually resulting in a timeout exception being thrown, have
been fixed.
A 'Direction Unit' drop down list issue in the tutorial.routing.aspx tutorial example has been corrected.
Previously, some menu selections could generate errors in Internet Explorer 7 and 8.
The JavaScript tutorial examples tutorial.routing.aspx, tutorial.poi.aspx and tutorial.
custom-poi.aspx now work correctly in Internet Explorer 7.
A missing Point declaration that prevented BalloonPushPins being displayed in the tutorial.simpleballoon.aspx and tutorial.routing.aspx JavaScript tutorials has been fixed.
One Platform for Location Intelligence
Page 56
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
The wind and temperature WMS layer now works in the tutorial.weatherdata.aspx JavaScript tutorial.
JavaScript maps no longer appear blank after panning.
A problem that would prevent Internet Explorer 7 from making POST requests under certain conditions has
been fixed.
JavaScript maps will no longer occasionally pan to an incorrect position after being updated.
An issue in the Mobile Simulator and Navigator example applications that could cause a user to become
trapped when selecting the 'Cross Street' menu option if a street has no numbers or cross streets has been
corrected. The Cross Streets search window now includes a 'Back' button.
A routing problem that could result in highway splits failing to be accompanied by an instruction to keep left
or right has been corrected.
A route highlighting problem that could manifest as history trails on maps failing to fit to streets has been
corrected.
Prohibited links (for example pedestrian-only links when routing for vehicles) are no longer erroneously
included when querying reachable areas.
Vehicles are now prohibited on pedestrian-only links. Previously these links were merely penalized.
Several general directions problems have been resolved in this release. These include issues that could
result in:
Incorrect turn numbers in turn instructions when exiting a freeway.
Improper u-turn instructions.
Slight left or right turns not being announced.
Turn instructions being given at a point in the route at which there is no turn.
Instructions to turn in the wrong direction.
Incorrect turn numbers in turn instructions.
Index out of range exceptions being thrown.
Poor direction announcements on mobile devices, including duplicate or incorrect instructions at some
turns, have been improved.
A memory problem that could cause GeoBase to repeatedly compile a repository until an out of memory
exception was thrown has been fixed.
GeoBase 3.9.1.1 Release Notes
Enhancements and minor fixes
Microsoft's legacy Internet Explorer 6 web browser is no longer supported by GeoBase.
The poor announcement of highway numbers when using German language packs has been corrected.
Numbered roads will now be announced as sequences of individual numbers only when appropriate.
A directions problem that could result in the issuing of instructions with inaccurate turn directions has been
fixed.
One Platform for Location Intelligence
Page 57
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
DirectionLinks containing a LinkId of 0, used when route highlighting directly links two points, no longer
return an incorrect StreetLink when queried using DirectionLink.GetStreetLink.
KeyAccess constraints can now be manually bypassed using the RoutingStrategy property
KeyAccessPredicate. This predicate is used to prevent the routing engine unnecessarily generating
alternative routes, thereby reducing calculation times for routes on street links that restrict public
thoroughfare access.
The DrillDownGeoCoder now recognizes ramps that join highways as cross streets.
The inconsistent detection of cross streets when two streets cross one another via a bridge or overpass has
been fixed.
Null reference exceptions that may be encountered when running multiple traffic renderer threads in parallel
in a 64-bit environment have been reduced.
The JavaScript functions setLineColor and setLineWidth once again allow the color and size of routes
rendered on maps to be set. These functions were broken in previous 3.9 releases.
An issue that caused shapes on the canvas layer to be drawn at the wrong location has been fixed.
A problem that prevented the initial display of objects on a map if the zoom level had changed before the
map was shown has been fixed.
A JavaScript issue that could cause shapes on the canvas layer to be drawn beneath the tile layer has been
fixed.
A fault in the tutorial.poi.aspx JavaScript tutorial that prevented some POI queries returning results,
eventually causing a TimeOutError exception to be thrown, has been corrected.
The traffic_shields.ecm file has been removed from the SDK. This file is no longer required for tutorial
examples.
Poor rendering of map direction arrows in previous 3.9 releases has been corrected.
GeoBase 3.9.1 Release Notes
Important Changes
U-Turn and Intersection Penalties
GeoBase's default U-Turn penalty has been changed from 20 seconds to 80 seconds. Previously, an
additional 60 second penalty was automatically added to all user-specified U-Turn penalty values, thereby
preventing the setting of penalty values of less than 60 seconds.
In addition, changes to the routing strategy now mean that all intersections will be assigned penalty values
based on cost. That is, the length of time in seconds a vehicle is expected to take passing through the
intersection. Previously, penalties were only applied to intersections when turning from a surface street onto an
One Platform for Location Intelligence
Page 58
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
arterial level, or higher, street.
Permitted Vehicle Types on Links
Vehicles may now be permitted to travel on links according to their functional class using the new
RoutingStrategy.SetAllowedVehicleTypes method. By default, GeoBase disallows VehicleType.
Pedestrian on links with a functional class of 1 and 2, and VehicleType.Truck on links with a functional
class of 5. The latter behavior is based on recommendations by data vendors due to low truck attribute
coverage on class 5 links.
Vehicles permitted on specific links may also be restricted by constraints specified in data files, or by link
attributes in data files (for example AR_TRUCK). Data constraints are assigned highest priority and thus have
the strongest effect on routing, followed by link attributes, then RoutingStrategy.
SetAllowedVehicleTypes. A truck may therefore route along a penalized functional class 5 link in order to
avoid a link that is marked with a RouteFlag property of AR_TRUCK=False.
Pre-3.9.1 behavior may be restored by calling SetAllowedVehicleTypes(fc, VehicleType.All) where
fc (the functional class of the link) is a value between 1 and 5. For example:
RoutingStrategy MyStrategy = new RoutingStrategyFastest();
// functional classes of 1-5, inclusive, are accepted.
MyStrategy.SetAllowedVehicleTypes(5, VehicleType.All);
Enhancements and minor fixes
General
BeginPhrase, EndPhrase, BeginSound and EndSound events have been added to the WaveAnnouncer
class.
An installer problem that resulted in a GeoBase license error being thrown, rather than a prompt for the
correct license location, has been corrected.
Routing
Route highlights can now be overlaid with arrow icons indicating direction of travel. This functionality
uses the new Directions properties RenderArrowColor, RenderArrowLength,
RenderArrowSpacing and RenderArrowSpacing. For example:
One Platform for Location Intelligence
Page 59
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
Directions dirs = myRoute.GetDirections();
dirs.RenderColor = Color.Red;
// arrow color is red
dirs.RenderArrowColor = Color.Red;
// arrow length is 30 pixels
dirs.RenderArrowLength = 30;
// arrow width is 20 pixels
dirs.RenderArrowWidth = 20;
// spacing between arrows along route is 40 pixels
dirs.RenderArrowSpacing = 40;
// add route and arrows to renderlist
renderList.Add(dirs);
The inaccurate estimation of route times and lengths in the Netherlands has been fixed.
An issue that could result in poor or inappropriate directions instructions when navigating has been
fixed.
A data issue that caused GeoBase to provide invalid navigation directions (instruct vehicles to take turns
that did not exist) has been corrected.
NullReferenceException errors that were thrown when routing to locations on street links that were
classified as valid only for emergency vehicles have been fixed.
Routing behavior has been improved by increasing penalties for ramps and turns, and reducing the time
penalty associated with surface street intersections. These changes increase the likelihood of a route
remaining on straight roads rather than zigzagging unnecessarily through surface streets.
Routes calculated using RoutingStrategyFastest could, in the past, take longer to complete than a
route between the same points using RoutingStrategyShortest. This has been corrected and routes
using the fastest strategy are now always faster than, or equal in duration to, those using the shortest.
An unhandled exception thrown when calculating directions for routes that include ferries has been
corrected.
Inappropriate routing of pedestrians through streets with pedestrian flags set to false, such as highways,
has been fixed.
GeoCoding
The speed of street address searches on mobile devices has been improved.
Failed searches using UK postcodes that were successful in previous GeoBase versions have been
corrected.
A DrillDownGeoCoder issue that caused memory to run out when performing street searches in
Kaunas, Lithuania have been fixed.
The failure of searches for street names that included an apostrophe, such as 'Avenue d'Alsace', has
been corrected.
One Platform for Location Intelligence
Page 60
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
A problem that resulted in only one street being returned by a search when two streets matched the
search parameters has been fixed.
An issue that caused UK postcode searches using a complete postcode, such as 'AA11 1AA', to fail but
searches using partial postcodes, such as 'AA11 1', to succeed has been fixed.
The failure of some searches in Canada using postcodes as a search parameter has been corrected.
A problem that caused incorrect UK street results to be returned if a street number did not exist has been
corrected.
An issue that resulted in duplicate street results being returned by a search has been corrected.
A GeoCoding problem prompted by the GeoCoder failing to properly combine cities and suburbs when
using the DrillDownGeoCoder.MixSuburbsAndCities property has been resolved. Cities and
suburbs with the same name are now disambiguated by showing their parent region; and suburbs
named after cities are now hidden if the city name is present in the search results.
A data error that prevented Forward GeoCode searches in Germany using English city names (for
example 'Munich' rather than 'M nchen') returning results, or caused the return of faulty locations, has
been corrected.
Failing searches for streets containing the characters 'l' or 'L' in Poland, such as 'Ulica Sp ldzielcza',
have been fixed.
Street numbers not found in GeoCode searches, despite being found when Reverse GeoCoding, have
been corrected.
A type mapping error that caused 'Street' and 'Avenue' not to be matched with data stored as 'St' or 'Ave' in
North America has been fixed.
Distinct, separate regions (those regions whose bounding boxes do not overlap) that share the same
name will now have their own RegionData entries when GetRegions is called.
Failure to locate some street numbers on French streets has been fixed.
Failure to locate addresses containing the character ' ' in Norway, Sweden, Denmark and Finland has
been corrected.
Mapping
A new renderer class, ArrowRenderer, has been added to the Mapping namespace. This class allows
lines to be drawn along a specified set of points on a map, and the color and thickness of these lines
set. Arrows indicating direction of movement along these lines, from first point to last, can be rendered
using the ArrowProperties structure; and the color, spacing, and size of these arrows set, together
with the spacing interval of arrows along the line. For example:
One Platform for Location Intelligence
Page 61
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
// create arbitrary line in Los Angeles
mapCtrl1.Center = (new Telogis.GeoBase.LatLon(33.585651, -117.733064));
mapCtrl1.Zoom = 3;
Telogis.GeoBase.Geometry.LineString MyLine =
new Telogis.GeoBase.Geometry.LineString(
new Telogis.GeoBase.LatLon[] {
new Telogis.GeoBase.LatLon(33.591846,-117.741596),
new Telogis.GeoBase.LatLon(33.591888,-117.721703),
new Telogis.GeoBase.LatLon(33.576316,-117.721758),
new Telogis.GeoBase.LatLon(33.576316,-117.741542),
});
// create ArrowRenderer line
Telogis.GeoBase.Mapping.ArrowRenderer ArrowLine =
new Telogis.GeoBase.Mapping.ArrowRenderer();
// specify arrow line properties
ArrowLine.LatLons = MyLine.Points;
ArrowLine.LineColor = Color.Blue;
ArrowLine.LineWidth = 2;
// specify ArrowProperties
ArrowLine.ArrowProperties = new ArrowProperties {
Color = Color.Red,
Length = 20,
Width = 10,
Spacing = 20
};
// add line to renderer
mapCtrl1.Renderer = new RendererList(ArrowLine);
The mobile map style has been updated to show more labels when in detailed mode, and to show
buildings in tileserver mode. Panning mode overrides detailed mode, reverting to the standard view
when panning the map.
The locations of labels rendered on maps are now retained when the map is redrawn, allowing them to
be rendered consistently at the same position. This prevents labels 'jumping' or moving slightly
whenever the map is updated (for example, during panning and zooming).
The scale value passed into a Chameleon (.cam) file and used to determine the level of detail to render
on a map was previously based on meters per pixel of the map. Because the number of meters per pixel
changes with latitude, this scale was often inconsistent, and could cause the map to jump between
different detail levels. Scale is now dependent only on map size and zoom level. Because of this change,
the previous behavior of Chameleon files may be changed, and require updating accordingly particularly if their intended use is in regions far from the equator. Typically, depending on location, the
new scale values will be the same as the old values.
The mobile map style now draws oceans when detailed=true, for example mapStyle.
SetParameter("detailed", true);, and global data is present.
The Label object in .cam map style files now accepts a variable as an auxiliary layer value, in addition to
hard-coded numeric values.
One Platform for Location Intelligence
Page 62
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
The priority of labels drawn on maps using the default mobile map style has been rationalized, ensuring
that labels are rendered more appropriately at varying zoom levels. Ramp shields will now only be
displayed when zoomed in, and city labels have lower priority than street labels at street zoom. In
detailed and tileserver modes the selection of features has been improved; in tileserver mode
city name labels are now more appropriately sized at world zoom, street labels are rendered semitransparently at world zoom, and shields are no longer displayed at state zoom.
GeoStream
GeoStream now supports the use of a hyphen/dash '-' as a style name to indicate that the map style
should be blank (that is, displaying satellite imagery without any streets). For example 's=-' in http://
localhost/GeoStream/tile.aspx?t=-10739,-3302,300,4,8192&s=&satellite=on&a=8669072d-4097-51bd-05c2-aecdc7e3c1c9 rather than 's=SatelliteStyle'
in http://localhost/GeoStream/tile.aspx?t=-10739,-3302,300,4,8192&s=SatelliteStyle
&satellite=on&a=8669072d-4097-51bd-05c2-aecdc7e3c1c9.
Maps in the JavaScript tutorial tutorial.zoomindicator.aspx now zoom smoothly when using the
mouse scroll wheel. Fade animations in this tutorial are now also displayed correctly in all browsers.
A GeoStream DGFirstLook (WMS) configuration issue that caused white map layer tiles rather than
satellite imagery to be displayed when no storm layer data was available has been fixed. Tile images
retrieved from the server will now be transparent if no data is available.
A problem that prevented map styles being obeyed when satellite imagery was enabled has been
corrected.
The Telogis.GeoBase.Widgets.Map class argument dragBehavior now works correctly with a value
of DRAG_NONE.
The 'Allow U-Turns' checkbox in the JavaScript tutorial tutorial.advanced-routing.aspx now
behaves as expected when U-Turn penalty values of 60 seconds or less are specified.
LatLons which are created with no input arguments, or created with invalid (non-number) arguments, are
now initialized to a location of -180, -180 rather than 0,0. This allows erroneous inputs used in LatLon
creation to be caught.
The Telogis.GeoBase.Widgets.ExtWrapper class and documentation have been removed.
Calling suspend() on a CanvasLayer will now prevent it updating. Previously, this function did not
prevent periodic updates or updates in response to user actions.
Failed internal GeoCode searches (searches that return no results) are now logged in the GeoStream
log file.
Two new functions have been added to the Telogis.GeoBase.MapLayers.TileLayer class:
getTileConfig and setTileConfig. These get and set the information used to create tiles on the
TileLayer, and work with the same information used by the tileConfig argument in the TileLayers
constructor.
One Platform for Location Intelligence
Page 63
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
Alchemy
AUX LAYER and OVERLAY LAYER are now supported by Telogis Workbench syntax highlighting and
intelliprompt.
Unsuitable exception messages will no longer be thrown when using a SELECT statement to import
columns that do not exist.
The code collapse function now works correctly in Telogis WorkBench with CONCURRENT code blocks,
and fromEnd variables are no longer treated as End tags.
The Alchemy Dress function has been improved, and will no longer attempt to capitalize Roman
numerals, thereby preserving their original case format. For example, 'Queen Elizabeth II Drive' will no
longer be converted to 'Queen Elizabeth Ii Drive'. This change also affects abbreviations for streets that
include more than one direction character, such as 'NW Lakeshore Ave'. These will now be capitalized. In
the past the second letter of the street direction was displayed as lower-case, for example 'Nw
Lakeshore Ave'.
All .sfi script files included in the GeoBase SDK have been updated to .alchemy format files. .sfi
format files are still fully supported by Telogis WorkBench.
The 'Close' menu option (File > Close) in Telogis WorkBench will now close the current data file or script
file rather than only script files.
Direction abbreviations for streets that include more than one direction character, such as 'NW
Lakeshore Ave', are now capitalized. Previously, the second letter of the street direction was displayed as
lower-case, for example 'Nw Lakeshore Ave'.
Where streets and highways have multiple names, they are now sorted in the order in which they are
stored in the source data. Previously, names were sorted alphabetically, which could result in street
names changing during navigation and causing driver confusion.
The error message thrown when attempting to use a shapefile with an unsupported projection type has
been updated to include more detail about the supported projection type.
Telogis WorkBench no longer throws an exception message, or fails to compile data, when operated in a
Turkish Windows locale environment.
Map Explorer
The 'Optimize Stops with Windows' option in Map Explorer no longer returns poor quality routes.
A Map Explorer problem that prevented the 'Set Stop Heading' option (right-click stop > Set Stop
Heading) from working; and a StopNotFoundException error thrown when using the 'Delete Stop'
option (right-click stop > Delete Stop), have been fixed.
An incorrect reference path to the geobase.dll library in the MapExplorer.sln example project has
been removed. The referenced dll library file was not required by the project.
One Platform for Location Intelligence
Page 64
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
Map Explorer now allows route stop properties to be edited after VehicleType has been changed and
any GetDirections method is called.
GeoBase Mobile
A TargetInvocationException error thrown when SetLocation is called, and two or more countries
are available to select from, has been corrected.
The 'Soft keyboard' checkbox option in the GeoBase Navigation example project (under Settings) now
hides the keyboard when unchecked.
U-Turn penalties are now supported by mobile applications on streets that consist of only a single street
link. Like desktop applications, the default penalty for mobile applications is 80 seconds. This change
prevents unnecessary U-Turn instructions that are sometimes encountered near the start and end of a
route.
GeoBase 3.9.0.4 Release Notes
Enhancements and minor fixes
Map styles can now be cloned using the new MapStyle.Clone method. This feature allows the same
underlying map style to be used in multiple maps, but with different parameters. In addition, the default
desktop map style now has a %Hide_Polygons parameter (mapStyle.SetParameter
("Hide_Polygons", true);). If set to true, the map will not be cleared and polygons will not be
rendered. That is, streets, labels and lines will be drawn above a transparent background.
A penalty problem present in release 3.9.0.3 that could, under atypical conditions, result in directions
choosing to route through footpaths when only private streets were available as alternatives, has been fixed.
Various route highlighting issues resulting from poor results returned by the Reverse GeoCoder have been
corrected. Minor issues affecting corner cases that typically manifest as lines drawn directly from point to
point rather than as smooth curves snapped to streets have also been rectified, and incidents of
applications freezing when using route highlighting have been reduced.
Application freezes encountered when running route highlighting with large datasets have been corrected.
Route highlights no longer occasionally extend to an additional point beyond the route destination.
One Platform for Location Intelligence
Page 65
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
GeoBase 3.9.0.3 Release Notes
Enhancements and minor fixes
The GeoBase and GeoStream installer has been updated to comply with Microsoft Windows Server 2008
R2 certification. GeoStream is only certified for Microsoft Windows Server 2008 R2 when installed
separately from GeoBase using the 'GeoStream-only' installation option.
A new VehicleType of Default has been added that takes a value of 0. When VehicleType.Default
is applied to a route, VehicleType.Auto will actually be used. VehicleType.Unknown no longer takes
the value 0; therefore, any code that previously appeared as:
(vs.VehicleType & VehicleType.Truck) != VehicleType.Unknown;
Should now be written as:
(vs.VehicleType & VehicleType.Truck) != 0;
A GeoCoding problem that resulted in slow region searches at city level has been corrected.
An Alchemy error that prevented the importation of some constraints when building GBFS data files has
been fixed.
An Alchemy problem that resulted in corrupt GBFS data files when importing custom polygons has been
corrected.
An issue that prevented GeoBase from installing if IIS was not already installed has been fixed.
Slow processing by the ImageCompressor.QuantizeTo8bpp image utility method has been corrected.
The Map Explorer - GeoStream Mode option, previously removed in error, has been restored to the
Windows Start menu (Start>All Programs>Telogis GeoBase Developer's Kit>Example
Applications>Map Explorer - GeoStream Mode).
A VehicleSpec synchronization error that resulted in poor routing has been corrected.
A synchronization error that occurred when Navigator.RouteCalculator was set while navigating has
been fixed.
An exception thrown when attempting to use Route.GetTimeAndDistance without a
GeoBaseResources\langs folder present has been corrected.
A routing problem that resulted in truck routes that both start and end on street links with restricted truck
access (using the RouteFlag.AR_TRUCK property set to false) failing to avoid travel on these links for
as much of the route as possible has been fixed.
One Platform for Location Intelligence
Page 66
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
GeoBase 3.9.0.2 Release Notes
Enhancements and minor fixes
An error that prevented cluster icons displaying on maps at some zoom levels has been fixed.
The performance of the WPF MapControl has been improved when panning.
A new WPF MapControl method, WithOnlyOneRedraw, has been added. This method allows the action
to make multiple updates to the MapControl, which will only be redrawn after the action has completed.
This improves performance by eliminating unnecessary intermediate redraws.
A problem that could cause short routes in remote regions to use large amounts of memory, and to
calculate slowly, has been corrected.
A memory access violation that could occur in a route matrix with stops that are hard to route to and with
ObeyConstraints set to true has been fixed. As part of this fix, IRouteMatrix also now inherits
IDisposable for better memory management.
A new JavaScript function, GetAPISourceElement, has been added to AuthenticatedPage.aspx.cs.
This function is similar to GetAPISource but will write the entire script element instead of just the src.
The ICSharpCode.SharpZipLib.dll zip library file included with the GeoBase SDK has been updated
to version 0.86.
GeoBase 3.9 Release Notes
Important Changes
Silverlight Support
All Silverlight binary files, Silverlight demonstration projects and Silverlight documentation has been removed
from the GeoBase MSI. Customers currently using Silverlight who require updated Silverlight binary files
should contact Telogis GeoBase support at gbsupport@telogis.com. A member of the GeoBase Support
Team will be glad to assist you.
PreStreets Render Mode Removed
The PreStreets render mode has been replaced by the PreMap render mode. PreMap is the first layer to be
drawn, and is usually used for satellite imagery. All polygons and lines, including the map itself, will be drawn
on layers above the PreMap layer. Note also that clear statements will be rendered above this layer. This is a
breaking change.
One Platform for Location Intelligence
Page 67
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
Ram Class Methods Removed
The GeoBase Mobile Ram class methods FreeUnusedPages and IncreasePages have been removed. Two
new properties, MinimumCommit and MaximumCommit, have been added to allow minimum and maximum
memory commits to be modified. These properties are optional and, respectively, default to '0' and the
available physical memory, as reported by the operating system, on startup. This is a breaking change.
GpsSimulator Class Removed
The GpsSimulator class, used to simulate a GPS device for testing or demonstration purposes, has been
removed. A new class, SimulatedGps, has been introduced as its replacement. Unlike the previous
GpsSimulator, SimulatedGps does not accept Directions but rather a single LatLon or a LatLon path (
Simulated.Gps may be set to any arbitrary path). SimulatedGps improves upon GpsSimulator by including
several SimulationModes that may be used to specify its behavior, including the Automatic mode that will
automatically follow a route if attached to a Navigator. This is a breaking change.
Enhancements and minor fixes
General
Language packs now include version details for improved customer and compatibility support.
Versioning information is contained within <Version></Version> tag-pairs in lang.xml language files
(typically located in <Install Location>\Telogis\GeoBase\GeoBaseResources\langs\<lang>).
Previously, if a returned address search included region and/or subregion names that were the same, all
region names found were displayed when using Address.ToString (for example '20 King St E,
Toronto, Toronto, Toronto, Ontario, M5C 1C4, Canada'). Now, when displaying regional results using
Address.ToString, only one region name will be displayed when there are consecutive regions or
subregions with the same name returned and the result is not a city and state, such as 'New York, New
York' (for example, '20 King St E, Toronto, Ontario, M5C 1C4, Canada').
The non-functional XmlWaveAnnouncer method Play(PlayItem, string) has been marked as
obsolete and replaced with CreatePlayItem(string).
The XmlWaveAnnouncer method property LongWay has been marked as obsolete. This property has
been replaced with SetMaxAnnouncementDistance and GetMaxAnnouncementDistance.
All Pythagorean* methods (for example PythagoreanDistanceTo and
PythagoreanDistanceFromPointToLine) have been duplicated with Quick* versions (for example
QuickDistanceTo and QuickDistanceFromPointToLine) and marked as obsolete.
One Platform for Location Intelligence
Page 68
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
A large number of members previously marked as obsolete have been removed, including the Telogis.
Mobile namespace, and obsolete methods such as Telogis.GeoBase.BoundingBox.AddBox and
Telogis.GeoBase.BoundingBox.AddPoint. Serialized objects and JsonRpc methods needed for
GeoStream backward compatibility have been retained.
A data build problem that prevented DrillDownGeoCoder searches using only postcodes from returning
results with some NAVTEQ data files has been corrected.
To prevent name clashes, all classes within geobase.com that were previously suffixed with 'Factory' or
'Array' have been re-named, and are are now suffixed with '_Factory' and '_Array', respectively.
Several new PoiTypes have been added to the PoiType enumeration, including Campgrounds,
TruckStop, GovernmentOffices, PostOffice, SportingGoods, PublicRestroom and
MedicalService.
Routing
The redundant Route class property PermittedLinks and its accompanying
AccessAllowedDelegate delegate have been removed.
An error that could cause an incorrect total distance to be reported for some multi-stop routes has been
corrected.
An issue with directions that caused a missing turn instruction after exiting a highway has been fixed.
A routing problem that caused routes using a RoutingStrategyForPedestrian strategy to use
unsuitable links has been corrected. The routing engine will now take the first available turn onto a legal
road if the route starts on an unsuitable link.
A problem that resulted in the AllowUTurns, RoadCrossingBehavior and UseTollRoads properties
always being set to true when saving a route has been fixed.
An error in directions where a turn instruction could sometimes be issued at a road split, even though the
route path continues along the same road, has been corrected. A related error where a turn instruction
could be issued in addition to a roundabout exit instruction for the same movement has also been fixed.
A SchematicTurnBox problem in which the Bitmap.MakeTransparent method was called on all
SchematicTurnBox images, rather than only bitmap (.bmp) images, has been corrected.
Previously, the RoutingProfile class method GetSpeed was not checked for valid speed category (
speedCat) or functional class (funcClass) integer values (values of 1-8 and 1-6 are permitted,
respectively) which could result in an empty IndexOutOfRange exception. Values outside their
respective accepted ranges will now result in an exception that advises of the valid range.
The Navigation Manager's SetDestination method no longer immediately calculates Directions.
Navigator.NewRoute can be subscribed to for notifications when Directions are available.
SimulatedGps will follow the route automatically if SimulationMode is set to Automatic or
FollowNavigation.
One Platform for Location Intelligence
Page 69
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
A problem that resulted in the AllowUTurns property affecting directions using
RoutingStrategyFastest, but not RoutingStrategyShortest, has been corrected.
Previously, if the start location of a route was on a restricted road, the routing engine would not attempt to
turn off the road quickly. It will now attempt to get off the road as quickly as possible.
An AccessViolationException thrown by calls to CreateConstraint through the route interface has
been fixed.
Navigation
A NullReferenceException exception generated when using a NavigationManager without street
data for the current vehicle location, but with a Global GBFS file present, has been fixed.
A problem that caused the Directions property of a Navigator or NavigationManager to generate
instructions in English, regardless of the culture the Navigator or NavigationManager had been set
to, has been fixed.
Inaccurate memory and map statistics generated from the NavigationManager property
ShowMemoryStats have been corrected.
GeoCoding
The incorrect parsing of some US addresses containing a comma has been fixed.
A problem with the Forward GeoCoder not recognizing the abbreviation 'Us Hwy' has been fixed.
A Forward GeoCoding problem that caused searches for addresses with a single-letter qualifier, such
as 'N' or 'W', to fail has been fixed.
A GeoCoding error that prevented some searches from returning a result, even when a valid city, state
and postcode were used in the search, has been fixed.
GeoCoding of addresses with various abbreviations for 'Southwest', 'South', and 'Street' has been
improved.
General GeoCoding of US addresses has been significantly improved.
A problem parsing US addresses in which a street name is mistaken as a street suffix, such as 'grove
street', has been fixed.
GeoCodeFull.CrossStreet is now calculated 'lazily', resulting in a considerable speed improvement
when CrossStreets are not required.
A problem with the DrillDownGeoCoder.SearchNeighbouringRegions property not working has
been fixed. If set to false, only streets exactly within the searched region will be returned.
A problem that prevented German streets containing a hyphen, such as 'Käthe-Kollwitz-Strasse', from
being found by the GeoCoder, has been fixed.
An error that resulted in postcode searches returning the text 'Found address', or random text characters,
rather than returning an address, has been corrected.
One Platform for Location Intelligence
Page 70
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
A problem that caused some German address searches to return incorrect postcodes, suburbs or
address characters has been fixed.
A problem that caused BeginGetStreets calls with an empty string to return null rather than the
callback has been fixed. It will now return the status NothingToSearchFor.
An error that caused street names containing numbers, such as '36th Street', to be treated as street
numbers has been fixed.
A problem that caused slow GeoCoding when opening GBFS files on a network share has been
corrected.
An error that could cause US address search failures if commas were not present before a postcode
has been fixed.
A problem that prevented street types from being correctly mapped to search terms (such as 'Square',
'Street' or 'Avenue') has been fixed.
Mapping
A GeoBase problem that caused the MapCtrl.ZoomChanged and MapCtrl.CenterChanged events not
to be triggered when a user zoomed using the Drag Box zoom, or when using ZoomToBoundingBox
has been fixed. This problem also stopped the PropertyName, OldValue and NewValue properties of
MapChangedEventArgs being populated by these events. This has also been corrected.
A mapping problem that caused map panning using the Drag Hand to trigger two CenterChanged
events for each movement has been fixed.
A problem that caused black lines to appear on map BalloonPushPins has been corrected.
A mapping error that caused the map to disappear if both a point was selected at 180 degrees east, and
Lambert projection was turned on, has been fixed.
A problem that prevented Binding of the WPF MapControl.Heading property, resulting in the
navigation heading failing to update, has been corrected. Binding is no longer required to be specified
as TwoWay.
An access violation generated when creating a MapCtrl object with a size of '0,0' has been fixed.
A problem that caused some ramp shields to be rendered as highway shields has been fixed.
Sample Projects
Project files (HostedMainWindow.xaml and HostedMainWindow.xaml.cs) missing from the
WPFMapSample example project folder (typically located in C:\ProgramData\Telogis GeoBase
Examples\WPFMapSample) have been restored.
A problem compiling the WPFMapSample example project included with the GeoBase SDK, caused by
the presence of two references to geobase.net.dll, has been corrected.
The map location of the POIQuery example project included with the GeoBase SDK has been moved
from Texas to California, making it compatible with PacWest sample map data files.
One Platform for Location Intelligence
Page 71
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
Previously, in the MobileNav sample project, when a waypoint was added to a route and the device did
not have a GPS fix, navigation would fail to start. Now, if there is no GPS fix, a route will be created that
uses the waypoint location as the destination.
A referencing error that prevented the Map Explorer sample project from compiling has been corrected.
GeoBase Mobile
IDisposable has been implemented for the ControlBase class and subclasses.
Previously, when a RoutingOutOfMemoryException error was generated (because insufficient
memory was available to calculate the route), all subsequent routes, regardless of their length, would
also produce this exception. It is now possible to continue calculating smaller routes after encountering
this error message.
A GeoBase Mobile memory leak associated with rendering labels has been fixed.
GeoBase Mobile now uses less memory while DrillDownGeoCoding dense areas.
MonoSystemDrawing now shows a message box with a list of directories searched when it fails to find
GBFS data.
Previously, the allocator memory block used to perform native tasks (such as routing) on mobile devices
was 512KB in size. This has been reduced to 128KB as much of the previous 512KB was unused. This
change has reduced memory overhead by approximately 4MB on mobile devices.
A NotSupportedException error thrown by Chameleon Workbench Mobile when attempting to start in
Fullscreen mode has been fixed.
A GeoBase Mobile problem that caused an OutOfMemoryException to be thrown when attempting to
calculate a second route has been fixed.
An unused audio file, TakeFreeway.wav, has been removed from the
GeoBase\GeoBaseResources\langs\en-US installation folder.
Previously, Waypoint navigation routed via the closest point on the existing route. Now, Waypoint
navigation routes directly to the next unvisited waypoint.
A NoSuchRepository exception thrown if GeoBase Mobile was unable to locate a data repository in any
of the expected default locations has been fixed.
The default mobile map style now includes a low contrast and brightness 'night mode'.
If traveling 75 meters or more from a road (that is, 'off road'), spoken announcements will not be made.
Memory usage when routing has been significantly improved.
An OverlappingRegionsException thrown when closing an application on the mobile device
simulator has been fixed.
Alchemy
Alchemy table names beginning with 'gb_' are now reserved for internal use and may not be used for
custom data.
One Platform for Location Intelligence
Page 72
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
Alchemy now allows custom data to be built as either GBFS or GBTx files using the OUTPUT statement.
For example, OUTPUT "C:\MyFolder\Data" AS GBTX will generate a Data.GBTx file in the C:\MyFolder
directory. The current default output format remains GBFS.
A memory read error caused by using an incorrect postcode index file has been corrected.
The terminology of exceptions thrown by Alchemy when importing unsafe data has been improved.
A Telogis Workbench problem that prevented changes made using the hue, saturation, and value sliders
(available from the menu by selecting View>Color Chooser) from displaying correctly in the .cam script
panel has been fixed.
Error messages returned when attempting to import polygons from a non-polygon shapefile have been
improved.
The column name MANOEUVRE in Alchemy's IMPORT STREETS statement has been deprecated and
replaced with MANEUVER.
An Alchemy problem that caused segments of borders near oceans to be regarded as part of the ocean
has been fixed.
An Alchemy exception message thrown when compiling a GBFS file, or when filtering data fields, using a
German-locale version of Windows (resulting from a decimal-comma culture error) has been corrected
by reading and writing WKTs and strings as invariant cultures.
An exception message displayed when searching for a location using a GBFS data file generated from
the allegheny Alchemy Import Script included with the SDK has been fixed.
GeoStream
A new function, isValid, has been added to the JavaScript Telogis.GeoBase.LatLon class. This will
return true only if the provided LatLon is valid (that is, latitude is between -90 and 90 and longitude
between -180 and 180, inclusive).
A JavaScript mapping problem, in which panning around the world on a map whose tiles are served
using multiple tileserver URLs could result in corrupted tile URLs being generated, has been fixed.
A new property, updateDelay, has been added to the JavaScript Telogis.GeoBase.MapLayers.
ClusterLayer class. This property specifies a delay, in ms, when refreshing clusters. If a new request
is made before the specified delay, then the old request is not made.
Two new properties, getTotalDistance and getTotalTime, have been added to the JavaScript
Telogis.GeoBase.Routing.Directions class. These return the total distance of the route in the
specified units, and its estimated duration.
A GeoStream problem that caused only partial rendering of maps has been corrected.
A problem that prevented traffic from being displayed consistently has been fixed.
A problem that allowed the maximum zoom index on JavaScript maps to be set lower than the minimum
zoom index has been fixed. This also corrects a problem that prevented the max zoom index from ever
being increased, even if it was lower than the base maximum.
One Platform for Location Intelligence
Page 73
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
A problem that caused tiles to reload slowly when a JavaScript map was resized has been fixed.
A problem that caused the PolygonFence class method contains to always return false when a
PolygonFence object is created by passing the constructor an array of points has been fixed.
A problem that prevented the Telogis.GeoBase.Routing.Route class functions getStart and
getEnd returning null when a start or end had not been set has been fixed.
Route lines on JavaScript maps now fit streets accurately at all zoom levels. Previously, route lines at
some zoom levels could cut across sharp street corners.
Previously, without an input, the JavaScript Telogis.GeoBase.LatLon defaulted to '0,0'. It now defaults
to '-180,-180', which is correctly recognized as an invalid location.
An error that caused incorrect routes to be shown when using the tutorial.demo.aspx JavaScript
example (Telogis GeoBase Developer's Kit>Sample Code & Projects>Javascript Demos>Demo) has
been fixed.
Map Explorer
When GeoCoding a postcode using Map Explorer, the 'Found Address' pushpin text balloon at the search
location may be too small. As a result the last character of the postcode may be partially obscured. This
problem has been fixed and the last postcode character is now clearly visible.
A problem that prevented Map Explorer from starting when using a standard SDK license without Truck
Attributes enabled, or opening when a license without Turn Penalties enabled, has been fixed.
A problem in Map Explorer that prevented the balloon body (displaying the associated address) of a push
pin from being shown when a push pin was added to the map (right-click>Add Push Pin) has been
fixed.
Exceptions thrown when entering invalid time or non-integer values into the Map Explorer's Idle
Penalty and Average Time fields (selectable by right-clicking a route stop and selecting Set Time
Window to open the 'Set Time Window' panel) have been corrected. An alert message will now advise
that the entered values are invalid.
A cosmetic error that caused navigation information to be displayed more than once by the Map Explorer
when querying repeatedly (for example by right-clicking a stop and selecting Get Directions, then
repeating with the same stop) has been corrected.
A problem that prevented the Map Explorer minimap Reverse GeoCoding the current mouse cursor
location and displaying the result in the lower status bar has been fixed.
A problem that caused the Map Explorer to display point to point route directions rather than a route
highlight has been fixed.
API Change Directory
Classes
One Platform for Location Intelligence
Page 74
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
Removed
Telogis.GeoBase.Navigation.GpsSimulator (repl a ced by SimulatedGps).
(Excepti ons na mes pa ce) InternalRepositoryException a nd WaypointSameLinkException.
Telogis.GeoBase.LocalGeoCoder.
Telogis.GeoBase.Navigation.RemoteGeoCoder.
[Obsolete] Telogis.GeoBase.Navigation.EnglishWaveAnnouncer.
(GeoBa s e na mes pa ce) [Obsolete] CanadaGeocodeAddress, UKGeocodeAddress,
IrelandGeocodeAddress a nd MexicoGeocodeAddress.
Added
(Na vi ga ti on na mes pa ce) NoisyGps.
(Na vi ga ti on na mes pa ce) SimulatedGps.
Methods
Removed
(Tel ogi s .GeoBa s e.Setti ngs cl a s s ) HaveCountry.
(Tel ogi s .GeoBa s e.Ra m cl a s s ) FreeUnusedPages a nd GetAllocatorInfo.
(Tel ogi s .GeoBa s e.GeoCoder cl a s s ) [Obsolete] Obs ol eted ReverseGeoCodeFull methods , a nd the
Obs ol ete ReverseGeoCode(LatLon, Double, DistanceUnit).
(Tel ogi s .GeoBa s e.Ma pStyl e cl a s s ) [Obsolete] CreateFromTemplate.
(Tel ogi s .GeoBa s e.Ma thUti l cl a s s ) [Obsolete] distance_pt_seg(LatLon, LatLon, LatLon,
Double) a nd distance_pt_seg_greatcircle(LatLon, LatLon, LatLon).
(Tel ogi s .GeoBa s e.Na vi ga ti on.Na vi ga ti onMa na ger cl a s s ) [Obsolete] LoadRoutingProfile(String,
Country).
(Tel ogi s .GeoBa s e.Routi ng.Route cl a s s ) [Obsolete] GetConstraints(LatLon,
ConstraintLinkDirection) a nd GetConstraints(LatLon, ConstraintLinkDirection,
Boolean).
(Tel ogi s .GeoBa s e.Tra ffi c.Tra ffi cFetcher cl a s s ) [Obsolete] GetLatestTraffic(DateTime,
Boolean) a nd GetLatestTraffic(DateTime, Boolean, TimeSpan).
(Tel ogi s .GeoBa s e.Tra ffi c.Li nkIdToTMC cl a s s ) [Obsolete] GetTMC.
(Tel ogi s .GeoBa s e.Boundi ngBox cl a s s ) [Obsolete] AddBox a nd AddPoint.
Marked as Obsolete
(Tel ogi s .GeoBa s e.Na vi ga ti on.Na vi ga tor cl a s s ) SetOffRouteSnapDistance.
(Tel ogi s .GeoBa s e.Na vi ga ti on.Wa veAnnouncer cl a s s ) Play(WaveAnnouncer.PlayItem, String).
(Routi ng cl a s s es Routi ngStra tegy, Routi ngStra tegyFa s tes t, Routi ngStra tegyForPedes tri a n, a nd
Routi ngStra tegyShortes t) SetProfile(RoutingProfile).
Changed
(Tel ogi s .GeoBa s e.Cl us teri ng.Col umnCl us teri ng cl a s s ) CalculateClusters no l onger requi res a
ClusterSummaryDelegate.
(Tel ogi s .GeoBa s e.Ma pMous eEvents Ha ndl er cl a s s ) FireDoubleClick no l onger a ccepts
MouseEventArgs. It now a ccepts EventArgs.
Added
(Tel ogi s .GeoBa s e.Na vi ga ti on.MovementCa tegori zer cl a s s ) GetProgressFilename.
(Tel ogi s .GeoBa s e.Na vi ga ti on.Schema ti cTurnBox cl a s s ) GetProgressVisibleDistance a nd
GetVisibleDistance.
(Na vi ga ti on na mes pa ce Wa veAnnouncer a nd Xml Wa veAnnouncer cl a s s es ) CreatePlayItem
(String), CreatePlayItem(String, String), GetMaxAnnouncementDistance a nd
SetMaxAnnouncementDistance.
(Tel ogi s .GeoBa s e.Na vi ga ti on.Xml Wa veAnnouncer cl a s s ) SayArrival.
One Platform for Location Intelligence
Page 75
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
(Tel ogi s .GeoBa s e.Ti meSta ti s ti cs cl a s s ) GetPerStageStatistics.
(Tel ogi s .GeoBa s e.Tra ns a cti ona l .Record cl a s s ) GetInteger, GetLatLon, GetPolygon, GetString,
GetTime, Set(String, DateTime), Set(String, Int64), Set(String, String), Set
(String, Polygon) a nd Set(String, LatLon).
Properties
Removed
(Tel ogi s .GeoBa s e.Setti ngs cl a s s ) DataPath, HaveGlobalData a nd LibraryMode.
(Routi ng cl a s s es Routi ngStra tegy, Routi ngStra tegyFa s tes t, Routi ngStra tegyForPedes tri a n, a nd
Routi ngStra tegyShortes t) CustomEvalFunction, Profile a nd RoadCrossingBehaviour.
(Tel ogi s .GeoBa s e.Routi ng.Route cl a s s a nd Routi ng na mes pa ce) PermittedLinks.
(Tel ogi s .GeoBa s e.Ma pCtrl cl a s s ) [Obsolete] SmartLabeling.
(Tel ogi s .GeoBa s e.Na vi ga ti on.Defa ul tNa vi ga ti onSta tus cl a s s ) [Obsolete] DisplayNameMode.
Marked as Obsolete
(Tel ogi s .GeoBa s e.Na vi ga ti on.Na vi ga tor cl a s s ) knobs.
(Tel ogi s .GeoBa s e.Na vi ga ti on.Wa veAnnouncer cl a s s ) LongWay.
Changed
(Tel ogi s .GeoBa s e.Cha ngedEventArgs cl a s s ) NewValue, OldValue a nd PropertyName ca n no l onger
be s et.
Added
(Tel ogi s .GeoBa s e.Brea k cl a s s ) IdlePenalty a nd RenderSize.
(Tel ogi s .GeoBa s e.Cl us teri ng.Cl us ter cl a s s ) Features.
(Tel ogi s .GeoBa s e.Na vi ga ti on.Fi l teredGps cl a s s ) HeadingSpeedThreshold a nd
HeadingUpdateDistance.
(Na vi ga ti on na mes pa ce's IRouteCa l cul a tor Interfa ce) MessagesBundle.
(Tel ogi s .GeoBa s e.Na vi ga ti on.Na vi ga ti onEvent cl a s s ) IsAnnounced.
(Tel ogi s .GeoBa s e.Na vi ga ti on.Na vi ga ti onMa na ger cl a s s ) ZoomLevels.
(Tel ogi s .GeoBa s e.Na vi ga ti on.Pos i ti on s tructure) IsGoodFix.
(Tel ogi s .GeoBa s e.Na vi ga ti on.Schema ti cTurnBox cl a s s ) ProgressBarVisible,
SetVisibleDistance, SetProgressVisibleDistance a nd Event.
(Na vi ga ti on na mes pa ce Wa veAnnouncer a nd Xml Wa veAnnouncer cl a s s es ) BellEnable.
(Tel ogi s .GeoBa s e.RouteStop a nd Tel ogi s .GeoBa s e.Wa ypoi nt cl a s s es ) IdlePenalty a nd
RenderSize.
(Routi ng cl a s s es Arri va l Movement, FerryMovement, FFRa mpMovement, FSRa mpMovement,
Movement, Ra mpMovement, RoundAboutMovement, SFRa mpMovement, Spl i tMovement, a nd
TurnMovement) FirstLocationIndex, LastLocationIndex, PostAnnouncement a nd
PreAnnouncement.
(Tel ogi s .GeoBa s e.Routi ng.MovementNode cl a s s ) LocationIndex.
(Tel ogi s .GeoBa s e.StreetDa ta cl a s s ) MaxAddress a nd MinAddress.
Constructors
Removed
(Tel ogi s .GeoBa s e.Na vi ga ti on.Na vi ga ti onMa na ger cl a s s ) [Obsolete] NavigationManager(MapCtrl,
String) a nd NavigationManager(MapCtrl, EnglishWaveAnnouncer).
Marked as Obsolete
One Platform for Location Intelligence
Page 76
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
(Tel ogi s .GeoBa s e.Na vi ga ti on.Na vi ga tor cl a s s ) Navigator(IGps).
Changed
(Tel ogi s .GeoBa s e.Cha ngedEventArgs cl a s s ) MapChangedEventArgs() now a ccepts a s tri ng a s
MapChangedEventArgs(String).
Fields
Removed
(Tel ogi s .GeoBa s e.Na vi ga ti on.Fi l teredGps cl a s s ) HeadingSpeedThreshold.
(Tel ogi s .GeoBa s e.Na vi ga ti on.Schema ti cTurnBox cl a s s ) Event.
Added
(Tel ogi s .GeoBa s e.Na vi ga ti on.Na vi ga tor cl a s s ) RouteProgress.
Interfaces
Removed
(GeoBa s e na mes pa ce) CustomEvents.
Added
(Na vi ga ti on na mes pa ce) IGpsWrapper a nd ISimulatedGps.
Enumeration
Removed
PreStreets Render mode ha s been repl a ced by the PreMap Render mode.
(Na vi ga ti on na mes pa ce) Announcement.
(Routi ng na mes pa ce) RoadCrossingBehaviour.
Added
(GeoBa s e na mes pa ce) RenderingStage.
(Routi ng na mes pa ce) ConstraintType.
Delegates
Removed
(Tel ogi s .GeoBa s e.Routi ng.IRoute i nterfa ce) AccessAllowedDelegate.
(Routi ng na mes pa ce) RouteCustomEval.
One Platform for Location Intelligence
Page 77
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
GeoBase 3.8.0.9 Release Notes
Enhancements and minor fixes
A memory leak affecting maps drawn on the desktop has been fixed.
A problem that prevented MapCtrl being hosted in a WPF form has been fixed.
An error in the WPFMapSample included with the GeoBase SDK (Start>All Programs>Telogis GeoBase
Developer's Kit>Sample Code & Projects>Telogis GeoBase Examples Folder>WPFMapSample) that
could result in an exception being thrown when zooming has been fixed.
A problem parsing some addresses when GeoCoding street names has been corrected.
GeoBase 3.8.0.8 Release Notes
Enhancements and minor fixes
A new logging API using the Telogis.GeoBase.Diagnostics namespace has been created. This API
can be used to direct GeoBase log events to a logger of your choice.
The IdlePenalty property added to the RouteStop class and subclasses for Route Optimization in
3.8.0.7 has been added to the Map Explorer example application.
The routing engine now tracks all stops and will only create ArrivalMovements if a stop is the current
stop destination. Previously, in calls to Route.GetDirections, every stop along a route was classified
as an arrival. This did not take into account routes that must pass through stops that are not the current
stop destination.
A problem that caused RouteStop.Heading to be ignored by the routing engine in GeoStream has been
corrected by marking the property as serialized.
A problem in directions that caused a slight turn at a complex intersection to result in a name change
note rather than a turn movement has been corrected.
A problem that caused an incorrect turn instruction to be issued if a highway splits into two at a narrow
angle, or two highways to merge into one at a narrow angle, has been corrected.
To reduce confusion when navigating, natural language directions no longer include an "At the end of the
street" prefix when a street intersects with another street at a shallow angle (for example, when a street
name changes at an intersection but the physical roadway continues in approximately the same
direction). An instruction to turn left or right will be given instead.
A GeoCoder problem that caused the Map Explorer sample application to display random text characters
has been corrected.
A GeoCoding problem that caused slow address searching has been corrected.
One Platform for Location Intelligence
Page 78
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
A DrillDownGeoCoder problem introduced in 3.8.0.5 that resulted in an exception being thrown when
searching for a street name using a single letter has been corrected.
A problem in Map Explorer in which TooEarly violations for Breaks were not correctly displayed in the
'Optimized Stops' report (Route>Optimize Stops With Windows) has been corrected.
A Map Explorer problem that caused the 'WindowStart' and 'WindowEnd' fields in the 'Set Time Window'
panel (available by right-clicking a route stop on the map) to display an incorrect timestamp (ie. not the
current time) has been corrected.
A GeoBase Mobile problem that resulted in an OutOfMemory exception being thrown when routing has
been corrected.
The 'Settings' page (Menu>Settings) in GeoBase Mobile and the Mobile Simulation application (Start>All
Programs>Telogis GeoBase Developer's Kit>Example Applications>Mobile Simulator) now allows
user-specified allocation of page memory using Ram.IncreasePages. In addition, default memory
allocation has been increased from 18 pages (9MB) to 40 pages (20MB), and the appearance of labels
on the 'Settings' page improved.
A Silverlight problem that caused incorrect results when using LatLonToXYOverlay in New Zealand
has been corrected.
GeoBase 3.8.0.7 Release Notes
Enhancements and minor fixes
Mapping
The clustering summary callback is now called only for clusters that are actually returned.
An error that caused an exception to be thrown when a map was resized in projected mode has been
fixed.
An error that caused highway shields to be shown with missing letters (for example '20' rather than '20A')
has been corrected.
GeoBase Mobile
A number of cosmetic map style improvements have been made to the GeoBase Mobile map styles.
These include the following:
Streets now have a single outline and appear thinner with less perspective
Simplified streets are now used sooner
Minor features are no longer labeled or city polygons drawn when zoomed out
Polygon ordering has been modified resulting in better rendering of water features
Buildings are now displayed in a semi-transparent brown color
Highway shields and fonts are now larger
Airports are lighter in color
One Platform for Location Intelligence
Page 79
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
Parks are now drawn at city level
Rails are no longer drawn due to a CE rendering problem
Labels are now prioritized
Default mobile map styles for s-highways in the Netherlands now have shields
The map 'bulls-eye' image for large cities has been changed from a circle to a square
Off-route vehicle tracking has been greatly improved in GeoBase Mobile.
A GeoBase Mobile problem that caused an exception to be thrown when attempting to query for POIs on
the device emulator has been corrected.
A GeoBase Mobile directions problem that caused confusing navigation icons to be displayed has been
corrected. If an entry to a ramp includes a sharp entry angle a turn instruction will now be issued.
A problem in the GeoBase Mobile sample application that caused incorrect SmartListBox filtering of
street results (removing results that should have been shown) has been fixed.
A GeoBase Mobile directions problem that caused some freeway changes not to be announced has
been corrected.
Routing
If the repository is changed between usages of a route matrix journal, an exception will now be thrown.
An error that caused incorrect penalties to be applied at three-way intersections has been fixed.
A problem in the Directions generator that caused an inappropriate turn instruction to be issued when
two ramps traveling in opposite directions joined has been corrected.
The generation of a vehicle's anticipated ETA at its destination has been improved and is no longer
continuously recalculated while the vehicle is stopped.
A problem that allowed vehicles to cross traffic when lanes are split by a divider has been fixed.
Previously, setting a Break object's AverageTime to the same or a lesser value than the Break's
MinimumTime would cause an exception. An AverageTime value is now permitted to be less than the
MinimumTime, in which case the MinimumTime value is used as the duration spent at the break rather
than the AverageTime.
The WaypointSamelinkException exception has been removed as it prevented waypoints being
added between two stops on the same link.
A route optimization error caused by a WindowEnd time being set before its corresponding WindowStart
time and resulting in an exception being thrown has been corrected.
A new IdlePenalty property has been added to the RouteStop class and subclasses for Route
Optimization. This property specifies a TimeWaiting penalty at a stop for any TooEarly violations (that
is, it sets a penalty value for any waiting time needed at a stop if a vehicle arrives before its delivery
window).
Two new properties, MaxAddress and MinAddress, have been added to the StreetData class. These
represent the minimum and maximum address numbers for a street.
One Platform for Location Intelligence
Page 80
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
A problem that caused RouteStop.Heading to be ignored by the routing engine has been corrected.
DrillDown GeoCoder
If the DrillDownGeoCoder.MixCitiesAndSuburbs flag is set, the DrillDownGeoCoder will
automatically treat cities and suburbs as members of the same region level. This is useful if one wishes
to differentiate suburbs and cities from one another.
An error that could cause the DrillDownGeoCoder to show streets that were not within the region being
searched for has been corrected.
A memory problem when requesting a cross street using the DrillDownGeoCoder has been fixed.
Navigation
An error that could cause a turn to be incorrectly described as a name change or a road split in directions
has been corrected.
Previously, a SchematicTurnBox was not visible when more than 500 meters from an intersection.
SchematicTurnBox visibility can now be configured using the SetVisibleDistance and
SetProgressVisibleDistance methods.
A null reference exception that occurred in SchematicTurnBox's Event property has been corrected.
GeoBase Transactional
A GeoBase Transactional error that caused a DatabaseException to be thrown when querying a POI
name containing an apostrophe has been corrected.
Silverlight
A problem with Silverlight maps that could cause some route halos to remain visible when the mouse
was moved away from the route line has been corrected.
Geocoding
An error that prevented forward geocoding of US locations that included 'Bay' in their address, such as
'Bluehill Bay, Dana Point, CA', has been corrected.
GeoBase 3.8.0.6 Release Notes
Enhancements and minor fixes
A problem with directions that resulted in missing turn instructions when navigating to a destination has
been corrected.
One Platform for Location Intelligence
Page 81
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
In previous GeoBase releases, naming child elements of the WPF MapControl in XAML resulted in a
compilation error. This no longer occurs.
GeoBase 3.8.0.5 Release Notes
Enhancements and minor fixes
In previous GeoBase 3.8 versions, when using satellite imagery with GeoStream, if
AlwaysReturnErrorTilesOnFailure was set to false and a satellite tile could not be retrieved
because of an error GeoStream would return tile errors rather than falling back to normal map tiles. This
error has been corrected.
In previous GeoBase Mobile releases, a spoken announcement at the arrival of the route destination
was not always made. This has been corrected.
GeoBase and Alchemy now support Kosovo, and South Sudan as a country separate from Sudan.
Internal optimizations have resulted in a reduction in the size of the GeoBase Mobile DLL.
Previously, using '@' or '&' operators when GeoCoding for a street intersection using address
components (for example GeocodeAddress[] gca = GeoCoder.GeoCode("Haight St & Ashbury
St", "San Francisco", "California", "94117", Country.USA);) rather than a single address
(for example GeocodeAddress[] gca = GeoCoder.GeoCode("Haight St & Ashbury St, San
Francisco", Country.USA);) did not return the intersection, but instead the street before the '@' or '&'
operators. This problem has been corrected.
The maximum number of results that can be retrieved from calls to the DrillDownGeoCoder.
GetRegions methods has been increased from 30 to 100.
An error that resulted in an exception when optimizing a route without a fixed end location and containing
a Break with a StartTimeIsFixed property set to true has been corrected.
A problem that caused some GeoCode searches in France to return street names but not street
numbers has been fixed.
A problem that caused the Forward GeoCoder and the DrillDownGeoCoder to return the wrong location
when searching for a city has been resolved.
A stack overflow exception caused by calls to RegionData.GetRegions has been fixed.
A GeoCoding problem that resulted in street searches that included "Avenue" failing to be identified with
streets stored as the short-form "Ave" in the data has been fixed.
The default appearance of map clusters has been improved. ClusterVisualisationDot now has a
default size of 70, and cluster colors will be changed when there are 10, 100 or 1000 items rather than
the previous 11, 101 or 1001. Both ClusterVisualisationDot and
ClusterVisualizationPieChart now also use a larger font by default.
A problem that resulted in cluster images not being displayed correctly on the map if their anchor point
was not the center of the image has been fixed.
One Platform for Location Intelligence
Page 82
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
The 'Allow U-Turns' checkbox option on the Telogis Map Explorer example application is no longer
overridden by the 'UTurn Penalty' numeric field.
InternalRepositoryException has been renamed RepositoryNotSetException. This exception
message indicates that the current thread repository has not been set correctly on a GeoStream request
that makes a GeoBase API call that operates on a repository. Repository.
CurrentThreadRepository must be set to a valid repository in Page_Load or at the top of any custom
aspx or ashx pages to avoid this exception. For example:
<%@ Page Language="C#"
...
Repository.CurrentThreadRepository = new SimpleRepository(@"C:\usa.gbfs");
...
%>
GeoBase 3.8.0.4 Release Notes
Enhancements and minor fixes
A new property, ProgressBarVisible, has been added to the SchematicTurnBox class. This property
enables or disables the visibility of a progress bar indicating the distance to the next navigation
movement.
The default GeoBase Mobile map style has been improved. It now has larger city and town labels, and
larger highway shields.
A problem that caused the vehicle marker to be displayed at the last known navigator position rather than
the current GPS position, thus not always appearing on the map, has been fixed.
A problem that prevented the correct exit instruction being shown on turning circles has been fixed.
The javascript rendering of routes and other polylines has been improved, making them easier to see
when zoomed in.
The default turn icons used by SchematicTurnBox now have transparent backgrounds. This allows the
turnbox container image to be seen behind the icons.
A problem that resulted in a delay before route recalculation could occur when going off-route has been
fixed.
One Platform for Location Intelligence
Page 83
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
GeoBase 3.8.0.3 Release Notes
Enhancements and minor fixes
Navigation distance announcements are now calculated immediately before they are read out. The
announced distances now more closely reflect the actual distance to the turn. Previously, distances were
calculated before the beginning of the entire announcement, which meant that actual distance remaining
could be notably less than the announced distance by the time it was read out.
MapCtrl parents are now checked for visibility before the MapCtrl is drawn. If the MapCtrl or any parent
is not visible then the MapCtrl isn't drawn. Previously only the MapCtrl's visibility was checked.
Exceptions hit when drawing a map in the MapCtrl are now logged, as well as being reported via the
OnRenderException event.
Improvements have been made to the drawing of VehicleMarker, particularly when the GPS fix is poor.
A problem that caused turn arrows to continue to be displayed on the map, even when the previous route
had been stopped, has been corrected.
Improvements have been made to the logging that is performed whilst navigating.
LocalLazyAsyncRouteCalculator has been added so that reroute calculations can be done on a new
thread when navigating. Previously, default reroute calculations were done on the UI thread, resulting in
the map freezing.
A problem with the rendering of polygons, which caused some polygons not to be drawn in certain data
files and at certain zooms, has been fixed.
An improvement has been made to the way the turn arrow is offset to one side of the road at turning circle
turns.
A new SimulatedGps class has been added, making it easier to simulate a GPS, particularly when the
simulation needs to be paused or modified.
Threads created by StaticGps and GpsSimulator classes are now terminated when PowerDown is
called.
A problem on CE devices that prevented MovementCategorizer from loading PNG images has been
corrected.
FilteredGps has been enhanced so that its heading updates if the vehicle travels beyond a threshold
distance, even if it is traveling below the speed threshold.
GeoBase 3.8.0.2 Release Notes
Enhancements and minor fixes
One Platform for Location Intelligence
Page 84
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
A GeoBase Mobile NullReferenceException that was thrown when navigation was stopped has been
fixed.
Previously, using Alchemy to build custom data with a Runtime license without Transactional (gbtx)
support enabled would result in a license exception. This no longer occurs.
Previously, using DataQuery.QueryIndex() with a Runtime license without Transactional (gbtx)
support enabled would result in a license exception. This no longer occurs.
GeoBase 3.8.0.1 Release Notes
Enhancements and minor fixes
Client support for SnapToStreets, a feature which snaps polygon fences to streets, has been added to
the Silverlight API.
In the past, text balloon arrows of BalloonPushPins using non-standard icons did not always touch the
edge of these icons. These balloon arrows now touch the icon, ensuring balloon text is associated with
the correct icon when many points are clustered closely together.
A fault that resulted in the Mobile Simulator or Navigator example applications (Start>Telogis GeoBase
Developer's Kit>Example Applications) failing to provide city results and/or some US states from valid
search requests has been resolved. This behavior was corrected by updating the DrillDownGeoCoder
used by GeoBase Mobile and removing a UI fault.
A fault that resulted in route highlights failing to fit to streets and instead appearing as straight lines has
been corrected.
Some features, including route highlighting, were previously not possible on Javascript maps due to
security policies that prevented cross-site resource sharing (that is, when the map is hosted on a
different domain to the GeoStream). Support for cross origin resource sharing can now be controlled
using the GeoStream web.config file (typically located in the Program
Files\Telogis\GeoBase\GeoStream\server folder). For new GeoStream installations this configuration
has already been completed. However, for existing installations, an additional handler must be added to
the web.config file as follows:
<configuration xmlns="http://schemas.microsoft.com/.NetConfiguration/v2.0">
...
<system.webServer>
<handlers>
...
<add name="CrossOrigin" verb="OPTIONS" path="*"
type="Telogis.GeoBase.GeoStream.Server.CrossOriginHandler, geobase.net" />
</handlers>
</system.webServer>
</configuration>
One Platform for Location Intelligence
Page 85
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
Previously, the Satellite Imagery Demo Javascript example (Start>Telogis GeoBase Developer's
Kit>Sample Code and Projects>Javascript Demos>Satellite Imagery) failed to request all satellite
image tiles when quickly panned or zoomed in and out if using Internet Explorer 6, 7, 8 or 9, resulting in a
blank white screen. This has been corrected.
An unhandled exception that caused MapExplorer to crash if its license expired during use is now
correctly handled. A message indicating that the license has expired will now be thrown.
Previously, map zoom levels on mobile devices updated only when the next GPS update occurred,
resulting in applications appearing slow and unresponsive. The map now updates automatically
whenever a setting on the NavigationManager is changed.
Previously, mousewheel zooming of Javascript maps in the Chrome and Safari web browsers produced
zoom levels double that of other browsers. Zooming using the mousewheel is now uniform and matches
other browsers' behaviors.
GeoBase 3.8 Release Notes
New Features
Satellite Imagery Changes
The satellite imagery feed has been changed to a new source that should provide higher quality and more
recent imagery. For existing servers, changes are needed in the layers.config and web.config files to
enable this functionality. When installed, GeoBase typically places these two files in Program
Files\Telogis\GeoBase\GeoStream\server. Navigate to this folder and open the Web.config file.
Remove the following line (typically line 15):
<add key="SatelliteHost" value="http://imagery1.telogis.com/ImageryCache/" />
Replace with the following:
<add key="WMSSatelliteLayer" value="WMSSatellite" />
Save Web.config and open layers.config. Add the following to the Layers list:
One Platform for Location Intelligence
Page 86
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
<Layer Type="WMS"
Name="WMSSatellite"
RenderMode="underlay"
AuthUrl="http://imagery1.telogis.com/ImageryCache/"
Url="http://imagery1.telogis.com/ImageryCache/wms.aspx?REQUEST=GetMap&amp;
version=1.1.1&amp;layers=Satellite&amp;styles=&amp;format=image/png&amp;
srs=EPSG:4326"
Opacity="100"
ExpiryMinutes="100000"
Copyright=""
Description="Satellite tiles requested using WMS request format from Telogis
ImageryCache."
/>
Note that the Url string above (Url="http://imagery1.telogis.com/ImageryCache/wms.aspx?
REQUEST=GetMap&amp;version=1.1.1&amp;layers=Satellite&amp;styles=&amp;format=image/
png&amp;srs=EPSG:4326") should contain no line breaks or spaces.
Save layers.config. Your GeoStream server will now serve WMS satellite imagery.
The new satellite imagery will go to a new cache directory. There is therefore no need to clear out the old cache
first. However, it may be worthwhile pre-seeding the new cache by requesting tiles before the new GeoStream
goes live (to reduce the delay when customers first ask for satellite tiles - if none of their tiles is cached then
significant satellite imagery will need to be downloaded from Telogis).
In addition to this satellite imagery change, the default map style when in satellite mode has been significantly
enhanced. This change makes maps clearer and allows satellite imagery to show without being obscured by
streets.
Windows Presentation Foundation Support
GeoBase now includes support for Windows Presentation Foundation native control using the new
MapControl and LatLonStringConverter classes. Like MapCtrl for Windows Forms, MapControl
implements the IMap interface with support for zooming, centering, rendering map labels, enabling/disabling
satellite imagery and adjusting map perspective using XAML code.
public class MapControl : UserControl, IMap, IComponentConnector
GeoBase now targets .NET Framework 3.5 or higher. A .NET 2.0 version is still available, however. If this
version is required please contact Telogis support.
One Platform for Location Intelligence
Page 87
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
New Break RouteStop
A new Break class has been added as a derived class of RouteStop. This allows breaks to be scheduled
during a route and, if the break location is known, route optimization to be performed to minimize job
disruption.
A Break may have a location (in which case it is similar to a regular RouteStop) or it may have no location (in
which case Location is set to LatLon.Empty).
No Location:
Break MyNewBreakNoLocation = new Break(LatLon.Empty);
LatLon Location:
Break MyNewBreakWithLocation = new Break(34.0000, -118.0000);
Breaks are supported in Route Optimization with Time Windows.
Indexing External Spatial Data
A new HillbertIndex class has been added. This class supports the generation of numeric index values for
geographic features such as lines, points and polygons in external databases (Oracle or SQL Server, for
example). These values can be used as simple search keys, allowing users unfamiliar with spatial
technologies to easily locate features using conventional database practices.
Feature Indexing:
HilbertIndex a1 = new HilbertIndex();
LatLon a2 = new LatLon(34.0000, -118.0000);
ulong a3 = a1.GetKey(a2);
Two additional classes, HilbertQuery and HilbertRange, are used to query GeoBase using a
BoundingBox or a LatLon and to specify a range of values to be returned.
One Platform for Location Intelligence
Page 88
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
Important Changes
StreetData.Name name changed
StreetData.Name has been renamed to StreetData.Names. This is a breaking change.
Old:
public string[] Name { get; }
New:
public string[] Names { get; }
Enhancements and minor fixes
General
DoubleClick has been enabled on BalloonPushPin.
BalloonPushPin text now wraps automatically.
The LabelBox object on a MapCtrl's RenderList no longer receives MouseEvents when not set to
Visible.
A constructor for ClusterVisualization and ClusterVisualizationDot has been added, taking a
minimum width and height.
Desktop memory allocation within the native dll has been improved. Memory is now freed when no
longer required. Previously, memory was uncommitted but not unreserved and a call to
FreeUnusedPages was required to unreserve memory that was no longer required.
A bug that caused access violations when disposing of RegionData has been fixed.
Previously, the Well Known Text strings held in the WKT property of GeoBase.Polygon and GeoBase.
Geometry.Polygon objects were not culture invariant for cultures with decimal commas. This has been
corrected.
Portuguese, Danish, Norwegian, Swedish, Italian and Spanish language packs have been added.
Contact Telogis support for more information or to upgrade.
The display of historical traffic in the UK at high zoom levels has been fixed.
A bug that could prevent links from containing time zones has been fixed.
One Platform for Location Intelligence
Page 89
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
Exception handling has been improved when loading GBFS data files.
Previously, querying the BKTREE index type with DataQuery.QueryIndex resulted in a database
exception. This has been fixed.
A bug that caused the truncated display of POIs on maps has been fixed.
OutOfMemoryException alerts that were previously caught and suppressed when drawing the map will
now be shown.
An error that could prevent maps from updating correctly when double buffering is used has been fixed.
A trivial MONO runtime warning under Linux has been suppressed.
Geocoding
Forward geocoding of addresses in neighboring suburbs and cities has been improved.
Improvements have been made to the US geocoder.
Road widths are now calculated using the minimum number of lanes implied by LANE_CAT (1, 2 or 4),
the directionality of a link and a default width of of 3.7 meters per lane. This width is taken into
consideration when comparing candidate links.
Speed data can now be optionally added to reverse geocode requests. If speed is used, links where the
vehicle would be speeding are penalized in favor of those where the vehicle is under the speed limit. If
specific speed limit data is not available then the speed limit defaults to the default speeds for the
country.
The SearchAlignLimit parameter has been added to the list of optional reverse geocode parameters.
It will default to 100 meters.
An exception generated when the geocoder attempted to read or write to protected memory has been
fixed.
A bug that prevented some streets from appearing when typing their name into the DrillDownGeoCoder
has been fixed.
A bug that prevented street names with prefixes being found in the DrillDownGeoCoder has been fixed.
The maxResults argument used in two of the overloads of ddgc.GetRegion() now accepts an integer
value and limits the number of results returned rather than being ignored.
The DrillDownGeoCoder no longer displays diamonds with question marks when searches are made
for streets in Scandinavia.
Routing
Directions have been improved. Previously an inappropriate 'keep left' or 'keep right' instruction may have
been issued, where a 'turn left' or 'turn right' was more appropriate. This has been corrected.
Direction instructions in the German language pack now include more details (they are now equivalent to
English directions in detail level).
One Platform for Location Intelligence
Page 90
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
On some DirectionLinks in a route highlight, attempting to access the ImpliedSpeedLimit caused
a NullReferenceException. This has been fixed.
A new class MovementCategorizer has been created with MovementDescription enumeration. This
new class allows a text description, file name or image to be retrieved for movement events.
Directions can now also return a schematic image for movements and have methods for using
custom images.
ReachableArea.WithinTimeSpan now releases memory immediately, and implements IDisposable.
A bug that caused memory access violations when attempting to run a route highlight has been fixed.
Details of the distances and times between stops are now retained when directions are not optimized
(when using GetQuickDirections, for example) rather than being lost.
GeoStream
API support for entering proxy credentials when connecting to a GeoStream server has been added.
GeoCoder.Address.getStreet() in the Javascript API now correctly returns a string rather than an
object.
A bug that caused the map to break when tiles across the world equaled '2' has been fixed.
A bug that caused ImageObject plotting to be incorrect in certain circumstances has been fixed.
The GeoStream server's layers.Config file now includes an AuthUrl element under the
WMSSatellite layer configuration. This element is used for authentication between the server and the
imagery cache.
Previously, leaving a space between the username and password in Users.config prevented users
from logging in. This has been fixed.
All GBFS files found by repositories.config can now be displayed on the repositories.aspx web
page in either an unordered bulleted list, or in comma-separated format.
XSLT layers now render correctly in Internet Explorer 9.
In some web browsers, including Firefox 8 and 10 and Internet Explorer 8 and 9, zooming a Map using
the mouse wheel could result in the browser window scrolling. This has been fixed.
A bug in tutorial.demo.aspx when using Internet Explorer or Chrome has been fixed.
A bug that caused GpsSimulator to throw a NullReferenceException when given directions were
generated over GeoStream has been corrected.
Previously, when zooming into and out of a map ImageObject plotting may have appeared to be
incorrect. This was caused by underlying tiles being incorrectly positioned and has been fixed.
The tutorial.custom-poi.aspx Javascript tutorial's map is now centered on Los Angeles rather than
Dallas. It therefore now works correctly with the PacWest GBFS sample data available from the dev.
telogis.com website.
One Platform for Location Intelligence
Page 91
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
Alchemy and Telogis Workbench
Internal country borders can now be globally enabled or disabled on the map through the parameter
Hide_Internal_Country_Borders on the default desktop/server map style.
Telogis Workbench has been improved so that it can ignore invalid data in shapefiles.
A bug that caused shapefile objects to remain visible after the shapefile had been closed has been
fixed.
General improvements have been made to support debugging in Telogis Workbench.
Telogis Workbench tabs now indicate the type of file that is currently open (Alchemy scripts or
Chameleon files).
The Debug Properties window now includes optional Alchemy arguments (Verbose and Nonstrict).
A bug generated when setting breakpoints in an Alchemy script then switching to a CAM file and back to
the script has been fixed.
An Index Out of Bounds error generated when creating a new CAM file and typing 'begin' into the script
field has been corrected.
Telogis Workbench now supports code outlining and code collapse of Alchemy scripts.
Telogis Workbench now correctly detects that Alchemy has finished running after a failed import.
A bug that caused Telogis Workbench to crash following an Alchemy error has been fixed.
Previously, when the CREATE INDEX statement was used to create more than one index for a table,
Alchemy would throw an exception. This has been corrected.
A custom data license is now able to import POI using Telogis Workbench.
Telogis Workbench can now query line features in custom tables.
Telogis Workbench now remembers layouts when switching between files.
A bug that prevented the map from updating correctly in Telogis Workbench with double buffering
enabled has been fixed.
Telogis Workbench is now better at detecting when a script file has unsaved changes.
A bug that caused focus to change to the error window, preventing the user from typing, has been fixed.
A bug that caused Telogis Workbench to crash when loading data has been fixed.
The menu link to the help (.CHM) file has been fixed.
The default map style width of highways has been reduced at lower zoom levels in order to improve their
appearance on mobile devices.
A bug that caused some African and South American time zones not to show in the reverse geocoder
with Tele Atlas files has been fixed.
A bug that caused data files to also be closed when script files were closed has been fixed.
One Platform for Location Intelligence
Page 92
Tel: (866) 835-6447
Tel: (949) 389-5500
Fax: (866) 422-4096
20 Enterprise, Ste 100
Aliso Viejo, California 92656
w w w .telogis.com
One Platform for
Location Intelligence
Map Explorer
Map Explorer's bug reporting and feedback page now opens the correct (dev.telogis.com/feedback) web
page.
A bug in Map Explorer that caused the thread performing reverse geocoding to use a different repository
than that used by the rest of the application has been fixed.
An allocator exception thrown when closing the Map Explorer has been fixed.
The heading is now translated into the appropriate language in Map Explorer directions.
Rejections of floating point numbers in the truck attributes form (only integers are accepted) have been
clarified to users.
GeoBase Mobile
GeoBase Mobile has been upgraded to the Microsoft .NET Compact Framework Version 3.5 from the
previous Version 2.0.
Draw times for CircleFence have been improved.
The behavior of GeoBase when running in the Windows Mobile ARM emulator has been changed. It will
no longer allow more than one repository to be used.
A cast exception generated by the OnDoubleClick event when the map or its components are doubletapped has been fixed.
A bug that prevented arrival events being announced under some circumstances during navigation has
been fixed.
Previously, using a NMEAGps with the StreamReader constructor would result in a thread becoming
orphaned when the NMEAGps was powered down or disposed. This thread is now terminated normally.
The incorrect calculation of intersection locations on some CE devices has been fixed.
Zoom buttons on maps are now more responsive as maps are updated automatically rather than only on
GPS updates.
Dynamic zooming behavior, allowing zoom levels to be changed based on speed and distance from a
navigation event (such as a turn) has been added to GeoBase Mobile. Previously, only Fixed zoom and
Crossover zoom options were available.
A bug that prevented some street searches from being found has been fixed.
GeoBase Tools
The data format displayed by the GBFS Tool has been updated from 2.7 to 3.0. This is a UI edit: the data
format has not been changed.
The NavServer example now works correctly with the Firefox browser.
One Platform for Location Intelligence
Page 93