探索ArcGIS开发的测试与未来技术
1. 测试部分
在开发过程中,测试是确保代码质量和功能正确性的重要环节。以下是一段测试代码示例:
MULT_RACE: 17
};
var data = census.ethnicData(ethnicAttributes);
assert.strictEqual(
data.length,
8,
"The translation from graphic attributes to d3-based data
should have 8 attributes in the ethnicData function"
);
assert.strictEqual(
data[4].name,
"Hawaiian / Pacific Islander",
"The item in index 4 should have a name of Hawaiian / Pacific
Islander data"
);
assert.strictEqual(
data[5].population,
23,
"Out of the Hispanic column, the data index of 5 should have a
population of 23."
);
此代码主要进行了几个断言测试,确保从图形属性转换为基于d3的数据时,
ethnicData
函数的结果具有预期的属性数量、特定索引项的名称和人口数量。
为了检查这些测试结果,需要在浏览器中加载测试文件。由于使用了Intern作为节点模块,需访问其测试运行页面。具体步骤如下:
1. 找到文件路径:文件位于
node_modules/intern/client.html
。
2. 指定测试加载位置:在浏览器中通过查询参数
config=tests/intern
指定测试加载位置。例如,可能的URL为
http://localhost/MasteringArcGIS/Chapter10/node_modules/intern/client.html?config=tests/intern
(实际URL可能因设置而异)。
3. 查看测试结果:正确访问页面后,会看到Intern图标和通过/失败报告。失败的测试将以红色突出显示,通过的测试以绿色突出显示。
2. ArcGIS开发的未来技术
随着互联网技术的不断发展,ArcGIS Server开发的未来也在不断变化。目前,JavaScript仍然是Web开发的首选语言,而ArcGIS平台推出了一些新特性来加速应用程序开发,其中ArcGIS Online和Web AppBuilder基于ArcGIS JavaScript API。
2.1 ArcGIS Online
ArcGIS Online是ESRI的在线云工具,用于创建Web地图。它具有以下功能:
-
创建和共享地图
:用户可以创建Web地图,混合和匹配地图服务和其他数据源,修改弹出窗口,并与公众或组织内部分享地图。
-
数据存储和管理
:除了通过Web地图引用数据,ArcGIS Online订阅允许上传和存储数据。可以使用ArcGIS Server生成的切片地图包创建切片地图服务,创建用于存储、更新和检索要素数据的要素服务,还能使用地理编码和路由等ArcGIS Server扩展。
-
费用说明
:更高级的服务需要使用信用额度,可通过ESRI购买。简单交易可能只需少量信用额度,但频繁使用会累积费用。切片和要素服务按每月每GB存储收费。不过,开发者账户每月可获得50个信用额度用于测试应用程序。
2.2 ArcGIS Portal
对于不想将数据托管在公共平台(如ArcGIS Online)的企业组织,有ArcGIS Portal这一私有版本。它是一个以组织为中心的ArcGIS Online版本,可在私有或安全网络中运行。登录可通过SAML和oAuth2等常见安全协议进行验证。其功能与ArcGIS Online类似,但数据创建和共享仅限于公司网络内。
2.3 Web AppBuilder
Web AppBuilder是ESRI中国开发者实现的一个工具,用于创建使用ArcGIS Online Web地图的JavaScript Web地图应用程序。
-
基本功能
:使用ArcGIS JavaScript API创建全页Web地图应用程序,应用程序采用响应式设计元素,适合任何屏幕。发布者可以选择配色方案、标题文本、徽标和各种小部件。应用程序通过ArcGIS Online发布和托管,无需自己的托管环境。
-
开发者版本
:默认的Web AppBuilder没有自定义开发的空间,因此ESRI发布了开发者版本。这是一个Node.js应用程序,允许使用默认小部件和自定义小部件生成Web地图应用程序。小部件基于Dojo的dijit系统,易于添加到系统中。应用程序生成的HTML、样式表和JavaScript可运行独立网站,配置数据存储在JSON文件中。此外,还可以创建自定义主题,修改元素的样式和位置。小部件具有高度可扩展性,支持国际化和本地化。
以下是相关技术工具的对比表格:
| 工具名称 | 特点 | 适用场景 |
| ---- | ---- | ---- |
| ArcGIS Online | 在线创建和共享地图,支持数据存储和多种服务 | 个人或组织需要在线创建和分享地图,且对数据存储有需求 |
| ArcGIS Portal | 私有版本,数据在公司网络内 | 企业组织对数据安全和隐私有较高要求 |
| Web AppBuilder | 快速创建Web地图应用程序,有默认和自定义小部件 | 开发者需要快速搭建地图应用程序,且有自定义需求 |
mermaid流程图如下:
graph LR
A[开始] --> B[选择开发工具]
B --> C{选择ArcGIS Online?}
C -- 是 --> D[创建和共享地图]
C -- 否 --> E{选择ArcGIS Portal?}
E -- 是 --> F[在公司网络内操作]
E -- 否 --> G[使用Web AppBuilder]
D --> H[数据存储和管理]
G --> I[选择默认或自定义小部件]
H --> J[完成开发]
I --> J
F --> J
3. 使用ArcGIS Online创建Web地图
以Y2K社会的需求为例,要为其创建ArcGIS Online Web地图并添加到现有应用程序中。具体步骤如下:
3.1 创建Web地图
-
注册开发者账户:如果尚未设置ArcGIS Online开发者账户,访问
https://developers.arcgis.com/en/sign-up/进行注册。 - 进入地图页面:登录后,点击顶部菜单中的“Map”,加载一个空地图。
- 保存地图:点击工具栏中的“Save”下拉菜单,选择“Save”。在弹出对话框中输入地图名称(如“Y2K Census Map”)、摘要和标签,选择地图存储位置。点击“SAVE MAP”后,地图将有新名称,并分配一个唯一的Web地图ID,需保存该ID供后续使用。
3.2 更改底图
ArcGIS Online提供多种底图背景,可根据数据需求选择。在工具栏左上角点击“Basemap”,选择“National Geographic”底图,地图将更新。
3.3 添加人口普查地图服务
ArcGIS Online提供多种添加图层到地图的方式:
-
搜索图层
:ArcGIS Online目录包含各种公共和组织使用的地图图层。可以搜索关键字和标签添加图层,也可添加其他人标记为公共数据的地图服务和图层。如果地图包含受限图层,查看者需要登录验证。
-
浏览ESRI图层
:ESRI有大量可供公共使用的地图数据,涵盖多个主题类别。但由于这里使用的是2000年数据,暂不使用此选项。
-
从Web添加图层
:可添加多种Web地图服务,包括ArcGIS Server地图和要素服务、WMS服务、WMTS服务、切片服务、KML文件、GeoRSS文件和CSV文件(在线CSV文件)。
-
从文件添加图层
:可以上传文件,ArcGIS Online会进行渲染。可接受的文件包括存储在.zip文件夹中的最多1000个要素的形状文件、制表符或逗号分隔的文本或CSV文件、GPS交换格式(GPX)文件。
-
添加地图注释
:可以在地图上绘制自定义点、线和多边形作为注释,选择预定义的要素类型和符号。
对于此应用程序,选择从Web添加图层,具体步骤如下:
1. 点击左上角的“Add”按钮,选择“从Web添加图层”。
2. 在下拉列表中选择“ArcGIS Web服务”。
3. 在空白处输入或粘贴2000年人口普查地图服务URL。
4. 不勾选“Use as Basemap”复选框。
5. 点击“ADD LAYER”将图层添加到地图。
3.4 样式设置
ArcGIS Online允许重新设置许多动态和要素图层的样式。以Y2K人口普查地图为例,要使州和郡的显示更美观并与国家地理底图背景融合,可进行以下操作:
1. 展开地图图层:点击“Contents”下的人口普查地图服务图层,展开图层,查看不同的子图层(如州、郡、街区组和街区点)。
2. 更改州的符号样式:点击州右侧的向下三角形,选择“Change Style”。在左侧菜单中选择标签和符号,由于底图和弹出窗口能提供州信息,可忽略标签设置。点击“Single Symbol”绘图下的“Options”按钮,在提示中更改符号和图层在地图上的可见范围。点击“Symbol”链接设置多边形的轮廓颜色和内部填充颜色,将轮廓颜色更改为深橙色,保留州的透明填充。
3. 重复上述步骤更改郡和街区组的样式,每次选择较浅的橙色。
通过以上步骤,可以利用ArcGIS Online的强大功能创建出满足需求的Web地图应用程序,并根据实际情况进行定制和优化。
探索ArcGIS开发的测试与未来技术
4. Node.js相关工具
在ArcGIS JavaScript API开发中,有许多依赖Node.js的工具,这些工具能帮助开发者更高效地进行开发。
4.1 ArcGIS API for JavaScript Web Optimizer
这是一个由ESRI托管的Node.js项目,它可以将自定义模块与最少的ESRI和Dojo模块打包在一起,简化构建过程。开发者可以选择通过ESRI的内容分发网络(CDN)进行托管,也可以下载并自行托管。更多信息可访问
https://developers.arcgis.com/javascript/jshelp/inside_web_optimizer.html
。
4.2 generator-esri-appbuilder-js项目
如果开发者更专注于Web AppBuilder Developer Edition,这个基于Yeoman(一个Node.js模板生成工具)的项目就非常有用。它可以生成一个带有所有必要文件的Web AppBuilder小部件模板。使用步骤如下:
1. 运行该项目,程序会询问一些基本信息,比如小部件的名称、作者信息等。
2. 输入所需的文件类型信息。
该项目可以在NPM上找到
https://www.npmjs.com/package/generator-esri-appbuilder-js
,也可以在GitHub上查看源代码
https://github.com/Esri/generator-esri-appbuilder-js
。
以下是Node.js相关工具的对比表格:
| 工具名称 | 功能 | 访问地址 |
| ---- | ---- | ---- |
| ArcGIS API for JavaScript Web Optimizer | 打包自定义模块与最少的ESRI和Dojo模块,简化构建过程 |
https://developers.arcgis.com/javascript/jshelp/inside_web_optimizer.html
|
| generator-esri-appbuilder-js项目 | 生成Web AppBuilder小部件模板 |
https://www.npmjs.com/package/generator-esri-appbuilder-js
、
https://github.com/Esri/generator-esri-appbuilder-js
|
mermaid流程图如下:
graph LR
A[开始开发ArcGIS应用] --> B{是否使用Web AppBuilder Developer Edition?}
B -- 是 --> C[使用generator-esri-appbuilder-js项目]
B -- 否 --> D[考虑使用ArcGIS API for JavaScript Web Optimizer]
C --> E[生成小部件模板]
D --> F[打包模块简化构建]
E --> G[完成开发]
F --> G
5. 将ArcGIS Online Web地图集成到现有应用程序
完成Web地图的创建和设置后,下一步是将其集成到现有的应用程序中。以下是具体步骤:
1.
获取Web地图ID
:在创建Web地图并保存后,从URL中获取唯一的Web地图ID(
?webmap=XXXXXXXXXXXXXXXXX
)。
2.
加载Web地图
:在现有的应用程序代码中,使用获取到的Web地图ID加载Web地图。
3.
裁剪不必要的功能
:根据应用程序的需求,去除一些不必要的功能,使应用程序更加简洁。
4.
适配自定义功能
:确保现有的自定义功能能够与新的Web地图正常工作,可能需要对代码进行一些调整。
通过以上步骤,就可以将ArcGIS Online Web地图成功集成到现有的应用程序中,为用户提供更丰富的地图体验。
6. 总结
随着互联网技术的不断发展,ArcGIS开发也在不断创新和进步。通过使用ArcGIS Online、Web AppBuilder等工具,开发者可以更高效地创建和部署地图应用程序。同时,Node.js相关工具的出现,进一步简化了开发过程,提高了开发效率。在实际开发中,开发者可以根据项目的需求和特点,选择合适的工具和技术,打造出满足用户需求的优质地图应用程序。未来,随着技术的不断发展,ArcGIS开发领域有望出现更多的创新和突破,为地理信息系统的应用带来更广阔的发展空间。
超级会员免费看
841

被折叠的 条评论
为什么被折叠?



