xy923406
路人甲
路人甲
  • 注册日期2007-01-05
  • 发帖数2
  • QQ
  • 铜币113枚
  • 威望0点
  • 贡献值0点
  • 银元0个
阅读:1614回复:4

为什么不一样的标,生成的点竟然在同一个位置?

楼主#
更多 发布于:2007-03-26 17:07
<P>请教大家一个问题,我想把经纬度的两个坐标,生成点,有什么需要特别设置的地方吗? 比如点113.7833333,40.2833333和点113.8833333,40.0500000生成的两个点是一个位置,这是什么原因呢? </P>
喜欢0 评分0
gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15951
  • QQ
  • 铜币25345枚
  • 威望15368点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
1楼#
发布于:2007-04-11 14:09
<P>可能是你数据转换过程中的问题;</P>
<P>在vb中将前台录入的文本数据用cdbl转换为double类型存储,在转换大数时会发生数据精度溢出的问题 <BR>如cdbl(99999999999999.999999)后数据变为了100000000000000.000000</P>

GIS麦田守望者,期待与您交流。
举报 回复(0) 喜欢(0)     评分
sunday119
路人甲
路人甲
  • 注册日期2006-11-09
  • 发帖数5
  • QQ
  • 铜币134枚
  • 威望0点
  • 贡献值0点
  • 银元0个
2楼#
发布于:2007-04-10 21:30
我觉得没有什么不对,可能是它们的坐标比较接近,在一定的比例下在屏幕上显示起来好像叠在一起,你放大看一下试试
举报 回复(0) 喜欢(0)     评分
xy923406
路人甲
路人甲
  • 注册日期2007-01-05
  • 发帖数2
  • QQ
  • 铜币113枚
  • 威望0点
  • 贡献值0点
  • 银元0个
3楼#
发布于:2007-03-27 09:11
<P>Private Sub Command3_Click()<BR>On Error GoTo ErrorHandler:</P>
<P>   filename = "PointLayer"<BR>   Set pFeatureWorkspace = SDEConnect("xuye", "5151", "DB_GWS_SDE", "sde", "sde")<BR>    CreateFeature pFeatureWorkspace, filename, esriGeometryType.esriGeometryPoint<BR>    MsgBox "Create Layer OK"<BR> <BR>  Set pClass = pFeatureWorkspace.OpenFeatureClass(filename)</P>
<P>  '''''''''''''''''''''''''''''''''''''<BR>    Set pLayer = New FeatureLayer<BR>    Set pLayer.FeatureClass = pClass<BR>    Set pWorkspaceEdit = pFeatureWorkspace  <BR>''''''''''''''''''''''''''''''开始编辑<BR>    pWorkspaceEdit.StartEditing True<BR>'''''''''''''''''''''''''''''''<BR>   <BR>''''''''''''''''''''''''''''''''循环添加点<BR> ReadPoint App.Path ; "\output\ToPoint.txt", esriGeometryType.esriGeometryPoint<BR>    <BR>    Dim i As Integer<BR>    For i = 0 To UBound(X) - 1<BR>       Set pFeature = pClass.CreateFeature<BR>        Set pPoint = New Point<BR>        pPoint.X = CDbl(Trim(X(i)))<BR>        pPoint.Y = CDbl(Trim(Y(i)))<BR>        <BR>        Set pFeature.Shape = pPoint<BR>        pFeature.Store<BR>    Next<BR>    MsgBox "create Point OK"<BR>    <BR>    Dim m_pFeatureLayer As IFeatureLayer<BR>    Set m_pFeatureLayer = New FeatureLayer<BR>    Set m_pFeatureLayer.FeatureClass = pClass<BR>    m_pFeatureLayer.Name = pClass.AliasName<BR>    '装载要素层<BR>    MapControl1.ClearLayers<BR>    MapControl1.AddLayer m_pFeatureLayer<BR>    MsgBox "Load Layer OK"<BR>ErrorHandler:<BR>        MsgBox Err.Description<BR>End Sub<BR></P>
<P>'创建新图层</P>
<P>Public Sub CreateFeature(pFeatureWorkspace As IFeatureWorkspace, className As String, geomType As esriGeometryType)</P>
<P>Dim pFields As IFields<BR>Dim pFieldsEdit As IFieldsEdit<BR>Set pFields = New esriGeoDatabase.Fields<BR>Set pFieldsEdit = pFields</P>
<P>Dim pField As IField<BR>Dim pFieldEdit As IFieldEdit</P>
<P>' 添加一个几何字段<BR>Set pField = New esriGeoDatabase.Field<BR>Set pFieldEdit = pField<BR>pFieldEdit.Name = "Shape"<BR>pFieldEdit.Type = esriFieldTypeGeometry</P>
<P>Dim pGeomDef As IGeometryDef<BR>Dim pGeomDefEdit As IGeometryDefEdit</P>
<P>Dim pSR As ISpatialReference<BR>Set pSR = New UnknownCoordinateSystem</P>
<P>Set pGeomDef = New GeometryDef<BR>Set pGeomDefEdit = pGeomDef<BR>With pGeomDefEdit<BR>    .GeometryType = geomType<BR>    .GridCount = 2<BR>    .GridSize(0) = 10000<BR>    .AvgNumPoints = 0<BR> Set .SpatialReference = pSR<BR>End With</P>
<P><BR>'在创建孤立的要素类时必须指定<BR> <BR>Set pFieldEdit.GeometryDef = pGeomDef<BR>pFieldsEdit.AddField pField</P>
<P>Set pField = New esriGeoDatabase.Field<BR>Set pFieldEdit = pField<BR>With pFieldEdit<BR>.length = 30<BR>.Name = "FID"<BR>.Type = esriFieldTypeOID<BR>End With<BR>pFieldsEdit.AddField pField</P>
<P>Set pField = New esriGeoDatabase.Field<BR>Set pFieldEdit = pField<BR>With pFieldEdit<BR>.length = 30<BR>.Name = "ID"<BR>.Type = esriFieldTypeString<BR>End With<BR>pFieldsEdit.AddField pField</P>
<P>'创建要素类<BR>Dim pOutFeatureClass As IFeatureClass<BR>Set pOutFeatureClass = pFeatureWorkspace.CreateFeatureClass(className, pFieldsEdit, Nothing, Nothing, esriFTSimple, "shape", "")<BR>End Sub</P>
<P>经纬度的点集生成的图层</P>
<P><IMG src="http://bbs.esrichina-bj.cn/ESRI/attachments/forumid_26/snap_FYyfhvJwx9Pg.gif" border=0></P>
<P>直角坐标生成的图层</P>

<P><IMG src="http://bbs.esrichina-bj.cn/ESRI/attachments/forumid_26/snap1_V8hpab8fHncb.gif" border=0></P>
<P>它们的数据源是相同的,经纬度的点集生成的图明显就不对,好多点都是叠在一起的</P>
举报 回复(0) 喜欢(0)     评分
gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15951
  • QQ
  • 铜币25345枚
  • 威望15368点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
4楼#
发布于:2007-03-26 21:51
没什么特别设置,最好把你代码贴出来看看
GIS麦田守望者,期待与您交流。
举报 回复(0) 喜欢(0)     评分
游客

返回顶部