Class BingMapsLayer

All Implemented Interfaces:
RemoteResource, LayerContent, Loadable

public final class BingMapsLayer extends ServiceImageTiledLayer
A layer that can visualize data from a Bing Maps web service.

A Bing maps layer displays map content from a Bing Maps web service, providing access to static map tiles and imagery meta-data. Map style and culture can be customized prior to loading the layer.

Functional characteristics

Bing maps require an API key from Microsoft. There are two ways to set this key:

A Bing maps layer will fail to load if it does not have a Bing map key or a Portal from where it can get the Bing map key. In this situation, you can set the getKey() and call Loadable.retryLoadAsync(). To use the BingMapsLayer you must adhere to Microsoft's Mobile Brand Guidelines.

Bing maps layers do not support identify, query, selection, or time.

Performance characteristics

Bing maps layers perform similarly to other tiled layers. Raster tiles are fetched from Bing's servers on demand.

Example for working with Bing Maps layer

 BingMapsLayer bingMapsLayer = new BingMapsLayer(Style.AERIAL, <bing-maps-key>");
 
 bingMapsLayer.addDoneLoadingListener(new Runnable() {
   public void run() {
     if (bingMapsLayer.getLoadStatus() == LoadStatus.LOADED) {
       // work with bingMapsLayer here
     }
   }
 });
 
 map.getOperationalLayers().add(bingMapsLayer);
 
The layer is loaded when displayed in a MapView or a SceneView; if using the layer without a MapView or a SceneView, call the Layer.loadAsync() method. Use the layer done loading event to determine when the layer is ready, and check the load status before using the layer; see Layer.addDoneLoadingListener(Runnable) and Layer.getLoadStatus().
Since:
100.1.0
See Also:
  • Constructor Details

    • BingMapsLayer

      public BingMapsLayer(BingMapsLayer.Style style, Portal portal)
      Creates a Bing maps layer with the given style and the Bing Maps API Key given by the specified portal.
      Parameters:
      style - the type of Bing maps layer such as aerial or road
      portal - a portal that provides a Bing Maps API key
      Throws:
      IllegalArgumentException - if style is null
      IllegalArgumentException - if portal is null
      Since:
      100.1.0
    • BingMapsLayer

      public BingMapsLayer(BingMapsLayer.Style style, String key)
      Creates a Bing maps layer with the given style and Bing Maps API Key.
      Parameters:
      style - style of the Bing maps layer
      key - the Bing Maps API key
      Throws:
      IllegalArgumentException - if style is null
      IllegalArgumentException - if key is null or empty
      Since:
      100.1.0
  • Method Details

    • getCulture

      public String getCulture()
      The culture for this Bing maps layer.

      Culture determines the language used for labels in this layer. English (en-US) is used by default. For a list of all available options, see Supported Culture Codes.

      The value of getCulture() cannot be changed after the layer loads.

      Attempting to set the value to null will throw a NullPointerException exception.

      Returns:
      the culture that was set, or "en-US" if not set or was set to an invalid value
      Since:
      100.1.0
    • setCulture

      public void setCulture(String culture)
      Sets the culture.

      This determines the language that is used to display text. If the culture is not set or is set to an invalid value, then "en-US" is used.

      See Supported Culture Codes for a list of valid culture codes.

      This should be called before loading the layer.

      Parameters:
      culture - the culture to set
      Throws:
      IllegalArgumentException - if culture is null or empty
      ArcGISRuntimeException - if set after the layer has loaded
      Since:
      100.1.0
    • getPortal

      public Portal getPortal()
      Gets the portal from which this layer got its Bing Maps API key (if applicable).
      Returns:
      the Portal the layer will load its Bing Maps API key from, or null if none
      Since:
      100.1.0
    • getStyle

      public BingMapsLayer.Style getStyle()
      Gets the Bing Maps style used to display this layer.

      The value of getStyle() cannot be changed after the layer loads.

      Returns:
      the style used to create this layer
      Since:
      100.1.0
    • getKey

      public String getKey()
      Gets Bing Maps API key for this layer.

      The value of getKey() cannot be changed after the layer loads.

      Returns:
      the key that was set
      Since:
      100.1.0
    • setKey

      public void setKey(String key)
      Sets Bing Maps API key for this layer.

      The value of getKey() cannot be changed after the layer loads.

      Parameters:
      key - the key to set
      Throws:
      IllegalArgumentException - if key is null or empty
      Since:
      100.1.0
    • getUri

      public String getUri()
      Returns:
      the URI of this RemoteResource
      Throws:
      UnsupportedOperationException - always throws this exception
      Since:
      100.1.0
    • getTileUrl

      protected String getTileUrl(TileKey tileKey)
      Specified by:
      getTileUrl in class ServiceImageTiledLayer
      Parameters:
      tileKey - tile key for which the url is to be returned
      Returns:
      the url to be used to request a tile, can't be null or empty
      Throws:
      UnsupportedOperationException - always throws this exception
      Since:
      100.1.0
    • copy

      public BingMapsLayer copy()
      Creates a deep copy of this BingMapsLayer instance.
      Returns:
      a deep copy of this BingMapsLayer instance, which means that copies of all fields of this layer are made including its loading state
      Since:
      100.1.0