内容简介
本书以地图学知识为主线介绍地图在计算机中的表达方式、数据结构、算法原理、国际标准和开源工具。全书共分九章。第一章概述了地图和计算机地图。第二章介绍面向网络、个人电脑、平板电脑和智能手机等多种计算平台的编程工具。第三章介绍计算机地图图形基础。第四章介绍地图数据结构以及国际标准。第五章介绍地图投影。第六章介绍地图动态交互。第七章介绍地图符号。第八章介绍网络地图。第九章介绍地图数据库和地图分析。其中每章配有可以实际操作的练习和思考题。
目录
前言
第1章概述1
1.1地图1
1.2计算机地图2
1.3本书内容4
1.4本书程序6
参考文献7
第2章平台和工具8
2.1HTML8
2.1.1HTML2吉构9
2.1.2常用标签9
2.1.3层叠样式表10
2.2JavaScript13
2.2.1语法概要14
2.2.2变量14
2.2.3语句与表达式16
2.2.4操作符17
2.2.5数组17
2.2.6分支结构18
2.2.7函数19
2.2.8异常处理20
2.2.9对象21
2.2.10对象标记法21
2.3地图程序设计模式22
2.3.1公用函数22
2.3.2模块化23
2.3.3流畅接口24
2.3.4回调函数24
2.3.5文件读取25
2.4运行环境27
2.4.1浏览器27
2.4.2Web服务器28
2.4.3浏览器外的程序29
2.4.4程序编辑器30
2.4.5程序分析T具32
2.4.6程序调试工具32
本章小结34
本章练习34
思考题35
参考文献35
第3章图形图像36
3.1图形图像基础36
3.1.1图形图像种类37
3.1.2图形坐标38
3.2画布39
3.2.1画布程序结构39
3.2.2画布绘图函数41
3.2.3画布图像处理44
3.3SVG46
3.3.1SVG图形符号47
3.3.2SVG图形组合49
3.3.3D3工具库50
3.3.4SVG与而布对比52
3.4WebGL53
3.4.1三维图形T具54
3.4.2地图工具56
本章小结58
本章练习58
思考题58
参考文献58
第4章地图数据60
4.1地物几何模型60
4.1.1点61
4.1.2线62
4.1.3多边形62
4.1.4多点63
4.1.5多线63
4.1.6多多边形63
4.1.7几何图形组合64
4.2地图数据格式65
4.2.1Shapefile65
4.2.2GeoJSON65
4.2.3TopojSON67
4.3地图数据处理67
4.3.1下载“自然地球”数据67
4.3.2安装GDAL/OGRT工具69
4.3.3下载安装TopojSON工具69
4.3.4地图数据转换70
4.3.5选取地物属性70
4.3.6按属性提取地物71
4.3.7裁剪地物71
4.3.8生成TopojSON文件72
4.4使用地图数据绘图73
4.4.1载人GeojSON数据73
4.4.2载人TopojSON数据73
4.4.3地图坐标转换74
4.4.4画布地图74
4.4.5SVG地图77
4.4.6地物颜色和交互性79
本章小结81
本章练习81
思考题81
参考文献82
第5章地图投影83
5.1地理坐标83
5.1.1径纬度83
5.1.2地球椭球体84
5.1.3空间参考85
5.2地图投影86
5.2.1地图投影概念88
5.2.2最简单的投影88
5.2.3地图投影方式90
5.2.4地图投影误差90
5.2.5地图投影程序91
5.3全球地图投影93
5.3.1摩尔威德投影94
5.3.2爱凯特投影95
5.3.3罗宾森投影97
5.3.4温克尔三重投影99
5.3.5自然地球投影100
5.4半球地图投影102
5.4.1正射投影102
5.4.2兰勃特等角圆锥投影103
5.5导航与大区域地图投影105
5.5.1墨卡托投影105
5.5.2等距方位投影106
5.5.3卫星投影108
5.6区域地图投影111
5.6.1业尔勃斯等积网锥投影111
5.6.2横轴墨卡托投影112
5.7栅格地图投影114
本章小结117
本章练习117
思考题118
参考文献118
第6章地图交互119
6.1鼠标交互119
6.1.1鼠标定位121
6.1.2获取地物126
6.1.3地图平移129
6.1.4地图旋转131
6.1.5区域选取134
6.1.6放大和缩小138
6.2触摸屏交互141
6.2.1单触点交互142
6.2.2多触点交互144
6.2.3大网弧线146
6.3地理定位148
6.3.1读取地理位置148
6.3.2跟踪地理位置150
本章小结151
本章练习151
思考题152
参考文献152
第7章地图符号153
7.1地图设计153
7.1.1地图数据153
7.1.2地图程序155
7.2点状符号160
7.2.1符号参数161
7.2.2图标符号163
7.2.3文字注记167
7.3线状符号173
7.3.1符号参数173
7.3.2花线符号176
7.3.3双线符号177
7.3.4铁路符号181
7.3.5文字注记187
7.4面状符号191
7.4.1符号参数192
7.4.2图像填充195
7.4.3文字注记198
7.5TileMill地图符号201
7.5.1地图层202
7.5.2载人地图层203
7.5.3制作地图符号203
本章小结210
本章练习210
思考题210
参考文献211
第8章专题地图212
8.1专题地图设计212
8.1.1程序没计212
8.1.2地图色彩213
8.2务类地图214
8.2.1地图分类214
8.2.2地名注记215
8.2.3地图绘制217
8.3分级地图I219
8.3.1地物分级219
8.3.2地图绘制221
8.3.3图例绘制221
8.3.4完整程序222
8.4分级地图Ⅱ225
8.4.1数据处理225
8.4.2等距分级227
8.4.3按统计特征分级227
8.5定点符号地图230
8.5.1数据处理230
8.5.2符号定位232
8.5.3图表定位236
本章小结241
本章练习241
思考题241
参考文献242
第9章网络地图243
9.1切片地图原理243
9.1.1切片地图结构243
9.1.2切片地图比例尺245
9.1.3切片地图投影247
9.1.4地图片编号248
9.2地图片251
9.2.1制作她图片251
9.2.2提取地图片252
9.2.3发布地图片253
9.3切片地图开发254
9.3.1切片地图函数254
9.3.2地图片定位255
9.3.3显示本地地图片257
9.3.4显示网络地图片260
9.3.5地图交互269
9.3.6信息叠加271
9.4矢量切片地图274
本章小结279
本章练习280
思考题280
参考文献280
附录本书示例程序列表281
索引关键词284
彩图
精彩书摘
第1章概述
地图(map)是一种信息表达工具。人们用地图表现和传达自然及社会经济现象的地理分布。地图被广泛地应用在经济建设、国防、商业、环境保护、科学研究、文化娱乐和日常生活中。地图具有悠久的历史。千百年来传统的地图以纸张为介质,而现代计算机技术给人们带来了计算机地图。计算机地图已经成为人们最主要使用的地图形式。计算机地图包括地理信息系统中的地图,从互联网上获取的地图,以及各种移动设备上的地图等。
地图学(cart.ography)是研究地图理论、编制技术与应用方法的学科。伴随着地图的悠久历史,地图学形成了一套理论体系和方法总结指导着地图制图。当计算机能够显示出上百种色彩、能够超过纸张印刷精度、能够进行交互操作连续移动和动态缩放、能够产生三维图形和动画等形式的计算机地图时,地图和地图学迎来了机遇和挑战。即如何在传统地图理论体系中纳入计算机地图制图技术。
1.1地图
地图可以粗略地定义为描述地球表面的事物和现象分布情况的图。按照粗略的地图定义,远古人类外出狩猎和劳动中把山峰、河流、森林和道路等画出来的图即可被视作地图的起源。公元前6200年土耳其Catal Hyuk地区出现了一些描述街道、房屋以及周围的火山等壁画。公元前2300年古巴比伦地区刻在陶片上的地图画有三条河、两个城市和两条山脉等。古巴比伦陶片上的地图用简洁明了的图形方法非常形象地描绘出了两个城市及其周同的地理环境。直到现代人的生活中人们还是用类似的抽象化的图形方法绘制地图。
古代地理学的主要研究对象是地球的绘图与勘查。为了对已知的地理区域和环境进行描述,古代地理学家必须进行测量和绘制地图。对地球和地物进行比较科学的测量历史可以追溯到古埃及时代。古希腊数学家、地理学家、天文学家埃拉托斯特尼(Eratosthenes,公元前276年~公元前194年)于公元前240年在亚历山大城和赛尼城(Syene,今阿斯旺)间的大地上进行测量工作。他计算出地球的直径并提出了利用经纬网来绘制世界地图,开创了应用数学基础的地图时代。当时人们已经认识到地球是球形,即地网说逐渐兴起。约50年后古希腊的天文学家喜帕恰斯(Hipparchus,公元前190年~公元前120年)创造出用经纬度测量确定地物在地球上位置的方法。由经度与纬度组成的一个坐标系统,称为地理坐标系统(geographic coordinate system)。地理坐标系统又称经纬度系统。地球上的任何一个位置都可以用经度(英文:longitude,数学符号:A)和纬度(英文:lati-tude,数学符号:妒)来标定。其中,纬度是指这个位置与地球球心的连线和地球赤道面所成的角度。经度是指通过这个位置的经线面与本初子午线所成的角度。
古罗马时代的希腊地理学家、天文学家托勒密(Claudius Ptolemaeus,90~168年)撰写的《地理学指南》指出,地理学的内容应是对整个地球的已知地区以及与之相关的一切事物作线性描述,即绘制图形,并用地名和测量一览表代替地理描述。这就把地理学与地图学等同起来,抛弃了描述地理学。托勒密首创应用经纬度来确定山川、城市的位置,并且改进了地图投影,可以说是开创了近代地图学。16世纪航海事业得到很大发展,比利时地图学家、数学家墨卡托(Gerardus Mercator,1512~1594年)首次绘制出了具有正轴等角圆柱投影的世界地图。至今仍然被广泛使用。
17世纪以前人们普遍认为地球是正球形。英国物理学家艾萨克 牛顿爵十(SirIsaac Newton,1643~1727年)于1687年发表了著名的《自然哲学的数学原理》。在该著作中他阐述了万有引力和兰大运动定律,奠定了此后力学和天文学的基础,并成为现代工程学的基础。更重要的是,他提出了地球不是正球形(sphere)而是一个椭球体(ellipsoid),也称扁球体。此后在大地测量(geodesy)中椭球体的概念被广泛应用。目前国际上最常用的椭球体是美国国防部制图局(Defense Mapping Agency,DMA)在1984年建立的WGS84。WGS84在全球范围内的定位精度达到±1m,它是全球定位系统(global positioning system,GPS)所采用的标准。
GPS是美国国防部研制和维护的中距离圆形轨道卫星导航系统。该系统由美国政府于20世纪70年代开始研制并于1994年全面建成。它可以为地球表面绝大部分地区(980/0)提供准确的定位、测速和高精度的时间标准。GPS的民用定位服务无需任何授权即可任意使用,且不必另外付费,其定位精度可以达到lOm左右,GPS因此被广泛应用。汽车、移动电话,甚至相机和手表中都带有GPS接收芯片,它们随时随地为人们提供地理定位服务。冈此,使用GPS人们可以很方便地获取地物的地理定位信息。GPS也为计算机地图制图提供所需的数据源。
1.2计算机地图
相比地冈的悠久历史,计算机地图的历史只有短短的几十年时间。但是在这几十年的过程中,计算机技术发展迅速,它已经日益普及到人们的日常生活之中。计算机技术每次的突破都给计算机地图带来机遇,从而提升了计算机地图应用以及普及的水平。计算机地图从军用到商用再到民用,直至每个人都可以随时使用。
20世纪40年代人类发明了计算机。ENIAC(electronic numerical integrator and computer)是世界上第一台通用电子计算机,它能够通过编程解决各种计算问题。这个时期的计算机体积庞大,并且价格昂贵,它们主要是用作执行军用计算。例如,ENIAC最早被美国陆军的弹道研究实验室用于计算火炮的火力表。其后,计算机经过了晶体管、集成电路和超大规模集成电路几个阶段,使计算机小型化和微型化。今天,人们手中的智能手机都远远超过了ENIAC的计算能力。
1951年麻省理工学院(Massachusetts Institute of Technology,MIT)的旋风计算机(whirl-wind computer)是第一个能显示视频的计算机。1955年旋风计算机使用了光笔。光笔能在阴极射线管显示器上定位,成为计算机图形的输入和交互设备。伊凡 苏泽兰(Ivan Suther-land)利用光笔于1963年在麻省理T学院的计算机辅助设计项目中开发了Sketchpad系统并以此发表了他的博士论文。Sketchpad首次实现了计算机图形的人机交互和图形界面,被认为是现代计算机辅助设计(computer aided design,CAD)系统的起源。计算机辅助设计系统除了能用于设计和制造领域,也常常被用于制作地图。
20世纪50年代中后期,气象、地质、地球物理、地球化学、生态等学科的科学家即开始了将传统地图输入计算机以利用计算机制作地图(Tobler,1959)。同时,西方发达国家政府中负责环境和资源的部门、负责规划的部门等也开始使用计算机制作地图。人们将计算机地图制图分成两大方向,即计算机地图制图(computer cartography)和计算机辅助地图制图(computer aided cartography或automated cartography)。前者指利用计算机制作用于专题地图输出,这类地图的内容通常是科学研究T作的专题内容,计算机输出的地图为地图分类中的专题地图。后者指利用计算机实现地图编制和生产的自动化,计算机制图的产品为地图分类中的普通地图(Rhind,1977)。
1964年,霍华德 费舍尔(Howard Fisher)在哈佛设计研究生院(Harvard Graduate School of Design)创建了计算机图形与空间分析实验室(Laboratory for Computer Graphicsand Spatial Analysis),开始对用计算机处理地理数据进行了大量的基础性研究工作,成为日后计算机地图与地理信息系统发展的基础。
1962年,罗杰 汤姆林森(Roger Tomlinson)领导开发了世界上第一个使用地理信息系统的加拿大地理信息系统(Canada geographic information system.CGIS),用来收集存储、分析和处理加拿大土地资源数据,包括土壤、农业、娱乐、野生动物、林业和土地利用等信息。CGIS是对计算机地图的全面改进和提升,它具有地物空间数据与地物属性数据的组合,采用了拓扑结构(topology)以及图层叠加(overlay)等地理信息系统基本特征。20世纪80年代地理信息系统经由商业机构,如美国环境系统研究所(Environmental Systems Re-search Institute,ESRI)等实现了商品化系统产品。计算机地图是地理信息系统的核心组成部分,是地理信息输出和表现的最重要手段之一。由此可见,地理信息系统是在计算机地图制图的基础上通过系统化、规范化,再加上空间分析等功能发展而成。
20世纪90年代,地理信息系统一方面逐渐向地理信息科学(GIS science)方向发展(Goodchild,2010);另一方面,互联网的产生和发展,使得计算机地图制图脱离地理信息系统的范畴,为越来越多的非地理专业人士所使用。
互联网以及环球信息网(World Wide Web,也可简称为Web)经过10多年的发展后有了突破性的进展和普及。这对计算机地图再次产生了深远的影响。2005年前后以谷歌地图(Google Map)为代表的网络地图、Web2.0、GPS等技术为普通人所熟悉,并得到空前规模的应用。著名的地理信息系统权威专家迈克尔 弗兰克 古德柴尔德(Michael Frank Good-child)指出:“如同个人电脑普及了计算机,类似谷歌地球的系统将普及地理信息系统”(Butler,2006)。
2004年,Steve Coast在英国开创了Open Street Map项目。它使得人们以互联网为基础创建和共享一个全球范围内的地图数据库①。Goodchild提出了自愿地理信息(volunteer edgeo-graphic information,VGI)的概念(Goodchild,2007)。Turner使用了“新地理学”(neogeography)这个名词,并赋予它新的含义,即人们使用现有工具制作、使用和共享他们自己的地图(Turner,2006)。维基百科对新地理学的解释是“非专业用户使用地理技术”。虽然地图和地埋信息系统学术界对新地理学概念提出了保留意见。例如,自愿地理信息是否可信(Flanaginand Metzger,2008;Goodchild,2009)。但是,现实情况是计算机和网络使地图制作的门槛越来越低。地图制作不再是只有数学家、地图学家、专业技术人员所拥有,越来越多的普通人都能参与地图的开发和制作(Warfeta1.,2010)。
1.3本书内容
在计算机地图软硬件门槛越来越低、越来越多的人都能参与计算机地图的开发和制作的背景下,本书以地图学理论为主线介绍计算机地图制图的程序设计。各章节结构如下。
第1章概述:介绍地图学中关于地图的定义。地图的三个基本特征是地图学的精髓,它们是学习计算机地图必须掌握的。通过了解计算机地图以及地理信息系统的发展过程,读者从其他学科吸收有益知识,触一反三、融会贯通,帮助巩同计算机地图制图的知识。
第2章平台和工具:介绍程序设计语言JavaScript以及相关工具。计算机程序设计经过机器语言、汇编语言、高级语言等阶段的发展。在日前数十种高级程序设计语言中,本书选择了JavaScript作为书中程序设计语言。JavaScript起源于1995年,起初冈为它简单的语法和局限的运行环境而一度并不被看好,甚至常常被诟病,但是正因为它的简单灵活,才能被各种计算机平台广泛采用,最终JavaScript成为应用最广的程序设计语言之一。在第2章中读者将学习到JavaScripl的基本语法、计算机地图程序常用设计模式以及JavaScripl运行和开发工具。
第3章图形图像:结合本书选择的JavaScript语言介绍计算机地图制图所需要的计
前言/序言
计算机地图制图(第二版) 电子书 下载 mobi epub pdf txt