GermaniumWeb API Release Notes
This minor release updates the existing APIs in non-breaking ways, e.g. by adding new functions and fixing bugs. There is no corresponding plugin release.
API Version 1.5
NEW
- Added the OcclusionMode property to the IconStyle class, which controls whether an icon will fade when obstructed by other objects.
- IconStyle.GetOcclusionMode() and IconStyle.SetOcclusionMode()
- Note: Due to a bug in plugin 1.33, this property is ignored when the default icon is used, i.e. when the IconStyle's Image is not set. This will be fixed in the next plugin release.
BUG FIX
- On Chrome 12, strings sent to the GermaniumWeb plugin get corrupted, preventing loading of building files. This has been fixed.
API Version 1.4, 1.3, 1.2
BUG FIX
- On Chrome 12, strings sent to the GermaniumWeb plugin get corrupted, preventing loading of building files. This has been fixed.
API Version 1.5
Requires the end-user to install GermaniumWeb plugin 1.33.
NEW
- Added the ModelGeometry and the ModelStyle classes. It enables you to create Placemarks with an arbitrary 3D model.
- Added new Events:
- OnModelLoadEnds
- OnPlacemarkDeactivated
- OnCalloutOpened, OnCalloutClose and OnCalloutClosed
- Added the WebControl.OpenPlacemarkCallout() function to allow opening of the active Placemark's callout programmatically.
- Added the experimental HTMLBox class. It creates a 2D box on top of the 3D view that may contain HTML content.
DEPRECATED
- Deprecated Germanium.SetFocus()
- It is replaced by WebControl.SetFocus()
- Deprecated PolygonGeometry.SetNormal() due to misleading name.
- It is replaced by PolygonGeometry.SetOrientationByNormal().
UPDATE
- Added Google Chrome to list of supported browsers.
- The functions WebControl.CreateEyeParamsToFitObjects() and WebControl.CreateEyeParamsToFitObjectsByHandle() now accepts an optional EulerAngle to specify the desired orientation.
- Levels can now be retrieved using their fully qualified BBLIds. Fully qualified BBLIds are concatenated BBLIds of the format <<BuildingBBLId>::<BlockBBLId>::<LevelBBLId>> e.g. GM::OFFICE::L01.
- A Level can be retrieved using its fully qualified BBLId by the updated function WebControl.GetLevelByBBLId().
- The fully qualified BBLId of a level may be obtained using Level.GetFullyQualifiedBBLId().
- The function WebControl.SetActivePlacemark() now accepts an optional Boolean parameter. If set to false, the callout will not be opened.
- Added the following functions to the PolygonGeometry class:
- PolygonGeometry.SetOrientationByNormal().
- PolygonGeometry.SetOrientationByNormalAndUp(). This function provides finer control over the orientation of the polygon.
- PolygonGeometry.GetUpVector() to allow querying of the resultant up vector of the polygon after its orientation is set.
- PolygonStyles can set an image as the fill color of a PolygonGeometry using the following functions:
- Scene Lighting Property has been added to PolygonStyles. This property controls whether a PolygonGeometry will be rendered with the same real-time lighting as the buildings:
- Added the following functions to query type of Geometry and GeometryStyle:
- Added the following functions to manipulate the tilt limits of the Eye:
- Added the following Germanium Types:
- The function WebControl.RemoveAllEventHandlers() can now be called with 0 arguments, which will remove all event handlers for all GermaniumWeb events.
- The GermaniumWeb plugin area now displays a "Starting" placeholder message while the plugin's <object> is being embedded (for all plugin versions). With plugin 1.33, embedding also stalls the browser less.
BUG FIX
- In IE6, the GermaniumWeb plugin area would briefly appear on the top-left of the page during initialization. This has been fixed.
- Fixed issue where the GermaniumWeb plugin area would be too large if the HTML element it was embedded in had a CSS border.
- Germanium.Event.mouseWheelDelta property was missing.
API Version 1.4 and 1.3
UPDATE
- Added Google Chrome to list of supported browsers.
- Added the following Germanium Types:
- The GermaniumWeb plugin area now displays a "Starting" placeholder message while the plugin's <object> is being embedded (for all plugin versions). With plugin 1.33, embedding also stalls the browser less.
BUG FIX
- In IE6, the GermaniumWeb plugin area would briefly appear on the top-left of the page during initialization. This has been fixed.
- Fixed issue where the GermaniumWeb plugin area would be too large if the HTML element it was embedded in had a border.
- Germanium.Event.mouseWheelDelta was missing.
API Version 1.2
UPDATE
- Added Google Chrome to list of supported browsers.
- The GermaniumWeb plugin area now displays a "Starting" placeholder message while the plugin's <object> is being embedded (for all plugin versions). With plugin 1.33, embedding also stalls the browser less.
BUG FIX
- In IE6, the GermaniumWeb plugin area would briefly appear on the top-left of the page during initialization. This has been fixed.
- Fixed issue where the GermaniumWeb plugin area would be too large if the HTML element it was embedded in had a border.
- Germanium.Event.mouseWheelDelta was missing.
Plugin Version 1.33
This section lists GermaniumWeb plugin changes which affect API users. For the list of plugin changes affecting end users, see the plugin release notes.
NEW
- Added support for Internet Explorer 9. Plugins 1.32 and older do not work on this browser.
- Added support for Google Chrome 10. Plugins 1.32 and older do not work on this browser.
UPDATE
- The placemark callout now remains open even when the Eye is moved. Previously, it would close and the active placemark would be deactivated. In order not to disrupt existing apps, this behavior is only enabled when API 1.5 is targeted.
- The placemark callout now tries to open slanted to the side of the placemark instead of directly above/below. This reduces overlap between the callout's tail and the placemark.
- Overlapping placemark labels have been made more readable by fading out the ones behind. While this preferable in most cases, we recommend you test your apps to assess the new user experience.
- Partially-overlapped icon placemarks are now clearer to see.
- In Orbit navigation mode, the tilt angle is now limited to straight down and straight up by default. In API 1.5, you can configure this using the Options.
- The license error message is now more prominent. Please ensure your API key is correctly specified.
BUG FIX
- Due to changes in Mozilla code for Firefox 4, if an app registered to the Germanium.Event.OnMouseWheel event, in some cases - especially after an Alt-Tab - the browser would hang when the user rolled the mouse wheel. This has been fixed in 1.33. Unfortunately, this fix required dropping support for Firefox 2.
If your app is still targeting API 1.4 or older, we recommend you detect the browser and plugin version and not use that event when the plugin version is 1.32 or older. - Non-power-of-two dimensioned icon placemarks were blurry.
API Version 1.4, 1.3 & 1.2
NEW
- Added beta support for Google Chrome.
BUG FIX:
- Fixed WebControl.CreateEulerAngleByLookingAt() was throwing an exception when Coordinates (0, 0, -1) was specified.
API Version 1.1
NEW
- Added beta support for Google Chrome.
Plugin Version 1.32
This section lists GermaniumWeb plugin changes which affect API users. For the list of plugin changes affecting end users, see the plugin release notes.
NEW:
- Added support for languages which use complex scripts, e.g. Tamil. Note that the end user will need to have the appropriate fonts installed, e.g. Arial Unicode MS.
BUG FIX:
- Eye.GlideEyeToFit() and WebControl.CreateEyeParamsToFitObjects() did not respect ClipPlanes. Now, both functions fit only to the unclipped portions of the input objects.
- When speedMultiplier was specified in a Glide() function, if a following Glide() call did not specify the speedMultiplier or specified a speedMultiplier of 1, the previous call's value would be used.
API Version 1.4
Requires the end-user to install GermaniumWeb plugin 1.31.
NEW:
- Added BalloonStyle class. It controls the appearance of a callout balloon.
- Added new events: OnCalloutCloseButtonClicked, OnGlideEnded, OnKeyDown/OnKeyUp.
- Added Navigation mode functions: WebControl.SetNavigationMode() & WebControl.GetNavigationMode().
DEPRECATE:
- Deprecated the experimental First Person Navigation functions in Eye class: EnableFirstPersonNavigation(), DisableFirstPersonNavigation(), GetFirstPersonNavigationEnabled(), SetFirstPersonNavigationEnabled(), & IsFirstPersonNavigationEnabled().
- They are replaced by WebControl.SetNavigationMode() & WebControl.GetNavigationMode().
- Deprecated the experimental functions in Eye class: GetFirstPersonEyeHeight(), SetFirstPersonEyeHeight(), GetFirstPersonFloorHeight(), & SetFirstPersonFloorHeight().
- They are replaced by the same functions in Options class: GetFirstPersonEyeHeight(), SetFirstPersonEyeHeight(), GetFirstPersonFloorHeight(), & SetFirstPersonFloorHeight().
- Deprecated the grid visibility functions in Eye class: GetGridVisibility(), SetGridVisibility(), ShowGrid(), & HideGrid().
- They are replaced by the functions in Options class: GetGridVisibility() & SetGridVisibility().
- Deprecated the function Eye.GlideTargetToVisualObject().
- It is absorbed into the new Eye.GlideEyeToFit().
UPDATE:
- Removed all functions that use Id (deprecated in API 1.0). These have all been replaced by Handle equivalents:
- GetId() function from classes Object, Entity, BBLObject, Building, Block, Level, VisualObject, Placemark, Geometry, StyleSet.
- Building.GetBlockById()
- Block.GetLevelById()
- WebControl class:
- GetPlacemarkById() & RemovePlacemarkById()
- GetBuildingById(), GetBlockById(), & GetLevelById()
- Added 2 new functions in WebControl class to create Eye parameters that best fit objects in the 3D view: CreateEyeParamsToFitObjects() & CreateEyeParamsToFitObjectsByHandle().
- Added new functions in Eye class:
- more convenient versions of existing glide functions: GlideEyeTo(), GlideTargetTo(), & GlideEyeToFit()
- query function: CanSeeVisualObject()
- Added new functions to PolygonGeometry class: Append3DVertex(), Insert3DVertex(), Replace3DVertex(), Get3DVertex(), Set3DVertices().
- Added new functions to ClipPlane class: GetOrientation() & SetOrientation().
- Added new functions to Options class:
- grid height: GetGridHeight() & SetGridHeight()
- disabled navigation settings: GetNoNavigationCursorEnabled() & SetNoNavigationCursorEnabled()
- orbit navigation settings: GetOrbitMaxTargetDistance() & SetOrbitMaxTargetDistance()
- first person navigation settings: GetFirstPersonEyeHeight()/SetFirstPersonEyeHeight(), GetFirstPersonFloorHeight()/SetFirstPersonFloorHeight()
- animated fading: IsAnimatedFadingEnabled()
- auto-rotation settings: GetAutoRotationDirection()/SetAutoRotationDirection(), GetAutoRotationPeriod()/SetAutoRotationPeriod(), & GetAutoRotationCancellable()/SetAutoRotationCancellable()
BUG FIX:
- Callout content was misaligned when browser zoom level was not at 100%.
- On Internet Explorer, if the initialization successCallback handler called a glide function, the glide sometimes ended up in the wrong place.
- On Internet Explorer, if the initialization successCallback handler opened a placemark's callout, the callout would be too small.
- Percent decoding for URLs with Chinese characters was incorrect.
API Version 1.3
BUG FIX:
- Callout content was misaligned when browser zoom level was not at 100%.
- On Internet Explorer, if the initialization successCallback handler called a glide function, the glide sometimes ended up in the wrong place.
- On Internet Explorer, if the initialization successCallback handler opened a placemark's callout, the callout would be too small.
- Percent decoding for URLs with Chinese characters was incorrect.
API Version 1.2 & 1.1
BUG FIX:
- On Internet Explorer, if the initialization successCallback handler called a glide function, the glide sometimes ended up in the wrong place.
- On Internet Explorer, if the initialization successCallback handler opened a placemark's callout, the callout would be too small.
- Percent decoding for URLs with Chinese characters was incorrect.
Plugin Version 1.31
This section lists GermaniumWeb plugin changes which affect API users. For the list of plugin changes affecting end users, see the plugin release notes.
NEW:
- The plugin now prevents the user from zooming out too far by limiting the target distance to 5km. You can change this value in API 1.4 through Options.SetOrbitMaxTargetDistance().
UPDATE:
- The plugin now returns to its current navigation mode after a glide or an auto-rotate operation. In version 1.30, it would always return to the Orbit navigation mode.
- The eye controls (buttons) are now disabled:
- When the navigation mode is set to Disabled.
- During a glide operation; and
- During auto-rotation.
- Added support for vertices specified in clockwise order for PolygonGeometry. Thus, when the end-user has plugin 1.31 or newer installed, you can specify vertices in clockwise order and PolygonGeometry.IsValid() will still return true and the placemark will appear as expected.
BUG FIX:
- In First Person navigation mode, nearby objects are no longer clipped away. However, note that very distant objects (>1 km) may now experience z-fighting.
- If a glide function was called when the eye was already at the glide destination, OnGlideCompleted would be raised before the glide function call returned. The event is now raised a short while later. Also, querying Eye.IsGliding() immediately after the glide function call will always return true (as long as there were no errors).
This minor release updates the existing APIs in non-breaking ways, e.g. by adding new functions. There is no corresponding plugin release.
API Version 1.3
DEPRECATE:
- Deprecated SetColorWeb() in classes ArrowStyle & DiamondStyle.
- It is absorbed into ArrowStyle.SetColor() & DiamondStyle.SetColor().
- Deprecated GetColorR(), GetColorG(), GetColorB(), & GetColorA() in classes ArrowStyle & DiamondStyle.
- Deprecated LabelStyle.SetTextColorWeb().
- It is absorbed into LabelStyle.SetTextColor().
- Deprecated the following functions in PointGeometry class: GetPositionX(), GetPositionY(), & GetPositionZ().
- They are replaced by the properties in Coordinates class.
UPDATE:
- Modified functions to accept more parameter combinations for convenience:
- AppendVertex(), InsertVertex(), & ReplaceVertex() in LineStringGeometry class now accept a 3D vertex as a Coordinates object or 3 floats.
- AppendVertex(), InsertVertex(), & ReplaceVertex() in PolygonGeometry class now accept a 2D vertex as 2 floats.
- EyeParams.Set() now also accepts an EyeParams object.
- Vector3.Set() now also accepts a Vector3 object or a Coordinates object.
- Options.SetBackgroundColor() now also accepts a string, 3 integers, or 4 integers.
- Added Coordinates.Set()& EulerAngle.Set().
- Added functions to get color as a string:
- Added ToString() function to the classes Coordinates, EulerAngle, and Color.
BUG FIX:
- The event OnEyeMoved did not work for Firefox.
- The function WebControl.CreateEulerAngleByLookingAt() was failing and throwing an exception when the input points were at the same height.
- Path resolution in WebControl.Load() handled percent-encoded characters incorrectly.
API Version 1.2
BUG FIX:
- The function WebControl.CreateEulerAngleByLookingAt() was failing and throwing an exception when the input points were at the same height.
- Path resolution in WebControl.Load() handled percent-encoded characters incorrectly.
API Version 1.1
BUG FIX:
- Path resolution in WebControl.Load() handled percent-encoded characters incorrectly.
Note: As announced earlier, API version 1.0 has been retired. API requests for 1.0 will now receive 1.1 instead.
API Version 1.3
Requires the end-user to install GermaniumWeb plugin 1.29.
Starting with this API version, we are introducing experimental features. These features are ready to be used, but are likely to have breaking API changes in future releases. Use them only if you are prepared to update your application in the next API release.
NEW:
- Added ClipPlane class. ClipPlanes are controlled through the WebControl.
- Added LineStringGeometry & LineStyle classes. They make a Placemark appear as a series of lines.
- Added PolygonGeometry & PolygonStyle classes. They make a Placemark appear as a polygon, with optional height.
- Added Vector2 class. It represents value pairs, such as 2D coordinates.
- Added Vector3 class. It represents triples, such as 3D coordinates or a 3D vector.
- Added new events: OnCriticalError, OnBuildingHidden/OnBuildingShown, OnBlockHidden/OnBlockShown, OnLevelHidden/OnLevelShown, OnEyeMoved
- Experimental:
- Added the LevelCursor class.
- Added first person navigation mode to Eye class.
DEPRECATE:
- Deprecated the functions Level.UnhideLevelsAbove() & Level.UnhideLevelsBelow().
- They have been replaced with Level.ShowLevelsAbove() & Level.ShowLevelsBelow().
UPDATE:
- A VisualObject can now be attached to a BBL object. This way, we can attach a Placemark to a Level and the Placemark will be hidden when the Level is hidden.
- VisualObject class: attached to BBL property
- BBLObject class: BBL properties
- The failure callback function for Germanium.CreateInstance() is now given an informative error code.
- The function Eye.SetTargetDistance() now accepts an optional boolean parameter. If set true, the function will move the Eye instead of the target.
- Added max view distance property to VisualObject class.
- Added new properties to Placemark class: max label view distance and label visibility.
- Added the following convenience functions:
- in WebControl class: ShowAllBuildings() & HideAllBuildings()
- in Building class: ShowAllBlocks() & HideAllBlocks()
- in Block class: ShowAllLevels() & HideAllLevels()
- The functions Eye.GlideEyeToLevel() & Eye.GlideEyeToLevelOrt() now falls back to LevelCursor if input Level is null.
- Made class inheritance more apparent. New abstract classes were added without changing API behavior: Object, Hideable, & BBLObject.
- Added Vector3 utility functions in Germanium class: Add(), Subtract(), Multiply(), & Divide().
BUG FIX:
- The function ArrowStyle.SetTailLength() did not accept the value 0.
API Version 1.2 & 1.1
UPDATE:
- The failure callback function for Germanium.CreateInstance() is now given an informative error code.
BUG FIX:
- The function ArrowStyle.SetTailLength() did not accept the value 0.
Plugin Version 1.29
This section lists GermaniumWeb plugin changes which affect API users. For the list of plugin changes affecting end users, see the plugin release notes.
NEW:
- Added support for HTTP proxy servers. Accessed through the user settings panel (Right click > Settings > Network). See plugin release notes for further details.
UPDATE:
- Rendering is now much smoother, particularly noticeable during glides and when auto-rotation is on.
- Loading is now smoother for applications which make multiple Load() calls simultaneously.
- More informative errorMessages are returned for RetrievalFailures when loading .xlcl files.
BUG FIX:
- Eye.Compute3DIntersection() did not return correct values for Intel chipsets. Performance has also been enhanced for all graphics chipsets.
KNOWN ISSUES:
- Placemark callout is incorrectly positioned when browser page zoom (View > Zoom In/Out with Zoom Text Only unchecked on Mozilla Firefox, Page > Zoom on Internet Explorer) is used. Crashes may occur periodically too. For now, please leave page zoom at 100%. This issue also applies to older versions of the plugin.
API Version 1.2 & API Version 1.1
UPDATE:
- The function Image.SetSourceUrl() now supports both absolute and relative paths.
- The function WebControl.CreateCoordinates() now allows passing no parameter.
BUG FIX:
- Fixed a bug in path resolution algorithm. The API used to incorrectly resolve UNC paths that start with "\\" (e.g. "\\server\example.kml").
- The functions StyleSet.HasLabelStyle() & StyleSet.HasGeometryStyle() used to cause an error.
- The function WebControl.SetSize() did not work on Mozilla Firefox.
- The function ArrowStyle.SetTailLength() considered the value 0 as invalid input.
API Version 1.0
UPDATE:
- The function WebControl.CreateCoordinates() now allows passing no parameter.
BUG FIX:
- Fixed a bug in path resolution algorithm. The API used to incorrectly resolve UNC paths that start with "\\" (e.g. "\\server\example.kml").
- The functions StyleSet.HasLabelStyle() & StyleSet.HasGeometryStyle() used to cause an error.
Plugin Version 1.28
This section lists GermaniumWeb plugin changes which affect API users. For the list of plugin changes affecting end users, see the plugin release notes.
NEW:
- Chinese, Japanese, and Korean placemark names are now readable in the scene. They were previously drawn as '?' symbols.
Note: If you see squares after installing this plugin, please see this FAQ.
BUG FIX:
- Non-English placemark names and content were corrupted in Mozilla Firefox, in the placemark callout and when retrieved by Placemark.GetName() and Placemark.GetContent().
- Eye.ConvertWindowTo3D() was returning incorrect coordinates when Eye.SetOrthographicProjection() was on.
API Version 1.2
Note that items marked with * require the end-user to install GermaniumWeb plugin 1.27.
DEPRECATE:
- Deprecated the functions WebControl.RadianToDegree() & WebControl.DegreeToRadian().
- These have been replaced with Germanium.RadianToDegree() & Germanium.DegreeToRadian().
UPDATE:
- *Local datasets are allowed for locally-hosted web applications.
- Added the function WebControl.CreateEulerAngleByLookingAt().
- Modified the function WebControl.Load() to:
- support both absolute and relative paths as parameter.
- pass an error code to failure callback function when loading fails.
- Added the functions WebControl.SetDocumentBase() & WebControl.GetDocumentBase(). Document base is used to resolve relative paths.
- Added new error codes to LoadEventErrorCodes:
- PluginNotInitialized
- InvalidFilepath
- Added the function WebControl.CreateVersion() to create Version objects.
BUG FIX:
- *If the successCallback function passed to Germanium.CreateInstance() called SetActivePlacemark(), the popped-up placemark callout would be very small. It is now correctly sized.
- *If the user played a Flash movie embedded in a placemark's content (e.g. YouTube), sometimes the next callout would be too large.
API Version 1.1
NEW:
- Added Style class. It is the base class for GeometryStyle and LabelStyle classes.
- Added ArrowStyle class. It inherits GeometryStyle class and can be used to control the appearance of a placemark.
- Added conversion functions WebControl.DegreeToRadian() and WebControl.RadianToDegree().
- Added Image class and IconStyle class. These classes allow you to use icon placemarks in your application.
UPDATE:
- GeometryStyle and LabelStyle classes now inherit Style class.
- Added functions StyleSet.HasGeometryStyle() and StyleSet.HasLabelStyle().
- Added parameters "infoUrl" and "interactive" to Placemark creator function WebControl.CreatePlacemark().
- Added the function WebControl.CreateArrowStyle().
- Added the functions ArrowStyle.ApplyScale() and DiamondStyle.ApplyScale().
- Added the function LabelStyle.SetTextColorWeb().
- Added the function Eye.GlideTargetToVisualObject().
- Added the function WebControl.CreateImage() and WebControl.CreateIconStyle().
BUG FIX:
- The plugin area was not resized according to the size of plugin div container when the browser is resized by the application user.
- When the plugin failed to initialize, incorrect error messages were displayed.
- Embedding Flash plugin on a callout used to result in unresponsive content.
Plugin Version 1.26
This section lists GermaniumWeb plugin changes which affect API users. For the list of plugin changes affecting end users, see the plugin release notes.
BUG FIX:
- The grid was being drawn 0.2m lower than it should have. This offset has been removed. The ability to configure this offset will be added in a future release of the API.
Note on Experimental Features
Experimental features are previews of upcoming features. We welcome you to try these and give us your feedback. However, we do not recommend using them in production environments as their interface or behavior may change without warning in future releases as they are improved based on feedback.