需要mapbasic实现,以中心经纬度画个半径20的圆,之后通过代码可以获取圆的最小和最大经纬度(得到的这两个经纬度就是正方形对角线的),再用这两个经纬度画正方形
a=tableinfo(RFinfo1,tab_info_nrows) '获取表的行数
set distance units "m" '设置距离单位为M
for i =1 to a
Fetch rec i From RFinfo1 '循环
x=RFinfo1.经度
Y=RFinfo1.纬度
R=RFinfo1.半径
circle_obj=createcircle(x,y,r) '画圆
x1=ObjectGeography(circle_obj,OBJ_GEO_MINX)
y1=ObjectGeography(circle_obj,OBJ_GEO_MINY)
x2=ObjectGeography(circle_obj,OBJ_GEO_MAXX)
y2=ObjectGeography(circle_obj,OBJ_GEO_MAXY) '获取圆的最小和最大经纬度
create rect into variable rect_obj
(x1,y1)(x2,y2) '画正方形
Update RFinfo1 Set Obj =rect_obj Where RowID= i '更新到图层
next
a=tableinfo(RFinfo1,tab_info_nrows) '获取表的行数
set distance units "m" '设置距离单位为M
for i =1 to a
Fetch rec i From RFinfo1 '循环
x=RFinfo1.经度
Y=RFinfo1.纬度
R=RFinfo1.半径
circle_obj=createcircle(x,y,r) '画圆
x1=ObjectGeography(circle_obj,OBJ_GEO_MINX)
y1=ObjectGeography(circle_obj,OBJ_GEO_MINY)
x2=ObjectGeography(circle_obj,OBJ_GEO_MAXX)
y2=ObjectGeography(circle_obj,OBJ_GEO_MAXY) '获取圆的最小和最大经纬度
create rect into variable rect_obj
(x1,y1)(x2,y2) '画正方形
Update RFinfo1 Set Obj =rect_obj Where RowID= i '更新到图层
next