选中多个复选框,如何把多个值保存到同一字段当中,每个字段用逗号隔开

大白冬瓜 2004-06-17 03:48:55
最好有源代码参考,谢谢各位!
...全文
430 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
ninjakoei 2004-06-17
  • 打赏
  • 举报
回复
<INPUT TYPE="checkbox" NAME="data[]">



implode('、', $_POST['data']);

szjq 2004-06-17
  • 打赏
  • 举报
回复
楼上的没错,用数组名作为input名
chinaworker 2004-06-17
  • 打赏
  • 举报
回复
<INPUT TYPE="checkbox" NAME="data[]">



implode('、', $_POST['data']);
chinaworker 2004-06-17
  • 打赏
  • 举报
回复
<INPUT TYPE="checkbox" NAME="data">



implode('、', $_POST['data']);
控件使用 1、鼠标经过行的时候改变该行的样式,鼠标离开行的时候恢复该行的样式 使用方法(设置属性): MouseOverCssClass - 鼠标经过行时行的 CSS 类名 2、对多个字段进行复合排序;升序、降序的排序状态提示 使用方法(设置SmartSorting复合属性): AllowSortTip - 是否启用排序提示 AllowMultiSorting - 是否启用复合排序 SortAscImageUrl - 升序提示图片的URL(不设置则使用默认图片) SortDescImageUrl - 降序提示图片的URL(不设置则使用默认图片) SortAscText - 升序提示文本 SortDescText - 降序提示文本 3、根据按钮的CommandName设置其客户端属性 使用方法(设置ClientButtons集合属性): BoundCommandName - 需要绑定的CommandName AttributeKey - 属性的名称 AttributeValue - 属性的(两个占位符:{0} - CommandArgument;{1} - Text) Position - 属性的的位置 4、联动复选框复选框的全选和取消全选)。选中指定的父复选框,则设置指定的所有子复选框选中状态;取消选中指定的父复选框,则设置指定的所有子复选框为取消选中状态。如果指定的所有子复选框为均选中状态,则设置指定的父复选框选中状态;如果指定的所有子复选框至少有一个为取消选中状态,则设置指定的父复选框为取消选中状态 使用方法(设置CascadeCheckboxes集合属性): ParentCheckboxID - 模板列中 父复选框ID ChildCheckboxID - 模板列中 子复选框ID CashBox.Helper.WebGrid中的静态方法 List GetCheckedDataKey(GridView gv, int columnIndex) List GetCheckedDataKey(GridView gv, string checkboxId) 5、固定指定行、指定列,根据RowType固定行,根据RowState固定行 使用方法(设置FixRowColumn复合属性): FixRowType - 需要固定的行的RowType(用逗号“,”分隔) FixRowState - 需要固定的行的RowState(用逗号“,”分隔) FixRows - 需要固定的行的索引(用逗号“,”分隔) FixColumns - 需要固定的列的索引(用逗号“,”分隔) TableWidth - 表格的宽度 TableHeight - 表格的高度 6、响应行的单击事件和双击事件,并在服务端处理 使用方法(设置属性): BoundRowClickCommandName - 行的单击事件需要绑定的CommandName BoundRowDoubleClickCommandName - 行的双击事件需要绑定的CommandName 7、行的指定复选框选中的时候改变该行的样式,行的指定复选框取消选中的时候恢复该行的样式 使用方法(设置CheckedRowCssClass复合属性): CheckBoxID - 模板列中 数据行的复选框ID CssClass - 选中的行的 CSS 类名 8、导出数据源的数据为Excel、Word或Text(应保证数据源的类型为DataTable或DataSet) 使用方法: 为WebGrid添加的方法 Export(string fileName) Export(string fileName, ExportFormat exportFormat) Export(string fileName, ExportFormat exportFormat, Encoding encoding) Export(string fileName, int[] columnIndexList, ExportFormat exportFormat, Encoding encoding) Export(string fileName, int[] columnIndexList, string[] headers, ExportFormat exportFormat, Encoding encoding) Export(string fileName, string[] columnNameList, ExportFormat exportFormat, Encoding encoding) Export(string fileName, strin
控件使用
1、鼠标经过行的时候改变该行的样式,鼠标离开行的时候恢复该行的样式
使用方法(设置属性):
MouseOverCssClass - 鼠标经过行时行的 CSS 类名

2、对多个字段进行复合排序;升序、降序的排序状态提示
使用方法(设置SmartSorting复合属性):
AllowSortTip - 是否启用排序提示
AllowMultiSorting - 是否启用复合排序
SortAscImageUrl - 升序提示图片的URL(不设置则使用默认图片)
SortDescImageUrl - 降序提示图片的URL(不设置则使用默认图片)
SortAscText - 升序提示文本
SortDescText - 降序提示文本

3、根据按钮的CommandName设置其客户端属性
使用方法(设置ClientButtons集合属性):
BoundCommandName - 需要绑定的CommandName
AttributeKey - 属性的名称
AttributeValue - 属性的(两个占位符:{0} - CommandArgument;{1} - Text)
Position - 属性的的位置

4、联动复选框复选框的全选和取消全选)。选中指定的父复选框,则设置指定的所有子复选框选中状态;取消选中指定的父复选框,则设置指定的所有子复选框为取消选中状态。如果指定的所有子复选框为均选中状态,则设置指定的父复选框选中状态;如果指定的所有子复选框至少有一个为取消选中状态,则设置指定的父复选框为取消选中状态
使用方法(设置CascadeCheckboxes集合属性):
ParentCheckboxID - 模板列中 父复选框ID
ChildCheckboxID - 模板列中 子复选框ID
YYControls.Helper.SmartGridView中的静态方法
List GetCheckedDataKey(GridView gv, int columnIndex)
List GetCheckedDataKey(GridView gv, string checkboxId)

5、固定指定行、指定列,根据RowType固定行,根据RowState固定行
使用方法(设置FixRowColumn复合属性):
FixRowType - 需要固定的行的RowType(用逗号“,”分隔)
FixRowState - 需要固定的行的RowState(用逗号“,”分隔)
FixRows - 需要固定的行的索引(用逗号“,”分隔)
FixColumns - 需要固定的列的索引(用逗号“,”分隔)
TableWidth - 表格的宽度
TableHeight - 表格的高度

6、响应行的单击事件和双击事件,并在服务端处理
使用方法(设置属性):
BoundRowClickCommandName - 行的单击事件需要绑定的CommandName
BoundRowDoubleClickCommandName - 行的双击事件需要绑定的CommandName

7、行的指定复选框选中的时候改变该行的样式,行的指定复选框取消选中的时候恢复该行的样式
使用方法(设置CheckedRowCssClass复合属性):
CheckBoxID - 模板列中 数据行的复选框ID
CssClass - 选中的行的 CSS 类名

8、导出数据源的数据为Excel、Word或Text(应保证数据源的类型为DataTable或DataSet)
使用方法:
为SmartGridView添加的方法
Export(string fileName)
Export(string fileName, ExportFormat exportFormat)
Export(string fileName, ExportFormat exportFormat, Encoding encoding)
Export(string fileName, int[] columnIndexList, ExportFormat exportFormat, Encoding encoding)
Export(string fileName, int[] columnIndexList, string[] headers, ExportFormat exportFormat, Encoding encoding)

9、给数据行增加右键菜单,响应服务端事件或超级链接
使用方法(设置ContextMenus集合属性):
Text - 菜单的文本内容
BoundCommandName - 需要绑定的CommandName
NavigateUrl - 链接的URL
Target - 链接的目标窗口或框架
SmartGridView的属性ContextMenuCssClass - 右键菜单的级联样式表 CSS 类名(右键菜单的结构div ul li a)

10、自定义分页样式。显示总记录数、每页记录数、当前页数、总页数、首页、上一页、下一页、末页和分页按钮
使用方法(设置CustomPagerSettings复合属性):
PagingMode - 自定义分页的显示模式
TextFormat - 自定义分页的文本显示样式(四个占位符:{0}-每页显示记录数;{1}-总记录数;{2}-当前页数;{3}-总页数)

11、合并指定列的相邻且内容相同的单元格
使用方法(设置属性):
MergeCells - 需要合并单元格的列的索引(用逗号“,”分隔)
1、鼠标经过行时改变行的样式 CssClassMouseOver - 鼠标经过行时行的样式的CSS类名 2、给字段标题加上排序状态 设置其SortTip下的4个属性即可 SortAscImage - 升序提示图片 SortAscText - 升序提示文本 SortDescImage - 降序提示图片 SortDescText - 降序提示文本 3、单击命令按钮弹出确认框 设置其ConfirmButtons属性 CommandName - 命令按钮的CommandName属性 ConfirmMessage - 弹出的确认框所显示的文字 4、每行复选框的全选与取消全选 在模板列的头模板处添加一个复选框,在模板列的项模板处添加一个复选框,然后设置控件的CheckboxAlls属性 CheckboxAllID - 模板列全选复选框ID CheckboxItemID - 模板列项复选框ID 5、固定表头、指定行或指定列 设置其FixRowCol下的6个属性 IsFixHeader - 固定表头否? IsFixPager - 固定分页行否? FixRowIndices - 需要固定的行的索引(用逗号“,”分隔) FixColumnIndices - 需要固定的列的索引(用逗号“,”分隔) TableWidth - 表格的宽度 TableHeight - 表格的高度 EnableScrollState - 是否保持滚动条的状态 6、数据行响应鼠标的单击和双击事件 RowClickButtonID - 行单击事件所对应的按钮的ID RowDoubleClickButtonID - 行双击事件所对应的按钮的ID 7、改变通过CheckBox选中的行的样式 CheckBoxID - 模板列的项复选框的ID CssClassRowSelected - 选中行的样式的CSS类名 8、导出为Excel 在GridView内加一个按钮 CommandName属性设置为“ExportToExcel” CommandArgument属性的用“;”做分隔符分为两部分,左边的部分为导出Excel的文件名称,右边的部分为需要隐藏的列的索引(列索引用“,”分开) 9、给数据行增加右键菜单 ItemType - 右键菜单的项的类别(Link,Command,Custom,Separator) Icon - 文字左边的图标的链接 Text - 菜单的文字 CommandButtonId - 所调用的命令按钮的ID NavigateUrl - 链接的url Target - 链接的target(Blank,Self,Top) Key - 自定义属性key Value - 自定义属性value 10、扩展分页功能 设置PagingStyle属性为Default
DataBaseTool: 简单的数据库查询、修改工具。 最新版本: 1.0.0.7 20190616 如不能正常执行,请运行 Regist.bat 注册必要的组件。 (在win7下可能由于权限的问题无法复制和注册文件到系统目录,解决方法是: 打开‘开始’菜单->‘所有程序’->‘附件’,右键点击‘命令提示符’,选择‘以管理员身份运行’, 启动命令行程序后,转到本程序目录,然后执行Regist.bat) 本程序可用的数据库可以是Access的.mdb文件,.xls文件,.csv文件,.txt文件等 也可用于打开SQL Server数据库和已建立ODBC数据源的其他数据库 若要打开mdb文件、xls文件、csv文件、txt文件,可以点“Browse”按钮定位文件,也可以直接把文件拖到MdbFile列表框中。 若要打开SQLServer数据库,则需要在MdbFile输入框中输入“sql:ServerName,DataBaseName,UserName,Password”, 其中 ServerName 是数据库服务器的名称或IP地址 DataBaseName 是数据库名称 UserName 是用户名称 Password 是用户密码 若要连接其他数据库,可以直接输入数据源的名称(DSN),格式为:“dsn:数据源的名称;uid=用户名;pwd=密码” Field1 和 Field2 是查询条件,所选表格的字段已列出,点选字段名、比较运算符,然后在后面输入条件 支持最多两个查询条件,如果需要更多查询条件或者构造更复杂的条件,请点击 “ExeSQL” 按钮,在那里可以自己输入任何合法的 SQL 命令,程序将帮您执行它! FieldToReplace 及下面两个输入框是用来把数据表中某一个字段中的特定字符串替换为其他字符串: StrTobeReplace 是需要被替换掉的字符串,StrToReplace 是用来替换的字符串! (不要奇怪为什么会提供如此奇怪的功能!是因为工作需要替换某个表中所有记录的某个字段的指定字符串,才写了这个程序,就是说这个功能是写这个程序的初衷!) 如果点选 Order 复选框,则会按照 Field1, Field2, FieldToReplace 的顺序排序,如果 Field1 或者 Field2 已经是 查询条件的一部分,则不参与排序。 如果点选 AutoUpdate 复选框,则在下面表格中修改的数据会自动更新到数据库中,如果仅修改一个单元格的数据,则修改完后需要按回车键确定才会存入数据库! 如果没有点选 AutoUpdate 复选框,并在表格中修改了数据,按“UpDate”按钮也可以把修改的数据更新到数据库中(这个不太常用!) 右侧的字段列表是查询时需要显示的列,如果一个也不选或者全选,则都将查询所有字段(即select *) 【常用的】 EXESQL 按钮: 可以直接输入一个简单的SQL命令并执行。 ‘Show queried data’ 选项: 指示所输入的 sql 命令是否会返回数据集,如果勾选,程序会尝试读取返回的数据集,如果不勾选,程序就只是执行命令并尝试返回受影响的行数。 程序会自动判断这个命令是否会返回数据集,如果判断为会返回数据集,比如输入的是一个 类似 select * from 的命令,则自动勾选‘Show queried data’。如果您确定命令会返回数据集但这个选项没有自动勾选,您可以手动勾选, 这样程序就会尝试读取并显示得到的结果。 ‘LongSQL’按钮: 如果您想要输入一个很长很复杂的命令,可以再按‘LongSQL’按钮,会弹出一个可以输入多行文字的新输入窗口,然后就可以在其中输入多行命令。 换行: 在这个输入控件中,直接按回车就是换行,如果按 Ctrl+回车 则相当于按‘OK’按钮,会立即执行输入的命令。 多个命令: 如果想要一次执行多个命令,比如几百几千行的 insert 命令,可以一次把所有这些命令都复制到 LongSQL 的输入框中, 每一命令之间用英文分号';'分隔,然后按 Ctrl+回车 或点击‘OK’按钮执行。 ‘Ignore errors’选项: 如果输入的多行命令可能有些会出错,比如 insert 了重复的数据,并且希望除出错的命令外其他的命令可以正常执行,可以选中这个选项, 这样的话,程序会跳过出错的命令并继续执行后面的命令。 数据导出: ‘Export’按钮: 如果想要导出查询或命令的结果,可以在结果显示出来后,按‘Export’按钮,程序会自动启动Excel并把数据导出到Excel中;如果电脑上没有 安装Excel,则这个按钮不起作用。 复制数据: 用户可以选择把数据复制到剪贴板上,复制有2种方式: 1) 复制所选行 按住 Ctrl 键并用鼠标点击每行的行首,可以选择多行(所选择的行并不要求相邻),选择完毕后,在所选行上点击鼠标右键选择 ‘Copy’菜单进行复制。 2) 复制所选列 点击需要复制的第一列的列标题,然后按住‘Shift’键再点击需要复制的最后一列的列标题(按列复制时要求这些列必须相邻), 选择完毕后,在所选行上点击鼠标右键选择‘Copy’菜单进行复制。 ‘Copy’菜单有2个,一个是 ‘Copy(Using Tab)’,另一个是‘Copy(Using ',')’, 如果选择‘Copy(Using Tab)’则复制的数据中,各字段之间会用 Tab 分隔, 如果选择‘Copy(Using ',')’则复制的数据中,各字段之间会用英文的逗号分隔。 ================================================================================== 特别的命令: 如果想查看每个表格中各有多少数据,可以执行: SELECT $TABLEINFO$ 如果想查看某个表格的字段定义,可以执行: SELECT $FIELDINFO$ where table=TableName,其中‘TableName’是您想查看的表格的名称 ================================================================================== 这个程序可以作为临时或不想打开庞大的数据库软件时查看或修改数据的小工具,也可以作为验证sql是否正确的工具! 或者通过在界面上点选查询条件,按 “Find” 按钮,然后再按 “ExeSQL” 按钮,然后把自动生成的sql命令复制出来用到其他地方,即把这个程序作为简便的生成sql命令的工具. win7 或 win10系统下,需要以管理员身份运行 Regist.bat 以注册所需的组件。
第十三章 ArcView网络分析 第一节 ArcView网络分析概述 一、ArcView网络分析简介 一组互相以一定的空间关系连接的线状数据构成的系统称之为网络数据系统,如公路、铁路、河流、各种网线、电力线、电话线、城市供排水管线数据系统等。在GIS中,采用网络分析的原理与方法对空间网络数据进行处理与分析,是一项具有极其重要应用意义的工作。ArcView网络分析扩展模块Network Analyst主要有以下三种主要功能:  寻找最佳行进路线,如:找出两地通达的最佳路径。  确定最近的公共设施,如:引导最近的救护车到事故地点。  创建服务区域,如:确定某零售店的服务区域,从而查明区域内的顾客数等等。 在本章将通过三个典型例证介绍ArcView网络分析模块的主要功能。 二、Arcview网络分析模块的装入 从【Files】菜单选择【Extensions】命令,在Extensions对话框中选中Network Analyst(见图13-1),单击OK,即装入Network Analyst空间分析扩展模块。 第二节ArcView网络分析基本功能 一、寻找最佳路径 首先,在两地或多个地点之间选择一条最佳的行进路线,要确立对于路线选择的基本准则。例如:如果要节省时间,则希望选择最快的路线;若费用是首先考虑的因素,则须选择费用最低的路线。在Network Analyst中,最快、最短、最少费用及其他均可作为选择最佳路径的准则,与之相关的是在网络主题的特征表中选择合适的费用字段,如果寻找行驶时间最短的路线,单位为分钟或小时;如果寻找距离最短的路线,单位可为公里或英里。 寻找最佳路径功能主要包括确定两点间的最佳路径和多点间的最佳路径。 例:为邮递员设计最佳投递路线,该路线应是投递时的最短路线,并选择最有效率的投递顺序。具体的操作如下: 1. 在视图目录表中添加城市街道的网络线主题Streets和投递点主题Diliveries。(见图13-2)。 2. 从【Network】菜单选择【Find Best Route】命令。 3. 出现路径Route1对话框,单击 按钮,在下来出现的Properties对话框(见图13-3)中,从Cost Field下拉列表中选择街道主题属性表中的一个字段作为费用字段用来计算最佳路线。此字段表示在某一属性特征上行驶的费用,费用可以是穿过一个特征所须的平均时间或平均距离。在Network Analyst中,缺省使用线的长度来计算两地的最短路径。 从Working Unit下拉列表中选择工作单位,工作单位确定了该路线的总的费用,例如:在该路线上行驶所需的时间或距离。如果用作为费用字段,该视图的距离单位将作为工作单位。要选择距离单位,请先从【View】菜单选择【Properties】命令,在View Properties对话框中设定距离单位,单击OK即可。在本例中选择Meters(街区长度)作为费用字段,Meters为工作单位。 4.同时,视图中添加缺省名为“Route 1”的新主题来包含最佳路线。 5. 在街道主题上指定投递起点(邮递员从邮局出发)及各个投递站点,在Network Analyst中有三种方法可以选择访问站点: ⑴从工具栏中选择添加位置工具 ,在线主题上用鼠标直接点击,确定起点与各投递点。 ⑵从【Network】菜单选择【Add Location by Address】命令,在Locate Address对话框(见图13-4)中输入站点的地址,用地址指定位置,此过程为地址编码(geocoding)。地址编码将地址转换为一个点并将之添加到当前视图上,其地址属性存放于该线主题属性表中特定的地址域中。关于地址编码的详细内容,参见Arcview基础知识的有关章节。 ⑶在Route1对话框中选择 按钮(见图13-5),在Load Stops对话框中添加一个点主题作为站点位置。 在本例中用 工具在街区主题中直接指定投递起点(邮局)的位置,按下 按钮,将投递点主题Diliveries.shp添加到街区主题上(见图13-6)。 当指定站点后,他们被加入到Route1对话框(见图13-7)中的站点列表的Label栏中。列表中第一个站点是投递路线的起点,其他投递点将以其在列表中出现的次序被访问;要改变访问次序,选中站点,用箭头工具 和 在列表中移动它;按下 按钮可删除站点。 7.邮递员投递完毕之后须返回邮局,选中Route1对话框中的Return to origin复选框,保证路线的终点是邮局;选中Find best order复选框,得出最有效的投递顺序(见图13-7)。 8.单击solve按钮 ,计算投递的最短路线,其路线显示在Route 1主题中;穿过该路线所需的距离显示在Route1对话框中站点列表中的miles栏中(见图13-8)。 9.在Route1对话框中,单击 按钮,在Direction对话框中对生成的最佳路线进行了详细说明(见图13-9)。 二、确定最近设施 目的为在网络路径上找出距某一位置最近的设施,并设计到达这些设施的最近路线。最近设施是指能够提供某种特定的服务,并距某一位置(发生的某一事件)最近的任何设施。例如:对一场火灾来说,最近设施是指最近的消防栓;对一起交通事故来说,它是指离事故现场最近的能够提供急救服务的医院;而对于一个家庭的日常生活来说,最近设施又是指距住宅最近的零售店或超市。 根据需要,最近设施可以是一个或多个。寻找最近设施时,路线的行进方向可从事件到设施,或者从设施到事件。如:家庭主妇要到最近的商店购物,路线的行进方向是从家到该商店。当为一处火灾找出最近的消防站时,此时的行进方向是从消防站到火灾现场。因为交通方式、行驶速度、单行线及禁止转弯等因素的影响,路线行进方向不同,最近设施的位置将会有重要的差别。 确定了最近设施的位置后,还须设计到达他们的最佳路线。Network Analyst模块在找到最近设施的同时给出最佳路线。 例:寻找最近的医院。 1.在视图目录表中添加包含医院位置的点主题Hospitals(见图13-10)。 设施位置的添加有以下几种方法: ⑴如果设施位置存放于shape(.shp)文件或ARC/INFO coverage中,从菜单中选择Add Theme按钮 添加。 ⑵如果设施位置存储在dBASE或文本文件中,并且是地址信息,则应进行地址编码,并从【View】菜单选择【Add Event Theme】命令将编码后的设施位置主题添加到当前视图中。 ⑶如果设施位置以x、y坐标的形式存储在dBASE或文本文件中,用【Add Event Theme】命令将其添加到当前视图中。 ⑷如果没有设施位置的文件,可从【View】菜单选择【New Theme】命令为其创建一个新的主题,由数字化输入设施位置。 2.激活街道线主题streets.shp。 从【Network】菜单选择【Find Closest Facility】命令,打开设施Fac1对话框(见图13-11),同时,在视图目录表中添加缺省名为“Fac1”的新主题来包含事件到最近设施的最佳路线。 3.在Fac1对话框中单击 按钮,出现Properties对话框,从线主题的特征表中选择费用字段, 本例中为Meters(距离),Network Analyst 将根据此字段来查询最近设施;同时指定工作单位,本例中为meters(米),Network Analyst 将根据此单位来计算通向最近设施所需的总开销,单击OK。 在Fac1对话框中有以下几个选项: Facilities 在Facilities下拉列表中选择一个点主题作为设施主题,本例中为Hospitals。如果用选择工具 事先已选中了部分设施,则在解决问题时只考虑被选中的设施;如果无任何设施被选中,则所有的设施都被考虑。 Number of facilities to find 在此框中确定要找出的最近设施的数目。 Cutoff cost在此输入框中输入一个最远阀,对最近设施的最远距离进行限制。如果不做限制,则此项为空白。其单位应与指定的工作单位一致。 Event 指定发生的事件。可采用Add Loacation工具 在线主题上点直接点击,事件的位置将以绿色符号显示在视图上;或者从【Network】菜单选择【Add Location by Address】命令,在Locate Address对话框中输入事件的地址;也可用 按钮装入一个包含事件的点主题。如果采用 工具指定事件,事件的缺省名为“Graphic pick ”,n是唯一的编号;如果用【Add Location by Address】命令指定事件,则事件的地址为其默认名称,双击事件名称可以对其进行编辑,并可输入新名称。 用 在线主题上点直接点击指定一个事件,而其位置在线主题的特定搜索距离之外(线主题的特定搜索距离为该线主题水平或垂直图廓中较长的一个的1/100),此时,Network Analyst将提示是否要增加此事件(见图13-12)。如果回答是肯定的,该事件将以红色符号表示在视图上。当用 装入一个点主题时,所有的点都将添加到Event列表中,如果选择了一个不在搜索距离内的事件,它将以红色符号显示。红色符号表示的事件在解决问题时不予考虑,可采用Pointer工具 选择该符号并移动到线主题上,此时,红色变成绿色,该事件才可作为指定事件。 Travel to event / Travel from event 指定路线的行进方向,Travel to event表示路线方向从设施到事件;Travel from event表示路线方向从事件到设施。 4.单击solve按钮 ,找出最近的医院,并显示最佳路线(见图13-13)。最近设施 的名称显示在Fac1的Label栏中,其距事件的距离显示在meters栏中。 Network Analyst模块采用包含在设施主题特征表中的字段名(或别名)为Label的字段给设施和事件命名,如果特征表中无Label字段,则设施和事件的缺省名为“Facility #n”和“Event #n”,#n为设施与事件的编号。 5.在Fac1对话框中单击 按钮,在Directions对话框(见图13-14)中对创建的最佳路线进行详细说明。按下 按钮可对路线说明打印输出。 三、创建服务区域 目的为在一个网络路径上确定任何位置的服务区域和服务网络,并显示在视图中。在创建服务区的基础上,可评估该地点的可达性。 可达性是指到达某一地点的难易程度,可用到达该地点所需的行驶时间或距离来评估。例如:一家零售商店,在步行1公里的范围内,可能居住的顾客数目;一家饭店,在其20分钟的行车时间范围内,可能有的顾客数目等。Network Analyst可用服务区和服务网络来评估可达性。 在指定某一地点后,Network Analyst可计算出在给定行驶时间或距离内到达该地的街道网络—服务网络Service Networks,并显示在视图中,利用服务网络可查看可达街道沿线的情况。同时,Network Analyst可生成该地点的服务区域Service Area,服务区域表示覆盖服务网络的地区,创建服务区之后,可以确定其中有多少人口或其他的事物。 创建服务区时,必须指定行进方向,从某地点到周围地区或从周围地区到某地点。因为交通方式、行驶速度、单行线及禁止转弯等因素的影响,路线行进方向不同,服务区域将会不同。 Network Analyst可建立两种服务区域:一般服务区General area和紧凑服务区Compact area(见图13-15、图13-16)。一般服务区比紧凑服务区稍大,边界较为光滑,一般服务区可能会与行进时间或距离确定的范围之外几个街道相迭;紧凑服务区即指服务网络覆盖的区域,通常有参差不齐的边界,它与区域外的街道交错较少,但可能漏掉一些应在服务区内的位置。在特殊情况下,例如:当线主题中的某些线特征横跨另一些线特征(如立交桥)时,Network Analyst将提示不能生成紧凑服务区,而生成一个一般服务区。 Network Analyst可创建包含多个地区的服务区和服务网络,如对上面提到的零售店,可创建1公里范围内、1-2公里、2-3公里范围内的服务区域,外部的区域为环状,不包括内部的区域(见图13-17)。 创建服务区功能可为零售店、超市、饭店、游乐场、娱乐中心的选址进行评估,了解选定地点周围的环境,为确定经营方向和营销策略提供依据。 例:为一个零售商店创建步行1公里范围的服务区并查明服务区内的顾客数。 1.激活街道线主题streets.shp。 2.在视图目录表中添加包含顾客居住地点的点主题customers(见图13-18)。添加方法与确定最近设施功能中设施的添加 3.从【Network】菜单选择【Find Service Area】命令,打开Sarea1和Snet1对话框(见图13-19),同时,在视图目录表中增加两个新的主题,缺省名为“Snet1”的新主题包含服务区内的街道网络。缺省名为“Sara1”的新主题包含服务区的多边形区域。 在Sarea1和Snet1对话框中按下 按钮,在Properties对话框中定义费用字段Meters(距离)和工作单位meters。 4.在街区线主题中指定零售点的位置。指定地点可以有以下几种方式: ⑴采用Add Loacation工具 在线主题上点直接点击。 ⑵从【Network】菜单选择【Add Location by Address】命令,在Locate Address对话框中输入地点的地址。 ⑶采用 按钮装入一个点主题。 指定的地点将添加到地点列表中,其名称显示在Label栏中。如果采用 工具指定地点,地点的缺省名为“Graphic pick ”,n是该地点唯一的编号;如果采用【Add Location by Address】命令指定地点,地址将作为该地点的缺省名。双击地点的名称可以对其进行编辑或重新命名。 5.双击地点列表中的费用字段Meters,删除缺省,键入行进距离1000米(见图13-19),并确保它的单位和工作单位一致,从而指定服务区域和网络的范围。 如果想为一个地点指定多个时间或距离,例如:距零售店1-2公里的服务区,可分别键入1000和2000,并用空格或逗号分开它们。 选中Compact Area复选框,可创建一个紧凑的服务区,否则,将生成一般意义的服务区域。 选择Travel from site选项表示行进方向从地点到服务区,Travel to site 表示行进方向从服务区到地点。 6.单击solve按钮 ,生成服务区和网络(见图13-20)。服务区包含在Sarea1主题中,服务网络包含在Snet1主题中。在Sarea1和Snet1对话框的上部,显示了服务区的面积和服务网络的长度,它们的单位是本视图的距离单位。 7. 激活包含顾客居住地点的点主题customers。 8.从【Theme】菜单选择【Select By Theme】命令,出现Select By Theme对话框,在第一个下拉列表中选择Are completely within,从第二个下拉列表中选择包含服务区域的主题Sarea1,按下 按钮,所有位于服务区内的顾客点位都被选中,以黄色高亮显示(见图13-21)。 选用Open Theme Table工具 打开customers.shp主题的的特征表,可以看到,被选中的点均以黄色高亮显示(见图13-22)。被选中的点数显示在特征表顶部的Number selected display框中。例如:在本例中,在1432个点位中有619个被选中。如果每个点位代表一位顾客,则这个数目即为服务区域内的顾客数。如果每个点位代表多位顾客,其计算步骤如下: ⑴在Customers主题的特征表中,增加每个点代表顾客数的字段。 ⑵单击此字段,从【Field】菜单选择【Statistics】命令,出现对此字段的统计对话框,在对话框中显示了该字段的统计信息,Sum(总数)即为服务区内的顾客总数

21,882

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧