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& version=1.1.1&layers=Satellite&styles=&format=image/png& 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&version=1.1.1&layers=Satellite&styles=&format=image/ png&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
© Copyright 2024