爱气象,爱气象家园! 

气象家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 8254|回复: 19

在面图层上面自己标注点后,是否可以提取经纬度等信息?

[复制链接]
发表于 2012-9-26 17:28:57 | 显示全部楼层 |阅读模式

登录后查看更多精彩内容~

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
如果在面图层上面标注了一批点后,是否可以保存这些点的经纬度以及属于哪个面图元等这些信息呢,请王老师指教?
密码修改失败请联系微信:mofangbao
发表于 2012-9-26 22:31:55 | 显示全部楼层
“在面图层上面标注了一批点”是什么意思?
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2012-9-26 22:37:39 | 显示全部楼层

就是先添加面图层,然后用MeteoInfo软件工具栏的“添加点”功能在某些位置添加了一些点,现在想保存这些点的相关经纬度和所属的面图元,是否可行?
密码修改失败请联系微信:mofangbao
发表于 2012-9-26 22:44:56 | 显示全部楼层
vortexroc 发表于 2012-9-26 22:37
就是先添加面图层,然后用MeteoInfo软件工具栏的“添加点”功能在某些位置添加了一些点,现在想保存这些点 ...

应该是可以的,我先试试。
密码修改失败请联系微信:mofangbao
发表于 2012-9-26 23:17:13 | 显示全部楼层
vortexroc 发表于 2012-9-26 22:37
就是先添加面图层,然后用MeteoInfo软件工具栏的“添加点”功能在某些位置添加了一些点,现在想保存这些点 ...

加载中国省级Polygon图层,用New Point工具手动加一些点,写脚本程序输出这些点的坐标及所在的省份。

Image00919.png

Image00920.png

完整的代码如下:
  1. #--------------------------------------------------------        
  2. # Author: Yaqiang Wang                                          
  3. # Date: 2012-9-26                                                
  4. # Purpose: Output the Lon/Lat and position of the points  
  5. # Note: Sample                                                   
  6. #-----------------------------------------------------------  
  7. #---- Import clr and classes
  8. import clr
  9. clr.AddReference("MeteoInfoC.dll")
  10. from MeteoInfoC import *
  11. from MeteoInfoC.Geoprocess import *

  12. #---- Get polygon layer
  13. aLayer = mipy.MapDocument.ActiveMapFrame.MapView.GetLayerFromName("bou2_4p.shp")
  14. print aLayer.LayerName

  15. #---- Determin the points position
  16. for gPoint in mipy.MapDocument.ActiveMapFrame.MapView.GraphicCollection.GraphicList:
  17.         aP = gPoint.Shape.Point
  18.         province = "不在图层范围内"
  19.         i = 0
  20.         for polygon in aLayer.ShapeList:
  21.                 if GeoComputation.PointInPolygon(polygon, aP):
  22.                         province = aLayer.GetCellValue("Name", i)
  23.                         break
  24.                 i += 1
  25.                
  26.         print "经度: %6.2f, 纬度: %6.2f, 省份: %s" % (aP.X, aP.Y, province)
复制代码



密码修改失败请联系微信:mofangbao
 楼主| 发表于 2012-9-27 09:25:24 | 显示全部楼层
MeteoInfo 发表于 2012-9-26 23:17
加载中国省级Polygon图层,用New Point工具手动加一些点,写脚本程序输出这些点的坐标及所在的省份。

...

学习了,谢老师
再问一下,如果不是面图层而是点图层(比如是乡镇的点图层),是否可以找到并输出与自己添加点距离最近乡镇的名称?
密码修改失败请联系微信:mofangbao
发表于 2012-9-27 09:30:59 | 显示全部楼层
vortexroc 发表于 2012-9-27 09:25
学习了,谢老师
再问一下,如果不是面图层而是点图层(比如是乡镇的点图层),是否可以找到 ...

可以
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2012-9-27 09:54:09 | 显示全部楼层

请老师指导该如何实现
密码修改失败请联系微信:mofangbao
发表于 2012-9-27 10:03:02 | 显示全部楼层
vortexroc 发表于 2012-9-27 09:54
请老师指导该如何实现

和这个脚本程序类似,你自己先试试,有具体问题再来问。
密码修改失败请联系微信:mofangbao
 楼主| 发表于 2012-9-27 16:14:44 | 显示全部楼层
MeteoInfo 发表于 2012-9-27 10:03
和这个脚本程序类似,你自己先试试,有具体问题再来问。

对脚本语言不熟。。。
问题是查找点在面中可以用PointInPolygon方法,那判断最近点的距离有现成的方法么,还是要自己实现算法?
密码修改失败请联系微信:mofangbao
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Copyright ©2011-2014 bbs.06climate.com All Rights Reserved.  Powered by Discuz! (京ICP-10201084)

本站信息均由会员发表,不代表气象家园立场,禁止在本站发表与国家法律相抵触言论

快速回复 返回顶部 返回列表