`
chang_ytao
  • 浏览: 26354 次
  • 性别: Icon_minigender_1
  • 来自: 济南
文章分类
社区版块
存档分类
最新评论

超图中查询结果的放大显示方式

 
阅读更多
对查询到的面放大显示
对查询到的面有两种放大方式:1,以中心点和比例尺放大, 2,以外接矩形放大


1,以中心点和比例尺放大
优点:快
缺点:不能适用大小差别较大的面对象
==================================================================
function onQueryCompleteclone(resultSet){
alert(resultSet.recordSets[0].records.length);//查询到的结果数
var cx = resultSet.recordSets[0].records[0].center.x;//面中心点x坐标
var cy = resultSet.recordSets[0].records[0].center.y;//面中心点y坐标
var centerP = new SuperMap.Point2D(cx,cy);
    mapControl.setCenterAndZoom(centerP,1/800);
}

==================================================================

2,以外接矩形放大
优点:适用所有面对像
缺点:由于要使用遍历查询,速度相对较慢
==================================================================
function onQueryComplete(resultSet){
    //alert(resultSet.recordSets[0].records.length);//查询到的结果数
      var e = resultSet.recordSets[0].records[0];
if(e){
    //初始化矩形坐标,让它等于第一个节点值

    var maxx = e.shape.point2Ds[0].x; // 最大的x坐标值
    var maxy = e.shape.point2Ds[0].y; // 最大的y坐标值
    var minx = e.shape.point2Ds[0].x; // 最小的x坐标值
    var miny = e.shape.point2Ds[0].y; // 最小的y坐标值

    for (var i = 0; i < e.shape.point2Ds.length; i++) {
  if (e.shape.point2Ds[i].x > maxx)
    maxx = e.shape.point2Ds[i].x;
  else if (e.shape.point2Ds[i].x < minx)
    minx = e.shape.point2Ds[i].x;
  if (e.shape.point2Ds[i].y > maxy)
    maxy = e.shape.point2Ds[i].y;
  else if (e.shape.point2Ds[i].y < miny)
    miny = e.shape.point2Ds[i].y;
  }
var rect = new SuperMap.Rect2D(minx,miny,maxx,maxy);
     mapControl.viewByBounds(rect);
}
}
====================================================================
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics