第五章Shape文件及其编辑Shapefile是ArcView存贮空间数据的内部缺省文件格式。利用这一简单的、非拓仆型的格式,ArcView实现了地理要素属性信息与几何位置的统一贮存,这正是目前大多数GIS专业软件流行的设计方法。第一节Shape格式及其优点ArcView的Shape文件格式可以通过其自身的实用工具创建,也可以经由ARC/INFOcoverage或其它的桌面地图格式转换得到。转换既可以在其它程序中进行(比如:在ARC/INFO中,使用ARCshpe及shpeARC命令便可以实现coverage与shpe文件之间的双向转换),也可以在ArcView界面下来做(先将数据源调入,然后再转换模块将其转换成Shape格式,参见“空间分析”部分)。以上特点充分反映了ArcView对数据格式的灵活性和高度兼容性。Shape文件实际上只是AreView进行GIS数据管理(定义感兴趣的地理要素的几何关系及要素属性)的5种核心文件类型之一。这5种文件作为项目工作组的内容被贮存于同一个工作目录中,相互以不同的扩展名相区别:shp一一贮存地理要素的几何关系的文件。,.Shx一一贮存图形要素的几何索引的文件。dbf一一贮存要素属性信息的dBASE文件。当Shape文件作为一个主题被加入到视图之后,该.dbf文件将会作为一个要素表格来显示。.sbn和sbx一一贮存地理要素的空间位置索引的文件。除非您执行过类似于选择“主题之主题”、空间连接等操作,或者您对一个主题(属性表)的Shape字段创建过一个索引,否则这两种格式的文件将不会存在。另外得注意:如果您在进行各种操作过程中,中途没有对源数据目录进行过类似于“保存项目”之类的“写操作”,那么当您最终关闭ArcView或当前Proiect时,程序将会自动剔除这两种邻时文件而使其不能在磁盘中得以永久保存,如果出现这样情况,那么您就无法在当前工作目录下找到它们。.ain和aih文件——贮存地理要素主题属性表或其它表格的活动字段的属性索引信息的文件。除非您执行过“表格链接”(Link)操作,否则这两个文件是不会存在的。如果您中途没有对源数据目录进行过写操作(保存项目),那么这两个文件最终也不会自动在当前工作目录中得以保存。一、ArcView用.Shp作为默认文件扩展名的优点1、基于其非拓仆性,可以使文件迅速在视图中显示出来,52
52 第五章 Shape 文件及其编辑 Shapefile 是 ArcView 存贮空间数据的内部缺省文件格式。利用这一简单的、非拓仆型 的格式,ArcView实现了地理要素属性信息与几何位置的统一贮存,这正是目前大多数 GIS 专业软件流行的设计方法。 第一节 Shape 格式及其优点 ArcView 的 Shape 文件格式可以通过其自身的实用工具创建,也可以经由 ARC/INFO coverage 或其它的桌面地图格式转换得到。转换既可以在其它程序中进行(比如:在 ARC/INFO 中,使用ARCshpe 及 shpeARC 命令便可以实现 coverage 与 shpe 文件之间的双 向转换),也可以在 ArcView 界面下来做(先将数据源调入,然后再转换模块将其转换成 Shape 格式,参见“空间分析”部分)。以上特点充分反映了 ArcView 对数据格式的灵活性 和高度兼容性。 Shape 文件实际上只是 ArcView 进行 GIS 数据管理(定义感兴趣的地理要素的几何关 系及要素属性)的 5 种核心文件类型之一。这 5 种文件作为项目工作组的内容被贮存于同 一个工作目录中,相互以不同的扩展名相区别: .shp——贮存地理要素的几何关系的文件。. .shx——贮存图形要素的几何索引的文件。 .dbf——贮存要素属性信息的 dBASE 文件。当Shape 文件作为一个主题被加入到视图 之后,该.dbf 文件将会作为一个要素表格来显示。 .sbn 和 sbx——贮存地理要素的空间位置索引的文件。除非您执行过类似于选择“主 题之主题”、空间连接等操作,或者您对一个主题(属性表)的 Shape 字段创建过一个索引, 否则这两种格式的文件将不会存在。另外得注意:如果您在进行各种操作过程中,中途没 有对源数据目录进行过类似于“保存项目”之类的“写操作”,那么当您最终关闭ArcView 或当前 Project时,程序将会自动剔除这两种邻时文件而使其不能在磁盘中得以永久保存, 如果出现这样情况,那么您就无法在当前工作目录下找到它们。 .ain 和 aih 文件——贮存地理要素主题属性表或其它表格的活动字段的属性索引信息 的文件。除非您执行过“表格链接”(Link)操作,否则这两个文件是不会存在的。如果您 中途没有对源数据目录进行过写操作(保存项目),那么这两个文件最终也不会自动在当前 工作目录中得以保存。 一、ArcView 用.Shp 作为默认文件扩展名的优点 1、 基于其非拓仆性,可以使文件迅速在视图中显示出来
2、“主题要素”的编改功能只能在Shape格式下才能实现。3、利用Shape文件格式可以生成用户感兴趣的“新主题”。4、以共同字段属性值为基础,Shape格式易于实现图形要素的合并或分解。5、其开放性的文件格式不仅与ARC/INFO的数据格式完全兼容,而且能够被多种桌面GIS软件直接调用。二、在视图中创建新主题的方法在ArcView中,创建新主题一般分两种情况:一种是通过调用相关菜单来完成新的空白的“点、线、面”主题的新生,新生后的主题直接进入编辑状态:另一种是在视图现有的活动主题的基础上完成感兴趣的“新”主题的创建,如果这种主题被指定加载到当前视图,则该“新”主题将变为活动主题。1、建一个全新的“点、线、面”主题在ArcVieW中创建一个全新的主题是项目设计的重要而非必要的工作之一。根据ArcView中“项目”的等级管理原理,一个“项目”之下包含“视图”、“表格”、“图表”“图面设计”等组件:一个“视图”可以包含多个“主题”:一个主题又可由多种空间图形“要素”所组成,这些要素按其基本形态可分为“点、线、面”三种类型。在ArcView之中,主题可以是Shape文件格式,也可以不是Shape格式,但所有的非Shape主题都可以转换成Shape主题。从这种意义上讲,创建一个“全新”主题的过程就是生成一个Shape文件的过程,因为一个“全新”的Shape主题无非就是由“点”或“线”或“面”三种单一类型的图形要素所组成。创建一个“全新”主题的步骤是:(1)视图窗口界面中,选定“视图”(View)下拉菜单中的“NewTheme”项。(2)在弹出的对话框内选择想要创建的新主题的图形要素类型(注意:只能选择点、线、面一一多边形三种基本类型其中一种),并单击“OK”钮确认。(3)在随后出现的新的对话框内,指定ArcView将要创建的、您所想要添加的新主题的Shape文件的名称与保存位置,单击“OK”钮。这样,一个新的、空白的主题将出现在您的当前视图OOWS的主题目录表中(如nixIniner图5—1左窗格所VierlC口区四口示)。注意该新生主题-Newline2.shp的主题名称显示区呈弹起状态,表明它已自动成为当前活动主题,同时其左侧的“显示检测框”(矩形小框)四周又被另一个口矩形虚线框所包围,表明当前主题自动进图5-1创建新的Shape主题的视图53
53 2、 “主题要素”的编改功能只能在Shape 格式下才能实现。 3、 利用 Shape 文件格式可以生成用户感兴趣的“新主题”。 4、 以共同字段属性值为基础,Shape 格式易于实现图形要素的合并或分解。 5、 其开放性的文件格式不仅与 ARC/INFO 的数据格式完全兼容,而且能够被多种 桌面 GIS 软件直接调用。 二、在视图中创建新主题的方法 在 ArcView 中,创建新主题一般分两种情况:一种是通过调用相关菜单来完成新的空 白的“点、线、面”主题的新生,新生后的主题直接进入编辑状态;另一种是在视图现有 的活动主题的基础上完成感兴趣的“新”主题的创建,如果这种主题被指定加载到当前视 图,则该“新”主题将变为活动主题。 1、 建一个全新的“点、线、面”主题 在 ArcView 中创建一个全新的主题是项目设计的重要而非必要的工作之一。根据 ArcView 中“项目”的等级管理原理,一个“项目”之下包含“视图”、“表格”、“图表”、 “图面设计”等组件;一个“视图”可以包含多个“主题”;一个主题又可由多种空间图形 “要素”所组成,这些要素按其基本形态可分为“点、线、面”三种类型。 在 ArcView 之中,主题可以是 Shape 文件格式,也可以不是 Shape 格式,但所有的非 Shape 主题都可以转换成 Shape 主题。 从这种意义上讲,创建一个“全新”主题的过程就是生成一个 Shape 文件的过程,因 为一个“全新”的 Shape 主题无非就是由“点”或“线”或“面”三种单一类型的图形要 素所组成。 创建一个“全新”主题的步骤是: (1)视图窗口界面中,选定“视图”(View)下拉菜单中的 “New Theme”项。 (2)在弹出的对话框内选择想要创建的新主题的图形要素类型(注意:只能选择点、 线、面——多边形三种基本类型其中一种),并单击“OK”钮确认。 (3) 在随后出现的新的对话框内,指定 ArcView 将要创建的、您所想要添加的新主 题的 Shape 文件的名称与保存位置,单击“OK”钮。这样,一个新的、空白的主题将 出现在您的当前视图 的主题目录表中(如 图 5—1 左窗格所 示)。注意该新生主题 的主题名称显示区呈 弹起状态,表明它已 自动成为当前活动主 题,同时其左侧的“显 示检测框”(矩形小 框)四周又被另一个 矩形虚线框所包围, 表明当前主题自动进 图 5-1 创建新的 Shape 主题的视图
行可编辑状态。该状态将允许您使用绘图及编辑工具往这一新主题视图内添加图形要素。(4)给新主题添加图形要素:单击常用工具条中的“绘图工具”项(注意:点击过程应当稍微长一些),调出下拉式绘图工具(如图5一1右侧所示,该图是一个添加“线”要素的图形示例),根据绘图工作的实际需要选择合适的“工具”,然后即可在“视图”图形显示框内进行绘图。绘图工作结束后,ArcView将会自动生成一个与当前主题图形要素相对应的“主题属性表”,打开该表即可见其外型(如图5一2)。AttributesofHevline2.shpxShapeID一PolyLine...00PolyLine0PolyLineV口团图5-2新建主题的属性表新表显示,它仅含有两个字段“Shape”和“ID”。其中,前者记录着用户给当前主题所添加的所有“图形要素”的“类型名”(本例为“Polyline”):后者的所有记录均为0(即为“空白”记录)。(5)给新主题的属性表添加字段和记录:要添加字段,其方法是先从“编辑”(Edit)下拉菜单中选择“添加学段”(AddField)项,然后在对话椎内进行相应设置即可完成;要添加记录,首先必须从“工具条”内单击选择“编辑”工具,然后将鼠标指针指向目标记录区,当鼠标指针变为小手形状时,单击定位,输入新的记录内容即可。至此,一个包含着“图形要素”和“属性要素”的新的Shape主题的创建工作就全部完成了,该主题不仅具有“Shape”文件的所有优点,而且从数据结构与管理方式上讲也完全符合GIS图形-数据库的所有特点。必须注意:如果在创建“全新”主题的过程中您没有为视图指定一种投影方式,那么随后生成的Shape文件将会以视图中的地图单位进行贮存。如果期间指定了投影方式,那么新文件将以十进制方式贮存,这样可以使您以任何一种投影方式来在视图中展示您的新主题。另外,在许多情况下,由于空间数据的特殊性,您所创建新主题的图形要素并不能完全凭空想象,而应有所依据,这就常常需要在添加主题要素前先将其它已有的、保存有准确空间位置信息的主题作为背景来参考,对于ArcView来说,由于主题的“层状”管理特点,这一点也是很容易做到的。2、依据现有主题来创建新主题在视图中创建一个新主题,除了根据作者头脑里的素材“凭空”生成之外,也可以利用当前视图中已经具备的主题素材加工形成。用现有主题创建新主题的方法是:(1)单击目录表中的源主题名称使其进入活动状态。(2)如果您是想将当前主题的所有图形要素都转而生成新的主题,就直接调用“主题”(Theme)菜单,点选其“转换成Shape文件”(Convertto54
54 行可编辑状态。该状态将允许您使用绘图及编辑工具往这一新主题视图内添加图形要 素。 (4)给新主题添加图形要素:单击常用工具条中的“绘图工具”项(注意:点击过 程应当稍微长一些),调出下拉式绘图工具(如图 5—1 右侧所示,该图是一个添加“线” 要素的图形示例),根据绘图工作的实际需要选择合适的“工具”,然后即可在“视图” 图形显示框内进行绘图。绘图工作结束后,ArcView 将会自动生成一个与当前主题图 形要素相对应的“主题属性表”,打开该表即可见其外型(如图 5—2)。 新表显示,它仅含有两个字段“Shape”和“ID”。其中,前者记录着用户给当前 主题所添加的所有“图形要素”的“类型名”(本例为“Polyline”);后者的所有记录 均为 0(即为“空白”记录)。 (5)给新主题的属性表添加字段和记录:要添加字段,其方法是先从“编辑”(Edit) 下拉菜单中选择“添加字段”(Add Field)项,然后在对话框内进行相应设置即可完 成;要添加记录,首先必须从“工具条”内单击选择“编辑”工具,然后将鼠标指针 指向目标记录区,当鼠标指针变为小手形状时,单击定位,输入新的记录内容即可。 至此,一个包含着“图形要素”和“属性要素”的新的 Shape 主题的创建工作就 全部完成了,该主题不仅具有“Shape”文件的所有优点,而且从数据结构与管理方式上讲, 也完全符合 GIS 图形-数据库的所有特点。 必须注意:如果在创建“全新”主题的过程中您没有为视图指定一种投影方式,那么 随后生成的 Shape 文件将会以视图中的地图单位进行贮存。如果期间指定了投影方式,那 么新文件将以十进制方式贮存,这样可以使您以任何一种投影方式来在视图中展示您的新 主题。 另外,在许多情况下,由于空间数据的特殊性,您所创建新主题的图形要素并不能完 全凭空想象,而应有所依据,这就常常需要在添加主题要素前先将其它已有的、保存有准 确空间位置信息的主题作为背景来参考,对于ArcView 来说,由于主题的“层状”管理特 点,这一点也是很容易做到的。 2、 依据现有主题来创建新主题 在视图中创建一个新主题,除了根据作者头脑里的素材“凭空”生成之外,也可以利 用当前视图中已经具备的主题素材加工形成。 用现有主题创建新主题的方法是: (1) 单击目录表中的源主题名称使其进入活动状态。 (2) 如果您是想将当前主题的所有图形要素都转而生成新的主题,就直接调用 “主题”(Theme)菜单,点选其“转换成 Shape 文件”(Convert to 图 5-2 新建主题的属性表
Shapefile)选项;如果您只想将当前主题中的一部分您所感兴趣的图形要素转变成一个新主题的话,那么就必须先选中这些要素(多项选择可以<Shift>键相配合),然后再选择“转换成Shape文件”单。以上两种操作都会弹出一个新的对话框。(3)在对话框内,指定新生主题(也就是新Shape文件)的名称,以及文件的磁盘保存位置,然后单击“OK”。(4)这时会出现一个“是否想使新生成的Shape文件作为一个新主题加入到您当前工作项目中?”的提示框,一般情况下建议点选“OK”按钮。这样新文件将以新主题的形式添加到您当前的视图之中。(5)用上述方法可以一次仅对一个活动主题进行操作,也可以一次击活若干个主题,以实现对文件转换与新主题生成工作的所谓“批处理”。图5一3是一个以“全国省区”(源主题)为基础,以其中的西北五省区为选中要素(亦即:感兴趣区域)而创建“新的Shape主题”的图形示意(图中:左图为转换的视图,右图为创建后的新主题视图)。Vier2周口区心Vier2D口区7全国百区5Themeosl全国省区3B0u14Bou1.4l.shN7-图5-3创建“新Shape主题”的图形示例值得注意:以现有主题为素材来生成新Shape主题的工作是ArcView项目与视图管理中最频繁、最常见的操作方法之一。其之所以常用,主要基于以下几方面的理由:(1)在ArcView中,所有来自于外部的非Shape文件格式的主题在视图中都是不可编辑的,比如:ARC/INFO的coverage文件、CAD绘图文件等等。想要对这些文件格式的主题进行修改,首先就必须将它们转换成文件、生成新的Shape主题,然后再击活该主题,即可达到编辑修改的目的。(2)运用“查询”工具,可以在活动主题要素中自动找到任何您所感兴趣的图形要素,要将这些要素单独作为一个文件保存在磁盘上,或者作为一个新主题展示到当前视图之中,也必须调用“ConverttoShape”工具进行工作。(3)假如您正在使用ArcView的空间分析扩展模块,并且想要将一个栅格主题转换成一个图形要素主题,以便能够使自己在矢量数据格式下使用现成的栅格数据,并且将这些数据应用于其他应用项目中去,您也需要进行类似的转换。(4)运用上述功能,可以使用户将系统之外丰富多彩的数据格式作为主题转换成ArcView的默认数据格式,以便进一步对数据进行整理或编辑,这正是本系统可以融合多种数据源的特点之一。55
55 Shapefile)选项;如果您只想将当前主题中的一部分您所感兴趣的图形要 素转变成一个新主题的话,那么就必须先选中这些要素(多项选择可以 <Shift>键相配合),然后再选择“转换成 Shape 文件”菜单。以上两种操 作都会弹出一个新的对话框。 (3) 在对话框内,指定新生主题(也就是新Shape 文件)的名称,以及文件的 磁盘保存位置,然后单击“OK”。 (4) 这时会出现一个“是否想使新生成的 Shape 文件作为一个新主题加入到您 当前工作项目中?”的提示框,一般情况下建议点选“OK”按钮。这样 新文件将以新主题的形式添加到您当前的视图之中。 (5) 用上述方法可以一次仅对一个活动主题进行操作,也可以一次击活若干个 主题,以实现对文件转换与新主题生成工作的所谓“批处理”。 图 5—3 是一个以“全国省区”(源主题)为基础,以其中的西北五省区为选中要素(亦 即:感兴趣区域)而创建“新的 Shape 主题”的图形示意(图中:左图为转换的视图,右 图为创建后的新主题视图)。 值得注意:以现有主题为素材来生成新Shape 主题的工作是 ArcView 项目与视图管理 中最频繁、最常见的操作方法之一。其之所以常用,主要基于以下几方面的理由: (1)在 ArcView 中,所有来自于外部的非 Shape 文件格式的主题在视图中都是不可 编辑的,比如:ARC/INFO 的 coverage 文件、CAD 绘图文件等等。想要对这些 文件格式的主题进行修改,首先就必须将它们转换成文件、生成新的Shape 主题, 然后再击活该主题,即可达到编辑修改的目的。 (2)运用“查询”工具,可以在活动主题要素中自动找到任何您所感兴趣的图形要 素,要将这些要素单独作为一个文件保存在磁盘上,或者作为一个新主题展示 到当前视图之中,也必须调用“Convert to Shape”工具进行工作。 (3)假如您正在使用 ArcView 的空间分析扩展模块,并且想要将一个栅格主题 转 换成一个图形要素主题,以便能够使自己在矢量数据格式下使用现成的栅格数 据,并且将这些数据应用于其他应用项目中去,您也需要进行类似的转换。 (4)运用上述功能,可以使用户将系统之外丰富多彩的数据格式作为主题转换成 ArcView 的默认数据格式,以便进一步对数据进行整理或编辑,这正是本系统可 以融合多种数据源的特点之一。 图 5-3 创建“新 Shape 主题”的图形示例
此外,基于现有主题来创建新主题也存在着Shape文件将以何种数据方式进行存盘的问题。对此,ArcView是这样规定的:如果您在一个视图中创建的新主题所依据的数据源不是十进制的(比如被贮存为一个指定的投影单位),那么由此而生成的新的Shape文件将以与数据源所使用的投影方式一致的投影单位来贮存。也就是说,在这种情况下将不允许您用不同的投影方式去展示这一新主题,如果非要使用其他形式的地图投影,将会导致新生主题在视图显示区内消失。如果您发现“转换成Shape文件”的操作选项呈灰色,其可能原因及处理方法是:(1)当当前活动主题的属性表内的“Shape”字段被隐藏时,请您选择“Table”下拉菜单的“Properties”选项,在弹出的属性对话框下部的“字段列表”中重新对“被隐藏”的字段进行设置,以便使其再度在属性表内得以显示。(2)如果您没有对当前活动主题所使用的数据源进行过存盘(写)操作,这样转换模块将无法找到活动的主题对象。该情况的处理方法是:对当前主题要素(最大的可能性是该主题为全新主题)进行写盘操作。(3)当前活动主题是一种数据库型主题,并且还没有在其中选择任何一种要素。对于这种主题,要生成新的Shape文件(或主题)就必须先选中您所感兴趣的图形要素。第三节Shape文件的编辑Shape文件的最大优点是其非拓仆性图形要素可以被任意编辑。不论当前要编辑的主题要素是点状的、线状的,还是面状(多边形)的,都必须先启动主题编辑工具。一、Shape主题的通用编辑方法1、具体操作步骤(1)通过单击“主题目录表”中的主题名称来击活目标主题。(2)0从视图中的“主题”(Theme)下拉菜单中选择“StartEditing”选项。这时,在当前目标主题左侧矩形“检测框”四周将出现一个虚线框,它是当前主题可以被编辑的明显标识。(3)用“指针”(Pointer)工具点击要编辑的对象,当对象周围出现“操作柄”(一股是由8个小矩形排列而成的矩形方椎)时,用户就可以移动对象或通过描放改变要素的大小。其它编辑项目的操作方法则因要素类型的不同而有所不同。(4)选择“主题”菜单下的“SaveEdit”随时保存所做的编辑,保存完成后仍然自动回到编辑状态。直到选择“StopEdit”并回答是否保存编辑结果后,方可结束本次编辑。为了不破坏原有主题的原始信息,您也可以把您对当前主题所做的所有编辑结果保存成一个新的主题,方法是从“主题”下拉菜单中选择“SaveEditAs”,并在出现的对话框中指定新主题文件的名称及磁盘保存位置。56
56 此外,基于现有主题来创建新主题也存在着 Shape 文件将以何种数据方式进行存盘的 问题。对此,ArcView 是这样规定的:如果您在一个视图中创建的新主题所依据的数据源 不是十进制的(比如被贮存为一个指定的投影单位),那么由此而生成的新的 Shape 文件将 以与数据源所使用的投影方式一致的投影单位来贮存。也就是说,在这种情况下将不允许 您用不同的投影方式去展示这一新主题,如果非要使用其他形式的地图投影,将会导致新 生主题在视图显示区内消失。 如果您发现“转换成 Shape 文件”的操作选项呈灰色,其可能原因及处理方法是: (1)当当前活动主题的属性表内的“Shape”字段被隐藏时,请您选择“Table”下拉 菜单的“Properties”选项,在弹出的属性对话框下部的“字段列表”中重新对 “被隐藏”的字段进行设置,以便使其再度在属性表内得以显示。 (2) 如果您没有对当前活动主题所使用的数据源进行过存盘(写)操作,这样转换 模块将无法找到活动的主题对象。该情况的处理方法是:对当前主题要素(最 大的可能性是该主题为全新主题)进行写盘操作。 (3) 当前活动主题是一种数据库型主题,并且还没有在其中选择任何一种要素。对 于这种主题,要生成新的Shape 文件(或主题)就必须先选中您所感兴趣的图形 要素。 第三节 Shape 文件的编辑 Shape 文件的最大优点是其非拓仆性图形要素可以被任意编辑。不论当前要编辑的主 题要素是点状的、线状的,还是面状(多边形)的,都必须先启动主题编辑工具。 一、Shape 主题的通用编辑方法 1、具体操作步骤 (1) 通过单击“主题目录表”中的主题名称来击活目标主题。 (2) 从视图中的“主题”(Theme)下拉菜单中选择“Start Editing”选项。这时, 在当前目标主题左侧矩形“检测框”四周将出现一个虚线框,它是当前主题 可以被编辑的明显标识。 (3) 用“指针”(Pointer)工具点击要编辑的对象,当对象周围出现“操作柄”(一 般是由 8 个小矩形排列而成的矩形方框)时,用户就可以移动对象或通过拖 放改变要素的大小。其它编辑项目的操作方法则因要素类型的不同而有所不 同。 (4) 选择“主题”菜单下的“Save Edit”随时保存所做的编辑,保存完成后仍然 自动回到编辑状态。直到选择“Stop Edit”并回答是否保存编辑结果后,方 可结束本次编辑。 为了不破坏原有主题的原始信息,您也可以把您对当前主题所做的所有编辑结果保存 成一个新的主题,方法是从“主题”下拉菜单中选择“Save Edit As”,并在出现的对话框 中指定新主题文件的名称及磁盘保存位置