⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mapinfo重点及难点讲解1.htm

📁 关于mapinfo的介绍
💻 HTM
📖 第 1 页 / 共 5 页
字号:
            和Lname都是字串列:</FONT></P></BLOCKQUOTE></BLOCKQUOTE></BLOCKQUOTE>
      <P align=justify></FONT><FONT face=宋体 color=#000000>Fname+</FONT><FONT 
      color=#000000>””<FONT face=宋体>+Lname </FONT>“<FONT 
      face=宋体>Full_name</FONT>”</FONT></P>
      <BLOCKQUOTE>
        <BLOCKQUOTE>
          <BLOCKQUOTE>
            <BLOCKQUOTE><FONT face=宋体>
              <P align=justify></FONT><FONT face=宋体 
              color=#000000>当列是字串列时,加操作符(+)执行字串联接而不是数字相加。因此,表达式Fname + 
              </FONT><FONT color=#000000>“<FONT face=宋体> </FONT>“</FONT><FONT 
              face=宋体 color=#000000> + Lname产生一个由第一名紧跟空格再后跟一名组成的字串。</FONT><FONT 
              face=宋体></P>
              <P align=justify><FONT 
              color=#000000>下一个例子显示一个导出列表达式怎样结合函数调用。Proper$函数操作一个字串值并返回一个有正常大写的字串(仅第一字母大写):</FONT></P>
              <P align=justify></FONT><FONT face=宋体 
              color=#000000>Proper$(Fname+</FONT><FONT color=#000000>””<FONT 
              face=宋体>+Lname) </FONT>“<FONT 
              face=宋体>Full_name</FONT>”</FONT></P><FONT face=宋体>
              <P align=justify><FONT 
              color=#000000>下一个例子显示如何用Format$函数重新格式化数字列。一般,数字列都没有包含逗号,不幸的是,这使得读大数有困难。下面的例子用Format$函数把逗号插入到Purchases93列中。这个例子假定Purchases93是一个数字列:</FONT></P>
              <P align=justify></FONT><FONT face=宋体 
              color=#000000>Format$(Purchases93,</FONT><FONT 
              color=#000000>”<FONT face=宋体>$,#</FONT>”<FONT face=宋体>) 
              </FONT>“<FONT face=宋体>Purchases_1993</FONT>”<FONT 
              face=宋体>,字串表达式“$,#</FONT>”</FONT><FONT face=宋体 
              color=#000000>告诉Foramt$函数在列前显示一个美元($)并在列内插入逗号。</FONT><FONT 
              face=宋体></P>
              <P align=justify><FONT 
              color=#000000>下一个例子显示一个导出列怎样计算基础表中各行的地理面积:</FONT></P>
              <P align=justify></FONT><FONT face=宋体 
              color=#000000>Area(Obj,</FONT><FONT color=#000000>”<FONT 
              face=宋体>sqkm</FONT>”<FONT face=宋体>) </FONT>“<FONT 
              face=宋体>Net_Area</FONT>”</FONT></P><FONT face=宋体>
              <P align=justify><FONT 
              color=#000000>Obj是一特殊的列名,代表与表中各行相联系的地理对象。</FONT></P></BLOCKQUOTE></BLOCKQUOTE></BLOCKQUOTE></BLOCKQUOTE>
      <OL>
        <LI><FONT color=#000000>Where Condition区</FONT> </LI></OL>
      <P align=justify><FONT color=#000000>(1)通过行的排列顺序联接不同的表</FONT></P>
      <P align=justify><FONT 
      color=#000000>如果两个表没有一个共同的列,你可以根据行的顺序仍然能够联接这两个表。如果你知道一个表的第一行与另一个表的第一行是相对应的,并且,一般地说,如果你知道第一个表的第n行与第二个表的第n行是对应的,那么你就可以通过引用一个名叫RowID的特殊列来联接这两个表。</FONT></P>
      <P align=justify><FONT 
      color=#000000>RowID列含有一个整数值,代表着表中各行的行号。因此,任何表的第一行都有一个为1的RowID值,第2行有一个RowID值2,等等。</FONT></P>
      <P align=justify><FONT 
      color=#000000>为了联接两个表,让MapInfo一个表的第n行与另一个表的第n行匹配起来,就要指定一个Where 
      Condition表达式,形如下:</FONT></P>
      <BLOCKQUOTE>
        <BLOCKQUOTE>
          <BLOCKQUOTE>
            <BLOCKQUOTE>
              <P align=justify><FONT 
              color=#000000>TABLE_1.RowID=TABLE_2.RowID</FONT></P></BLOCKQUOTE></BLOCKQUOTE></BLOCKQUOTE></BLOCKQUOTE>
      <P align=justify><FONT color=#000000>(2)从地理上(用地理操作符)联接不同的表</FONT></P>
      <P align=justify><FONT 
      color=#000000>当两个表都有图形对象时,MapInfo能够根据这些对象之间的空间关系联接这两个表。所以,即使你的表没有一个共同的列,你也有可能联接不同的表。</FONT></P>
      <P align=justify></FONT><FONT face=宋体 
      color=#000000>地理操作符允许你选择某些对象,根据它们与另外的某个对象的空间关系。MapInfo有一个与地理操作符一起使用的特殊列名,“Obj</FONT><FONT 
      color=#000000>”<FONT face=宋体>或“Object</FONT>”</FONT><FONT face=宋体 
      color=#000000>。这个列名指的是与你的表相边系的图形对象。</FONT><FONT face=宋体></P>
      <P align=justify><FONT 
      color=#000000>地理操作符要放到所指定的对象之间,地理操作符从操作符(Operators)下拉列表中选取。</FONT></P>
      <P align=justify><FONT color=#000000>下表列出了地理操作符:</FONT></P>
      <P align=justify><FONT color=#000000>Contaions(含有)</FONT></P>
      <BLOCKQUOTE>
        <BLOCKQUOTE>
          <BLOCKQUOTE>
            <BLOCKQUOTE>
              <P align=justify><FONT color=#000000>Object A Contains Object 
              B</FONT></P>
              <P align=justify><FONT 
              color=#000000>(如果B的形心在A的边界内的某个位置上)</FONT></P></BLOCKQUOTE></BLOCKQUOTE></BLOCKQUOTE></BLOCKQUOTE>
      <P align=justify><FONT color=#000000>Contaions Entire(包含全部)</FONT></P>
      <BLOCKQUOTE>
        <BLOCKQUOTE>
          <BLOCKQUOTE>
            <BLOCKQUOTE>
              <P align=justify><FONT color=#000000>Object A Contains Entire 
              Object B</FONT></P>
              <P align=justify><FONT 
            color=#000000>(如果B的边界全部在A的边界内)</FONT></P></BLOCKQUOTE></BLOCKQUOTE></BLOCKQUOTE></BLOCKQUOTE>
      <P align=justify><FONT color=#000000>Within(在内)</FONT></P>
      <BLOCKQUOTE>
        <BLOCKQUOTE>
          <BLOCKQUOTE>
            <BLOCKQUOTE>
              <P align=justify><FONT color=#000000>Object A is Within Object 
              B</FONT></P>
              <P align=justify><FONT 
            color=#000000>(如果A的形心在B的边界内侧)</FONT></P></BLOCKQUOTE></BLOCKQUOTE></BLOCKQUOTE></BLOCKQUOTE>
      <P align=justify><FONT color=#000000>Entire Within(完全在内)</FONT></P>
      <BLOCKQUOTE>
        <BLOCKQUOTE>
          <BLOCKQUOTE>
            <BLOCKQUOTE>
              <P align=justify><FONT color=#000000>Objcte A is Entire Within 
              Object B</FONT></P>
              <P align=justify><FONT 
            color=#000000>(如果A的边界全部在B的边界内)</FONT></P></BLOCKQUOTE></BLOCKQUOTE></BLOCKQUOTE></BLOCKQUOTE>
      <P align=justify><FONT color=#000000>Intersects(相交)</FONT></P>
      <BLOCKQUOTE>
        <BLOCKQUOTE>
          <BLOCKQUOTE>
            <BLOCKQUOTE>
              <P align=justify><FONT color=#000000>Objcte A Intersects Object 
              B</FONT></P>
              <P align=justify><FONT 
              color=#000000>(如果它们至少有一个共同点或者它们中的一个完全在另一个内)</FONT></P></BLOCKQUOTE></BLOCKQUOTE></BLOCKQUOTE></BLOCKQUOTE>
      <P align=justify><FONT color=#000000>Contains与Within的比较是根据对象的形心,而Contains 
      Entire与Entire Within的比较是根据整个对象。</FONT></P>
      <P align=justify><FONT 
      color=#000000>如果A包括整个B,那么A肯定包含B,如果A完全在B内,那么A肯定在B内。</FONT></P>
      <P align=justify><FONT 
      color=#000000>MapInfo执行简单的含有和在内比较,比执行完全含有和完全在内要快。因此,除非你绝对相信某些对象是完全在另一些对象之内,否则你应该使用Contains和Within而不用Contains 
      Entire或Entire Within。</FONT></P>
      <P align=justify><FONT 
      color=#000000>地理操作符提供了一种联接表的方法。当表中没有你能建立起联接的列时,你可以用地理操作符(在Where 
      Condition区内)指定联接关系。如果你要执行一个涉及一个Cities表和一个State表的两表查询,你可以用如下的表达式之一联接两个表:</FONT></P>
      <BLOCKQUOTE>
        <BLOCKQUOTE>
          <BLOCKQUOTE>
            <BLOCKQUOTE>
              <P align=justify><FONT color=#000000>Cities.Obj Within 
              States.Obj</FONT></P>
              <P align=justify><FONT color=#000000>States.Obj Contains 
              Cities.Obj</FONT></P></BLOCKQUOTE></BLOCKQUOTE></BLOCKQUOTE></BLOCKQUOTE>
      <P align=justify><FONT 
      color=#000000>在任何一种情况下,MapInfo都能找到在各个州内的全部城市,然后把代表一个城市的一个行与含有它的州的行联系起来。用同样的SQL查询,你也能够用集合功能来合计每个州的城市数,或者以州为根据总结基于城市的数据。</FONT></P>
      <P align=justify><FONT 
      color=#000000>当你有Counties 表和一个Customers表时,Counties是多边形,Customers是点,你可以用下列地理表达式之一指一个集合联接:</FONT></P>
      <BLOCKQUOTE>
        <BLOCKQUOTE>
          <BLOCKQUOTE>
            <BLOCKQUOTE>
              <P align=justify><FONT color=#000000>Customer.obj Within 
              County.obj</FONT></P>
              <P align=justify><FONT color=#000000>County.obj Contains 
              Customer.obj</FONT></P></BLOCKQUOTE></BLOCKQUOTE></BLOCKQUOTE></BLOCKQUOTE>
      <P align=justify><FONT color=#000000>地理操作符与Subselects结合特别有用(见Perferming 
      Subselects)</FONT></P>
      <P align=justify><FONT color=#000000>(3)联接两个或更多的表(根据共同字段)</FONT></P>
      <P align=justify><FONT 
      color=#000000>一般,你是把你的资料贮存在几个不同的表中,你有你自已的数据文件,你也可能有从MapInfo购买的各种统计资料的数据库。SQL允许你建立关联以便你把这些不同表中的资料接到一起,成为一个单独的结果表。设想这样一种情况:你有一个有人口统计交资料的Counties表(各个County按年龄段、种族和职业种类的人口数统计),你还可能有关于顾客订单资料的数据库。你想检测一下这两个表,看一定种类的订单是否来自具有一定人口统计特征的Counties。或许你想根据订单与人口的统计特征的组合选择若干个Counties(县)。要做到这一点,你必须能够联接这两个表。</FONT></P>
      <P align=justify><FONT 
      color=#000000>假设Counties表含有县名,同样订单表的一个列也含有订单来源的县名,这样,两个表都有一个共同的字段,即县名。MapInfo能够用这个共同的字段来联接这两个表。</FONT></P>
      <P align=justify><FONT color=#000000>Countyname 1980人口,1990人口 Order# 
      Customer County</FONT></P>
      <P align=justify><FONT color=#000000>Foster 1980人口,1990人口 478001 Franic 
      Foster</FONT></P>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -