0
我使用amMap國家地圖,並希望以顯示氣球所有國家名稱,而不翻車或懸停在該國。意味着所有氣球在地圖加載中都可見。氣球在amMap國家地圖
我使用amMap國家地圖,並希望以顯示氣球所有國家名稱,而不翻車或懸停在該國。意味着所有氣球在地圖加載中都可見。氣球在amMap國家地圖
顯示多個翻轉氣球,或者使它看起來沒有在一個國家徘徊是不可能的,恐怕是不可能的。
你可以做的是在每個國家顯示「標籤」。標籤是帶有文本標籤且沒有實際圖像的MapImage
的實例。
放置使用經度每一個國家的圖像/標籤/緯度座標可以說是相當繁瑣的工作。因此,您可以用下面的例子就會自動將這些區域標題中的每個區域的幾何中心。
http://codepen.io/amcharts/pen/5687a78507081e1c8779cf067b762de7
上面的圖是美國的,但你可以使用代碼在這上面幾乎任何地圖上處理的標籤。
下面的代碼負責人認爲:
map.addListener("init", function() {
// set up a longitude exceptions for certain areas
var longitude = {
"US-CA": -130,
"US-FL": 120,
"US-TX": 1,
"US-LA": 40
};
var latitude = {
"US-AK": -85
};
setTimeout(function() {
// iterate through areas and put a label over center of each
map.dataProvider.images = [];
for(x in map.dataProvider.areas) {
var area = map.dataProvider.areas[ x ];
area.groupId = area.id;
var image = new AmCharts.MapImage();
image.latitude = latitude[ area.id ] || map.getAreaCenterLatitude(area);
image.longitude = longitude[ area.id ] || map.getAreaCenterLongitude(area);
image.label = area.id.split('-').pop();
image.title = area.title;
image.linkToObject = area;
image.groupId = area.id;
map.dataProvider.images.push(image);
}
map.validateData();
console.log(map.dataProvider);
}, 100)
});
請注意,有時國家/州的形狀不會使死點一個完美的合乎邏輯的地方放置一個標籤。對於那些情況使用longitude
和latitude
覆蓋調整標籤的位置對特定國家。