2017-10-19 23 views
0

これを修正しようとすると問題が発生します。 2つのカスタムBingマップタイプを作成しました。ユーザーは、カスタムドロップボックスを使用してマップの種類を変更できます。ユーザーがDefaultからRoadに変更されたとき。ユーザーがデフォルトに戻った場合、道路の大部分は道路に残ります。あまりにも明白なものを紛失している私は自分のコードを含めました。カスタムBingマップタイプの問題

マップタイプ

var defaultMapColors = 
     { 
      "version": "1.0", 
      "settings": 
       { 
        "landColor": "#686868" 
       }, 
      "elements": 
       { 
        "mapElement": { "labelVisible": false }, 
        "area": { "visible": false }, 
        "transportation": { "visible": false }, 
        "countryRegion": {       //country 
         "borderStrokeColor": "#444444", 
         "borderOutlineColor": "#00000000", 
         "borderWidthScale": 3, 
         "fillColor": "#888888", 
         "visible": true 
        }, 
        "adminDistrict": {       //states 
         "borderVisible": true, 
         "borderStrokeColor": "#444444", 
         "borderOutlineColor": "#00000000", 
         "borderWidthScale": 3, 
         "fillColor": "#888888", 
        }, 
        "water": { "fillColor": "#4E5E6D" }, 
        "point": { "visible": false } 
       } 
     }; 

    var defaultMapColorsWithRoads = 
     { 
      "version": "1.0", 
      "settings": 
       { 
        "landColor": "#686868" 
       }, 
      "elements": 
       { 
        "mapElement": { "labelVisible": false }, 
        "area": { "visible": false }, 
        "transportation": { 
         "visible": true, 
         "strokeColor": "#ffffff", 
        }, 
        "countryRegion": {       //country 
         "borderStrokeColor": "#444444", 
         "borderOutlineColor": "#00000000", 
         "borderWidthScale": 3, 
         "fillColor": "#888888", 
         "visible": true 
        }, 
        "adminDistrict": {       //states 
         "borderVisible": true, 
         "borderStrokeColor": "#444444", 
         "borderOutlineColor": "#00000000", 
         "borderWidthScale": 3, 
         "fillColor": "#888888", 
        }, 
        "water": { "fillColor": "#4E5E6D" }, 
        "point": { "visible": false } 
       } 

     }; 

ドロップダウン

<div class="form-group"> 
     <select id="customNavSelector" class="form-control selectpicker show-tick"> 
      <option value="Default" onclick="map.setView({ mapTypeId: Microsoft.Maps.MapTypeId.road, customMapStyle: defaultMapColors });">Default</option> 
      <option value="Road" onclick="map.setView({ mapTypeId: Microsoft.Maps.MapTypeId.road, customMapStyle: defaultMapColorsWithRoads });">Road</option> 
      <option value="Aerial" onclick="map.setView({ mapTypeId: Microsoft.Maps.MapTypeId.aerial, customMapStyle: '' });">Aerial</option> 
     </select> 
    </div> 

マップオブジェクト

map = new Microsoft.Maps.Map(mapDiv, 
        { 
         credentials: "@ViewBag.BingMapKey", 
         center: new Microsoft.Maps.Location(@ConfigurationManager.AppSettings["CenterLatitude"], @ConfigurationManager.AppSettings["CenterLongitude"]), 
         customMapStyle: defaultMapColors, 
         mapTypeId: Microsoft.Maps.MapTypeId.road, //grayscale, aerial, road, canvasLight, canvasDark 
         //liteMode: true, 
         showMapTypeSelector: false, //set to true to show default bing map selector 
         disableStreetside: false, 
         disableStreetsideAutoCoverage: true, 
         zoom: zoom, 
         backgroundColor: 'black', 
         //showBreadcrumb: true, 
         //showLocateMeButton: locator, 
         enableInertia: false, 
         enableClickableLogo: false, 
         navigationBarMode: Microsoft.Maps.NavigationBarMode.compact  //compact, default, minified 
        }); 

答えて

1

設定既知の問題がありますマップスタイルは新しいスタイルを完全に上書きするのではなく古いスタイルとマージします。チームはこれを修正する予定です。一方で、現在のマップを破棄し、マップスタイルを使用してマップの新しいインスタンスを作成すると、期待どおりに動作します。

+0

私はこれを行うことができるとは思わない。これは、マップに複数のレイヤーが追加された内部マップアプリケーション用です。地図を破棄すると、あなたの提案に基づいてある地図タイプから別の地図タイプに切り替えた場合、現在のデータを失う可能性があります。 – bradoxbl

+0

正しいですが、どのレイヤーがオンになっているかを追跡することができます。単に新しいマップインスタンスに追加するだけです。 – rbrundritt

+0

私はそれがうまくいくかどうかを見るためにこれを試しました。します。しかし、私たちが必要とするものは100%現実的ではありません。今のところ、修正が利用できるようになるまで、道路の選択を止めるつもりです – bradoxbl

関連する問題