yxbhw
路人甲
路人甲
  • 注册日期2004-06-09
  • 发帖数8
  • QQ
  • 铜币206枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:1737回复:3

点定位偏差很远是什么原因?

楼主#
更多 发布于:2004-06-09 10:04
//我想在MAP窗口内随机生成十个点和标注,但每次生成的点都不在窗口内,
//而在别的很远的地方,怎么会这样?
procedure TMapForm.Button2Click(Sender: TObject);
var
i,x,y: integer;
pt : point;//点
lyr : layer;//层
fts : feature;//特征
str : string;//特征标注
begin
  lyr := Map1.Layers.CreateLayer( 'tempAnimate', EmptyParam,1,EmptyParam, EmptyParam);//在Map1中创建一个Layer
  Map1.Layers.AnimationLayer := lyr;//设为当前层
  lyr.Editable := true;//可编辑
  pt := copoint.Create;
  randomize;
    for i:=1  to 10 do
        begin
          x:=random(Round(Map1.Bounds.XMax-Map1.Bounds.XMin))+Round(Map1.Layers[2].Bounds.XMin);//在窗口随机生成一个点
          y:=random(Round(Map1.Bounds.YMax-Map1.Bounds.YMin))+Round(Map1.Layers[2].Bounds.YMin);
          str := inttostr(x) + '_' + inttostr(y) ;
          pt.Set_(x,y);
          fts := map1.FeatureFactory.CreateSymbol(pt,emptyparam);//创建特征
          fts.Keyvalue := str;//标注
          lyr.AddFeature(fts,emptyparam);//将特征添加到层
        end;
    lyr.AutoLabel := true;//自动标注
    lyr.Visible := true;//可见
end;
喜欢0 评分0
gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15947
  • QQ554730525
  • 铜币25339枚
  • 威望15364点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
1楼#
发布于:2004-06-09 14:46
<P>你要把屏幕坐标转换成地图坐标才行,因为map的坐标和屏幕坐标是有差异的</P>
举报 回复(0) 喜欢(0)     评分
paulgis
路人甲
路人甲
  • 注册日期2004-03-07
  • 发帖数363
  • QQ
  • 铜币62枚
  • 威望0点
  • 贡献值0点
  • 银元0个
2楼#
发布于:2004-06-11 15:01
  可能是没有投影转换!
从一粒沙子看到一个世界, 从一朵野花看到一个天堂, 把握在你手心里的就是无限, 永恒也就消融于一个时辰。
举报 回复(0) 喜欢(0)     评分
fubigred
路人甲
路人甲
  • 注册日期2004-09-01
  • 发帖数25
  • QQ
  • 铜币158枚
  • 威望0点
  • 贡献值0点
  • 银元0个
3楼#
发布于:2004-09-01 16:04
?
举报 回复(0) 喜欢(0)     评分
游客

返回顶部