我想关注美国在选择美国州方面的问题。代码是这样的:
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
这是加载后的地图:
选择州后的地图如下:
有任何线索吗?
答案 0 :(得分:1)
将onRegionSelected
方法的定义更改为:
onRegionSelected: function(e, code, isSelected, selectedRegions){
map.setFocus(selectedRegions);
}
setFocus
方法最多可以接收3个参数。第一个是比例,区域代码或区域代码数组。第二个和第三个参数是centerX
和centerY
,用于指定视口的中心。
您发送了数字9
作为第一个参数,然后发送事件对象的第二个参数发生了奇怪的事情。
此外,如果您为地图设置了regionsSelectableOne: false
,您会看到它缩放到适当的级别以包含所选区域(状态)。