阅读:1889回复:3
点定位偏差很远是什么原因?
//我想在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; |
|
1楼#
发布于:2004-06-09 14:46
<P>你要把屏幕坐标转换成地图坐标才行,因为map的坐标和屏幕坐标是有差异的</P>
|
|
|
2楼#
发布于:2004-06-11 15:01
可能是没有投影转换!
|
|
|
3楼#
发布于:2004-09-01 16:04
?
|
|