|
阅读:2404回复:7
[求助]Mo中如何求多边形面积啊
<P>Mo中如何求多边形面积啊.我现在要求一个多变形的面积,那位高手可以指点一下吗.谢谢了.</P>
|
|
|
1楼#
发布于:2005-12-27 15:10
<IMG src="http://www.gisempire.com/bbs/Skins/Default/emot/em01.gif">
|
|
|
2楼#
发布于:2005-06-21 00:48
回去研究一下,顶!
|
|
|
3楼#
发布于:2005-03-17 14:55
<P>'Xuewei,2003/5/20
'计算地区面积;</P><P>Option Explicit</P><P>Dim Recs As MapObjects2.Recordset</P><P>'把查找的区域用黄色显示: Private Sub Map1_AfterLayerDraw(ByVal index As Integer, ByVal canceled As Boolean, ByVal hDC As stdole.OLE_HANDLE) Dim Sym1 As New MapObjects2.Symbol If Not Recs Is Nothing Then Sym1.Color = moYellow Map1.DrawShape Recs, Sym1 End If End Sub</P><P> Sub DrawLayer() Dim dc As New DataConnection Dim layer As MapLayer dc.Database = App.Path + "\..\" + "Mexico" If Not dc.Connect Then MsgBox "在指定的文件夹下没找到图层数据文件!" End End If Set layer = New MapLayer Set layer.GeoDataset = dc.FindGeoDataset("States") layer.Symbol.Color = moLimeGreen Map1.Layers.Add layer Set layer = New MapLayer Set layer.GeoDataset = dc.FindGeoDataset("Rivers") layer.Symbol.Color = moRed Map1.Layers.Add layer End Sub</P><P>Private Sub Form_Load() DrawLayer Label1.Caption = "在地图上点击地区。" End Sub</P><P>Private Sub Map1_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single) Dim Pl As MapObjects2.Point Dim Shp As MapObjects2.Polygon Dim Area As Single Const Ak = 1000 Set Pl = Map1.ToMapPoint(x, y) Set Recs = Map1.Layers("States").SearchByDistance(Pl, Map1.ToMapDistance(30), "") If Recs.EOF Then Label1.Caption = "没有找到对象。" Else Set Shp = Recs.Fields("Shape").Value Map1.FlashShape Shp, 2 Area = Format(Shp.Area * Ak, "0.00") Label1.Caption = "找到" ; Recs.Fields("NAME").Value ; "州,面积为" ; Area ; "平方公里。" End If Map1.Refresh End Sub </P> |
|
|
4楼#
发布于:2005-02-26 11:38
<P>我不要在gis软件中投好,我想在我的程序中使用WGS1984坐标系下的图层,但是我还要一些地形分析,当然是简单的分析了,比如测量距离,面积什么的,被测量对象是:我所画的TrackingLayer 对象,请指教!谢!</P><P>还有您说的重新投影是否能在程序中执行,您可以给我说说思路,当然有源代码最好了,无论是那个语言的,呵呵,最好是VB 或VC的.</P>
|
|
|
5楼#
发布于:2005-02-24 16:13
唉,重新投影吧!
|
|
|
|
6楼#
发布于:2005-02-24 10:21
<P>可是,我的地图坐标系是WGS1984的,距离或面积怎么也做不对呀!</P>
|
|
|
7楼#
发布于:2005-02-22 08:55
用多边形的GetArea方法就得到啦!
|
|
|