/// <summary>
 /// adds another mapDataStore </summary>
 /// <param name="mapDataStore"> the mapDataStore to add </param>
 /// <param name="useStartZoomLevel"> if true, use the start zoom level of this mapDataStore as the start zoom level </param>
 /// <param name="useStartPosition"> if true, use the start position of this mapDataStore as the start position </param>
 public virtual void AddMapDataStore(MapDataStore mapDataStore, bool useStartZoomLevel, bool useStartPosition)
 {
     if (this.mapDatabases.Contains(mapDataStore))
     {
         throw new System.ArgumentException("Duplicate map database");
     }
     this.mapDatabases.Add(mapDataStore);
     if (useStartZoomLevel)
     {
         this.startZoomLevel = mapDataStore.StartZoomLevel.Value;
     }
     if (useStartPosition)
     {
         this.startPosition = mapDataStore.StartPosition;
     }
     if (null == this.boundingBox)
     {
         this.boundingBox = mapDataStore.BoundingBox;
     }
     else
     {
         this.boundingBox = this.boundingBox.ExtendBoundingBox(mapDataStore.BoundingBox);
     }
 }
 /// <summary>
 /// Extracts substring of preferred language from multilingual string using
 /// the preferredLanguage setting.
 /// </summary>
 protected internal virtual string ExtractLocalized(string s)
 {
     return(MapDataStore.Extract(s, preferredLanguage));
 }