http://www.weather.com.cn/static/html/weather.shtml?怎样做一个类似于这个链接中的电子地图 可以放大缩小

解决方案 »

  1.   

    你的那个例子是 Flish 做的,里面就是动画而已,如果在VB中做,也就是几个图形叠加显示的问题,直接用一些图形处理方法或函数就解决了。
    要不你同样用Flash来做,在VB里调用 Flash 控件显示这种效果也很简单。
    还有更简单的方法,图都不用自己画,就是直接调用浏览器控件,然后写个谷歌的地图脚本,也可以实现这样的效果,操作主要是设置经纬度和距离高度,缺点就是要求网络环境。
    还有一种方法,是调用 MapX 的控件(不过你要有地图数据),然后调用控件中的属性和方法就可以设置与显示你要显示的地区,操作和谷歌接口差不多,也是设置经纬度和距离高度,只不过用的是控件的属性和方法而已,但这样可以断网实现。
      

  2.   

    SupermanKing 请问如果用flash做完后再在VB中调用,那么我还可以在VB中对地图进行编辑吗?比如说我想做个预警系统,当有火险是在地图上某一区域用不同的颜色显示出来!
      

  3.   

    这就需要VB配合Flash的AS脚本来写了,主要功能还是在AS里写,VB只是传递个参数而已,比如在Flash中弄两个图层,一个是用来装场景的全局变量,另一个是一帧一帧的动画,最少分3帧处理。
    第一帧初始化全局变量那个图层的值,第二帧判断某个开关的全局变量是否被修改,然后如果被修改就做相应的处理,第三帧就直接跳转到第二帧。这样就形成了一个循环判断全局变量的过程。这时候,只要VB通过Flash控件的方法设置了变量值,在Flash中的AS脚本就可以检测到变化并做相应的处理。
    如:
    ------------------------------------------------------------------------------
    图层2第一帧代码      |    图层2第二帧代码     |      图层2第三帧代码
    aa=0;                |  if(aa!=0){ aa=0;     |      gotoPlay(2);
    bb=0;                |    gotoPlay(bb);       |
                         |  }                     |
    ------------------------------------------------------------------------------
    图层1所有帧代码
    var aa;
    var bb;
    ------------------------------------------------------------------------------VB先设置 BB 的值,就是需要用到的参数,然后再设置 aa 的值为1,这时当 AS 检测到
    aa 改变后就可以直接用 bb 的值了。大致就是这么个操作。