echart3.0 地图加载

代码诗人 发布于 2016/03/24 21:12
阅读 1K+
收藏 0

@Liuzh_533 你好,想跟你请教个问题:我更新您的echarts3.0 加载地图 Map not exists。 echart2.0是可以的。

java代码 

public String getMapOption(HttpServletRequest request, String city)
{


GsonOption option = new GsonOption();
option.backgroundColor("#fff");
option.color("gold","aqua","lime");
option.title().text("区域访问监控").x(X.center).padding(50).textStyle(new TextStyle().color("#000").fontSize(40)).show(false);////资源区域分布
option.tooltip().trigger(Trigger.item).formatter("{b}");
option.legend().show(false).orient(Orient.vertical).x(X.right).y("30px").selectedMode("single").textStyle(new TextStyle().color("#000")).data("全国");
option.toolbox().show(true).orient(Orient.horizontal).x(X.right).y(Y.top).feature(Tool.restore, Tool.saveAsImage);
option.dataRange().x(X.right).min(0).max(10).calculable(true).color("#ff3333", "orange", "yellow", "lime", "aqua").textStyle(new TextStyle().color("#fff"));

Map map = new Map("全国");
map.roam(true).hoverable(false).mapType("china");
map.itemStyle().normal().borderWidth(1).borderColor("#fff").areaStyle().color("#3A8FC8");
Data data = new Data();
        map.data(data);
option.series(map);
        
try
        {
HashMap<String, RegionCMData> geoMap = GeoPool.getInstance().getIpGeoCache();
    if(city != null && geoMap != null && geoMap.size()>0)
    {
//     List<String> legend = new ArrayList<String>(geoMap.keySet());
//     List<Map> series = new ArrayList<Map>();
//     for(String city: legend)
//     {
    RegionCMData geodata =  geoMap.get(city);
   
    Map geomap = new Map(city).mapType("china");
    geomap.markLine().smooth(true).effect(new Effect().show(true).scaleSize(1).period(30).color("#fff").shadowBlur(10)).itemStyle().normal().borderWidth(1).lineStyle().type(LineType.solid).shadowBlur(10);
    ItemStyle itemStyle = new ItemStyle();
    itemStyle.normal().label().show(false);
    itemStyle.emphasis().label().position(Position.top);
    geomap.markPoint().symbol("emptyCircle").symbolSize("function(v){var t=v/10; return t>20?20:t;}").effect(new Effect().show(true).shadowBlur(0)).itemStyle(itemStyle);
    geomap.data(data);
     
    List<ArrayList<Data>> marklinedata = new ArrayList<ArrayList<Data>>(); 
    List<MapData> markPointdata = new ArrayList<MapData>();
    Data srcdata = new Data(city);
    if(geodata != null && geodata.getMap() != null)
    {
    HashMap<String, RegionCMData> datamap = geodata.getMap();
    Iterator<String> iterator = datamap.keySet().iterator();
    while(iterator.hasNext())
    {
    String name = iterator.next();
    //String value = UnitAssistant.transformUnitLong(UnitAssistant.FLOW, datamap.get(name).getOctets());
    long value = datamap.get(name).getOctets();
       
    ArrayList<Data> markdata = new ArrayList<Data>();
        Data dstdata = new Data(name, value);
        markdata.add(srcdata);
        markdata.add(dstdata);
         
        marklinedata.add(markdata);
       
        MapData alertData = new MapData(name, datamap.get(name).getAlarmNumber());
        markPointdata.add(alertData);
    }
    }
    geomap.markLine().data().addAll(marklinedata);
    geomap.markPoint().data().addAll(markPointdata);
   
//     series.add(geomap);
//     }
//     option.legend().data().clear();
//     option.legend().data().addAll(legend);
//     option.series().addAll(series);
option.legend().data(city);
option.series(geomap);
    } 
        }
catch (Exception e) 
        {
        logger.error("", e);


        return option.toString();
}
js:

window.assetDetailEvents = {'click': function (e, value, row, index){
$.echarts('asset_discoverResByHours','<%=basePath%>pers/geo/getMapOption?city='+value);
}
};

var echartsMap = {};
var timeout = false; //启动及关闭刷新页面数据
$.extend({ 
echarts:function(a,b){
//$("#"+a).empty(); //清除子元素
var chart = echarts.init(document.getElementById(a));
chart.setTheme(theme);
$.ajax({ 
   type:"POST", 
url:b, 
async:false,
contentType:"application/json",               
success:function(data){ 
var bToObj = eval('('+data+')');
//var bToObj=JSON.parse(data);
chart.setOption(bToObj); 
},
error: function (error) {
timeout = true;
console.log(error);
}
});
// chart.restore();
chart.resize();
//保存echarts对象,自适应屏幕大小
echartsMap[a] = chart;

return chart;
},
drawEchart: function(a,b){
try{
var chart = echarts.init(document.getElementById(a));
chart.setTheme(theme);
if(typeof b === 'string')
eval( "b = " + b );
chart.setOption(b); 
chart.restore();
chart.resize();
//保存echarts对象,自适应屏幕大小
echartsMap[a] = chart;

return chart;
}catch (e) {
timeout = true;
console.log(e);
}
}
});
谢谢您了 急

加载中
0
Liuzh_533
Liuzh_533
晚上回家再看。
0
代码诗人
谢谢了已经解决,我最近在用您的类库,有不明白的还请多多指教
返回顶部
顶部