2013-02-17 14 views
2

我想專注於選擇美國州時的美國州。代碼是這樣的:jvectormap標記在setFocus調用後出現錯誤

var ddd = { 
     "US-VA": 1, 
     "US-PA": 1, 
     "US-TX": 1, 
     "US-RI": 1, 
     "US-SC": 1, 
     "US-OR": 1, 
     "US-CO": 1, 
     "US-KY": 1 
    }; 
    var map = {}; 

    $(function(){ 
    map = new jvm.WorldMap({ 
     map: 'us_aea_en', 
     backgroundColor: '#EEEEEE', 
     container: $('#us-map'), 
     regionsSelectable: true, 
     regionsSelectableOne: true, 
     regionStyle: { 
      initial: { 
       fill: '#777777', 
       "fill-opacity": 1, 
       stroke: 'none', 
       "stroke-width": 0, 
       "stroke-opacity": 1 
      } 
     }, 
     series: { 
      regions: [{ 
       values: ddd, 
       scale: ['#FF6633', '#FF6622'], 
       normalizeFunction: 'linear' 
      }] 
     }, 
     markerStyle: { 
     initial: { 
     fill: '#F8E23B', 
     stroke: '#383f47' 
     } 
     }, 
     markers: [ 
      {latLng: [41.17, -74.92], name: 'New York'}, 
      {latLng: [34.06, -118.25], name: 'Los Angeles'}, 
      {latLng: [29.98, -95.54], name: 'Houston'}, 
      {latLng: [42.42, -71.3], name: 'Boston'}, 
      {latLng: [32.79, -96.81], name: 'Dallas'}, 
      {latLng: [32.79, -79.95], name: 'Charleston'}, 
      {latLng: [38.02, -122.89], name: 'San Francisco'}, 
      {latLng: [35.17, -106.86], name: 'Albuquerque'}, 
      {latLng: [35.72, -97.99], name: 'Oklahoma City'}, 
      {latLng: [61.22, -149.91], name: 'Anchorage'}, 
      {latLng: [21.47, -158.08], name: 'Honolulu'} 
     ], 
     //onRegionSelected: function(event, isSelected, selectedRegions){ 
     onRegionSelected: function(selectedRegions){ 
      map.setFocus(9, selectedRegions); 
     } 
     }); 
    }); 

當我選擇一個區域標記繪製在錯誤的位置。看到一個小的轉變,如地圖嘗試setFocus,但標記進入左上角。 我使用jvectormap-1.1.1.min.js的jquery-1.8.3.min.js

這裏是加載時的圖: enter image description here

這裏是選擇後的地圖狀態: enter image description here

任何線索?

回答

1

更改您的onRegionSelected法的定義:

onRegionSelected: function(e, code, isSelected, selectedRegions){ 
    map.setFocus(selectedRegions); 
} 

setFocus方法期望接收多達3個參數。第一個是規模,地區代碼或地區代碼數組。第二個和第三個參數是指定視口中心的centerXcenterY

您正在發送號碼9作爲第一個參數,然後發送事件對象的第二個參數和奇怪的事情發生。此外,如果您爲地圖設置了regionsSelectableOne: false,則會看到它將縮放到適當的級別以包含所選區域(州)。

相關問題