qhg103
路人甲
路人甲
  • 注册日期2004-07-12
  • 发帖数48
  • QQ
  • 铜币311枚
  • 威望0点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
阅读:2773回复:9

地图定位

楼主#
更多 发布于:2005-02-23 18:24
<P>我是用SHAPE文件+MO2。3+VB开发,</P>
<P>现在想做地图的定位功能,我已经框选查询出一些属性信息,想通过选择一个属性信息记录,在地图上 显示记录对应的空间对象,没有头绪,</P>
<P>因为查询出来的属性信息没有索引号,也没有空间对象的坐标值,</P>
喜欢0 评分0
zchang81
路人甲
路人甲
  • 注册日期2005-05-11
  • 发帖数95
  • QQ
  • 铜币324枚
  • 威望0点
  • 贡献值0点
  • 银元0个
1楼#
发布于:2005-06-28 18:18
<img src="images/post/smile/dvbbs/em03.gif" /><img src="images/post/smile/dvbbs/em04.gif" />
举报 回复(0) 喜欢(0)     评分
zchang81
路人甲
路人甲
  • 注册日期2005-05-11
  • 发帖数95
  • QQ
  • 铜币324枚
  • 威望0点
  • 贡献值0点
  • 银元0个
2楼#
发布于:2005-06-28 18:20
你说的什么意思!
举报 回复(0) 喜欢(0)     评分
G!s
G!s
路人甲
路人甲
  • 注册日期2004-06-22
  • 发帖数76
  • QQ
  • 铜币269枚
  • 威望0点
  • 贡献值0点
  • 银元0个
3楼#
发布于:2005-06-29 20:45
<P>1.定义一个集合,将某一层所有选中的记录集中所有记录的"FeatureId"字段值加进去</P>
<P>2.当你需要遍历定位该记录集中的特征时,只需根据集合中项目的索引得到该特征记录</P>
<P>的"FeatureId"。</P>
<P>3.利用Lyr.SearchByExpression("FeatureId  = ***")得到该记录,然后定位,一切OK!</P>
举报 回复(0) 喜欢(0)     评分
tnt220
路人甲
路人甲
  • 注册日期2005-08-02
  • 发帖数10
  • QQ
  • 铜币124枚
  • 威望0点
  • 贡献值0点
  • 银元0个
4楼#
发布于:2005-08-23 17:40
<IMG src="http://www.gisempire.com/bbs/Skins/default/topicface/face12.gif" align=absMiddle>楼上的想法不错
举报 回复(0) 喜欢(0)     评分
gis
gis
管理员
管理员
  • 注册日期2003-07-16
  • 发帖数15951
  • QQ
  • 铜币25345枚
  • 威望15368点
  • 贡献值0点
  • 银元0个
  • GIS帝国居民
  • 帝国沙发管家
  • GIS帝国明星
  • GIS帝国铁杆
5楼#
发布于:2005-08-23 17:49
<P>老早发过的一个贴,希望对你有用</P>
<P>'功能:放大到已经显示选择的地物<BR>'调用参数:map1,recs<BR>Public Function ZoomToSelected(map As MapObjects2.map, recs As MapObjects2.Recordset)<BR><BR>On Error GoTo ZoomError<BR>'定义字段和值的变量,放大到的显示对象的范围的变量<BR>Dim fld As MapObjects2.Field<BR>Dim shp As Object<BR>Dim ext As MapObjects2.Rectangle<BR>Dim x1 As Double, x2 As Double<BR>Dim y1 As Double, y2 As Double<BR><BR>recs.MoveFirst<BR>Set fld = recs.Fields("Shape")<BR>Set shp = fld.Value<BR><BR>'获得所选择的图形的范围,以进行下一步的放大到对象的操作<BR><BR>If TypeOf shp Is MapObjects2.Point Then<BR>  Dim pts As New MapObjects2.Points<BR>  pts.Add shp<BR>  Do Until recs.EOF<BR>    Set shp = fld.Value<BR>    pts.Add shp<BR>    recs.MoveNext<BR>  <BR>  Loop<BR>  Set ext = pts.Extent<BR>Else<BR>  Set ext = shp.Extent<BR>  x1 = ext.Left<BR>  x2 = ext.Right<BR>  y1 = ext.Bottom<BR>  y2 = ext.Top<BR>  <BR>    Do Until recs.EOF<BR>    Set ext = fld.Value.Extent<BR>    x1 = IIf(ext.Left < x1, ext.Left, x1)<BR>    x2 = IIf(ext.Right > x2, ext.Right, x2)<BR>    y1 = IIf(ext.Bottom < y1, ext.Bottom, y1)<BR>    y2 = IIf(ext.Top > y2, ext.Top, y2)<BR>    recs.MoveNext<BR>  Loop<BR>  ext.Left = x1<BR>  ext.Right = x2<BR>  ext.Bottom = y1<BR>  ext.Top = y2<BR>End If<BR>'设置地图显示范围<BR>Set map.Extent = ext<BR>Exit Function<BR>ZoomError:<BR>End Function</P>
GIS麦田守望者,期待与您交流。
举报 回复(0) 喜欢(0)     评分
ballstar
路人甲
路人甲
  • 注册日期2005-10-12
  • 发帖数10
  • QQ
  • 铜币120枚
  • 威望0点
  • 贡献值0点
  • 银元0个
6楼#
发布于:2005-10-12 17:54
正在学习,好啊
举报 回复(0) 喜欢(0)     评分
license
路人甲
路人甲
  • 注册日期2003-08-20
  • 发帖数235
  • QQ33281522
  • 铜币366枚
  • 威望0点
  • 贡献值0点
  • 银元0个
7楼#
发布于:2005-11-11 02:42
<P>hao ya</P>
Gis的小石块 QICQ:33281522 EMAIL:license@vip.sina.com GIS的麦田守望者,希望和大家交流。 〓〓〓〓〓〓〓〓〓 〓 GISEMPIRE 〓 〓 灌水★波菜 〓 〓 专 用 章 〓 〓〓〓〓〓〓〓〓〓
举报 回复(0) 喜欢(0)     评分
lovezph
路人甲
路人甲
  • 注册日期2003-12-31
  • 发帖数28
  • QQ
  • 铜币172枚
  • 威望0点
  • 贡献值0点
  • 银元0个
8楼#
发布于:2005-11-22 11:30
正在苦学
举报 回复(0) 喜欢(0)     评分
zpgis2002
路人甲
路人甲
  • 注册日期2004-10-29
  • 发帖数83
  • QQ
  • 铜币329枚
  • 威望0点
  • 贡献值0点
  • 银元0个
9楼#
发布于:2005-12-27 15:24
<IMG src="http://www.gisempire.com/bbs/Skins/Default/emot/em02.gif">
举报 回复(0) 喜欢(0)     评分
游客

返回顶部