b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

MapBasic 读取对象坐标

电脑杂谈  发布时间:2019-05-12 08:24:58  来源:网络整理

mapinfo坐标提取器_opencv 提取roi区域的像素和坐标_matlab提取图像坐标

VC++程序编程打开这个文件吧。

VC和Mapinfo的接口,可以参考文章:

下面是用VC编程打开文件的代码:

sprintf(str,'Set Next Document Parent %lu Style 1',(long)(UINT)m_hWnd);

mapinfo.Do(str);//创建地图窗口

mapinfo.Do('Open Table \'D:\\aa\\japan\\JPN1RAIL\' Map FromJPN1RAIL');//打开地图

=======================================================================

MapInfo\MapBasic\Samples\MFC中的两个文件。提供了VC下编写mapinfo程序的例子findzip和mdimfc。不过看上去有些复杂。

要编程解决的问题是:

1,从Mapinfo读取节点或数据坐标信息。

2,基于这些信息,进行算法计算。

3,将算法计算结果在Mapinfo地图上显示出来。

如何从地图中读取坐标信息。可是查了图层文件,除了有些表示X,Y坐标外,没有类似线段长度,端点坐标的信息。

Object的概念。

Line Object简单,终点起点。polyline 和Region复杂一些.其中polyline非常有用,因为它主要定义的是道路信息。一般的polyline定义的信息有一个polyline Object有line segments和line

sections组成。属性有节点数,长度,节点坐标,segment数和section数。这些可以在MapInfo中用鼠标双击图中的Object查到。

和Object相关的Table表信息的查询,可选择main\Info按钮,用鼠标单击图中的Object查到和这个Object有关的table信息。查询Table表中的

所有信息用菜单\Windows\New Brower Window.

图形Object的这些信息和table表无关,只和物理图形有关,有图形不一定有table表,但一定有Object。mapinfo坐标提取器table是独立于图形以外的,用户可

以添加,删除等操作,不影响图。

1,从Mapinfo读取节点或数据坐标信息。可采用3种办法:

.mif/mid文件中读取。在mapinfo中选exportfile,把地图中的数据信息输出到mif/mid文件中。在程序中打开mif文件读取。可以得到如线段起始和终点坐标等等.

mapinfo坐标提取器_matlab提取图像坐标_opencv 提取roi区域的像素和坐标

主要是C语言对文件操作。

从地图table表直接读取,读取表中的数据一般用FetcH。具体操作如下:

1. Use a Fetch statement to specify which row in the table you wantto query.

This action sets which row is current.

2. Use a table-reference expression_r(e.g. tablename.columnname) toaccess a

specific column in the current row.

For example, the following program reads the contents of theCountry column from

the first row of the World table:

Dim s_name As String

Open Table ”world” Interactive

Fetch First From world

s_name = world.Country

MapBasic例子程序:读表中FROMLEFT一项的数据

Include 'MAPBASIC.DEF'

Dim s_name As Integer

Open Table 'D:\aa\street\onhalts1'

Map From onhalts1

Dim i,counter As Integer

Fetch First From onhalts1

Do While Not EOT(onhalts1)

s_name = onhalts1.FROMLEFT

Print 'The name: '+ s_name

mapinfo坐标提取器_matlab提取图像坐标_opencv 提取roi区域的像素和坐标

i = i + 1

Fetch Next From onhalts1

Loop

Print 'Number of undeleted records: ' + i

读Object信息。

MapBasic程序:读出Object的节点坐标,长度,segment数。

Include 'MAPBASIC.DEF'

Dim table_OBJ As String

table_OBJ = 'JPN1RAIL.obj'

Dim geogr_length As Float,

x1,y1,x2,y2 As Float

Open Table 'D:\aa\japan\JPN1RAIL'

Map From JPN1RAIL

Dim i,counter As Integer

i = 0

Fetch First From JPN1RAIL

Do While Not EOT(JPN1RAIL)

counter = objectinfo(jpn1rail.obj, obj_info_npnts)。table_obj = "jpn1rail.obj"。用函数counter = objectinfo(jpn1rail.obj, obj_info_npolygons)。

counter = ObjectInfo(JPN1RAIL.obj, OBJ_INFO_NPOLYGONS)

x1 = ObjectNodeX(JPN1RAIL.obj, 1, 1) ' read longitude

x2 = ObjectNodeX(JPN1RAIL.obj, 1, ObjectInfo(JPN1RAIL.obj, 20)) 'read longitude

y1 = ObjectNodeY(JPN1RAIL.obj, 1, 1) ' read latitude

opencv 提取roi区域的像素和坐标_matlab提取图像坐标_mapinfo坐标提取器

x2 = objectnodex(jpn1rail.obj, 1, objectinfo(jpn1rail.obj, 20)) '。objectnodey(jpn1rail.obj, 1, 1) '。objectnodex(jpn1rail.obj, 1, 1) '。

geogr_length = ObjectLen(JPN1RAIL.obj, 'km')

Print 'The length: '+ geogr_length+'x1:'+ x1+'y1:'+y1

'Print 'The length: '+ geogr_length+'Counter:'+ counter

i = i + 1

Fetch Next From JPN1RAIL

Loop

Print 'Number of undeleted records: ' + i

============================================================================================

float geogr_length;

int nPolygons,Segment,node_Num;

CString strCommand;

mapinfo.Do('Dim i As Integer');

sprintf(str,'Fetch First From %s',Table_name);

mapinfo.Do(str);

num=493;

for(int i=0;i<num;i++)

{

sprintf(str,'ObjectInfo(%s,20)',Table_obj);

node_Num = atoi (mapinfo.eval_r(str));//OBJ_INFO_NPNTS

sprintf(str,'ObjectInfo(%s,21)',Table_obj);

segment = atoi (mapinfo.eval(str))。eval_r("\$print=\"$str\"。mapinfo.do(str)。

mapinfo坐标提取器_opencv 提取roi区域的像素和坐标_matlab提取图像坐标

sprintf(str,'ObjectNodeX(%s,1,1)',Table_obj);

x1[i] = (float)atof(mapinfo.eval_r(str));

sprintf(str,'ObjectNodeY(%s,1,1)',Table_obj);

y1[i] = (float)atof(mapinfo.eval_r(str));

sprintf(str,"objectnodex(%s,1,objectinfo(%s, 20))",table_obj,table_obj)。sprintf(str,"objectnodex(%s,1,1)",table_obj)。sprintf(str,"objectnodey(%s,1,1)",table_obj)。

x2[i] = (float)atof(mapinfo.eval_r(str));

sprintf(str,"objectnodex(%s,1,objectinfo(%s, 20))",table_obj,table_obj)。sprintf(str,"objectnodex(%s,1,1)",table_obj)。sprintf(str,"objectnodey(%s,1,1)",table_obj)。

y2[i] = (float)atof(mapinfo.eval_r(str));

geogr_length = objectlen(jpn1rail.obj, "km")。table_obj = "jpn1rail.obj"。geogr_length = atof( mapinfo.eval("objectlen(jpn1rail.obj, \。

sprintf(str,'Fetch Next From %s',Table_name);

mapinfo.Do(str);

}

mapinfo.Do('Print \'Number of undeleted records: \' + i ');

Fetch First From world

Note world.obj

% xcrun size -x -l -m a.out segment __pagezero: 0x100000000 (vmaddr 0x0 fileoff 0) segment __text: 0x1000 (vmaddr 0x100000000 fileoff 0) section __text: 0x37 (addr 0x100000f30 offset 3888) section __stubs: 0x6 (addr 0x100000f68 offset 3944) section __stub_helper: 0x1a (addr 0x100000f70 offset 3952) section __cstring: 0xe (addr 0x100000f8a offset 3978) section __unwind_info: 0x48 (addr 0x100000f98 offset 3992) section __eh_frame: 0x18 (addr 0x100000fe0 offset 4064) total 0xc5 segment __data: 0x1000 (vmaddr 0x100001000 fileoff 4096) section __nl_symbol_ptr: 0x10 (addr 0x100001000 offset 4096) section __la_symbol_ptr: 0x8 (addr 0x100001010 offset 4112) total 0x18 segment __linkedit: 0x1000 (vmaddr 0x100002000 fileoff 8192) total 0x100003000 。以p点为端点,向左方做射线l,然后沿着l从无穷远处开始向p点移动,当遇到多边形的某一条边时,记为与多边形的第一个交点,表示进入多边形内部,继续移动,当遇到另一个交点时,表示离开多边形内部。counter = objectinfo(jpn1rail.obj, obj_info_npolygons)。

ObjectNodeX(xxx.obj, 1, counter)

一个polyline Object有line segments 和linesections组成。属性有节点数,长度,节点坐标,segment数和section数。mapinfo坐标提取器

用函数counter = ObjectInfo(JPN1RAIL.obj, OBJ_INFO_NPOLYGONS)

ObjectNodeX(JPN1RAIL.obj, 1, 1) ' read x

ObjectNodeY(JPN1RAIL.obj, 1, 1) ' read y

ObjectLen(JPN1RAIL.obj, 'km')

等求出。


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-98086-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      • 坚布
        坚布

        第二条好处最实际

      • 解雯冰
        解雯冰

        全国军民应团结一致

      • 陈顺
        陈顺

        真心提醒各位国内的食用油价格低于5元

      热点图片
      拼命载入中...