gis 系列教程_上册_中文版

58
Google Maps API 3D Ripper DX ELK for Grasshopper, Rhinoceros Heron for Grasshopper, Rhinoceros Meerkat GIS for Grasshoper, Rhinoceros Cover Image From Google Engine GIS 系列教程 上册 GIS SERIAL GUIDANCE

Upload: xingyun-jin

Post on 30-Jul-2016

312 views

Category:

Documents


6 download

DESCRIPTION

Google Maps API, 3D Ripper DX, ELK for Grasshopper, Heron for Grasshopper, Meerkat GIS for Grasshopper

TRANSCRIPT

Page 1: GIS 系列教程_上册_中文版

Google Maps API3D Ripper DX

ELK for Grasshopper, RhinocerosHeron for Grasshopper, Rhinoceros

Meerkat GIS for Grasshoper, Rhinoceros

Cover Image From Google Engine

GIS 系列教程上册GIS SERIAL GUIDANCE

Page 2: GIS 系列教程_上册_中文版

2

$此教程为非商业性目的,您可以自由的复制或扩散,但不能用于商业用途。

告知

Page 3: GIS 系列教程_上册_中文版

3

如今有太多的方法来接入GIS数据,这个教程不能提及所有关于GIS的知识,但这对于那些学习或者工作在建筑设计和规划领域的人来说可能是一个起点。此教程作为一个工作流程来展示如何提取、操作和整理GIS数据,以及运用到我们的实际项目当中。

此教程会展示从各种官方的GIS数据库中提取GIS数据的多种方法。一些是开源的数据,一些则不是。对于那些用于商业性目的的用户,请仔细、合法的选择。作者对于提及在这个教程里的任何数据没有权利和责任。作者不会对那些把教程用于非法目的的用户付任何责任。

我们意识到这些内容对于我们的工作有非常大的益处,因此我们特别想与那些渴望学习和发展的人们分享我们学到和研究到的知识和信息。

因国内的GIS数据没有系统化管理或多为未公开,此教程里提及到的数据资料都是美国的网络数据,而且是用美国的城市作为案例来展示和讲解的,请读者们谅解。作者相信在不久的将来,国内地理数据也会越来越完善和公开,GIS大数据运用到建筑设计和规划领域将必然会成为趋势。

-ling

前言

Page 4: GIS 系列教程_上册_中文版

4

有太多的组织和个人在收集和管理GIS数据的方面做了很大的贡献,我们不可能在这里一一列举。作者感谢那些对于整合和完善GIS数据做出的巨大努力的人们。

我们特别鸣谢 Steve Coast 创立的 OpenStreetMap。OpenStreetMap(OSM)是一个开源可编辑的世界地图。OSM 的地图由用户根据手持 GPS 设备、航空摄影照片、卫星视频、其他自由内容以至单靠用户由于对有关区域的熟悉而具有的本地知识绘制。地图的矢量数据以开放数据库授权方式授权。OSM 网站由英国非营利组织 OpenStreetMap 基金会赞助维运。

我们还要鸣谢 ELKdesigntech,ELK 通过 Rhinoceros 的 Grasshopper 插件使 OSM 数据带到三维模型空间成为了可能。ELK用一个极为简易的界面使用户非常方便的处理GIS数据。

我们还要感谢Brian Washburn,Heron的开发者。通过Heron,我们可以从很多不同的数据源中提取GIS数据导出到我们的三维模型空间当中。

鸣谢

Page 5: GIS 系列教程_上册_中文版

5

WHAT is GIS

A geographic information system (GIS) is a system designed to capture, store, manipulate, analyze, manage, and present all types of spatial or geographical data. The first known use of the term “geographic information system” was by Roger Tomlinson in the year 1968 in his paper “A Geographic Information System for Regional Planning”. Tomlinson is also acknowledged as the “father of GIS”.

Modern GIS technologies use digital information, for which various digitized data creation methods are used. The most common method of data creation is digitization, where a hard copy map or survey plan is transferred into a digital medium through the use of a CAD program and geo-referencing capabilities. With the wide availability of ortho-rectified imagery (both from satellite and aerial sources), heads-up digitizing is becoming the main avenue through which geographic data is extracted. Heads-up digitizing involves the tracing of geographic data directly on top of the aerial imagery instead of by the traditional method of tracing the geographic form on a separate digitizing tablet (heads-down digitizing).

GIS uses spatio-temporal (space-time) location as the key index variable for all other information. Just as a relational database containing text or numbers can relate many different tables using common key index variables, GIS can relate otherwise unrelated information by using location as the key index variable. The key is the location and/or extent in space-time.

Any variable that can be located spatially, and increasingly also temporally, can be referenced using a GIS. Locations or extents in Earth space–time may be recorded as dates/times of occurrence, and x, y, and z coordinates representing, longitude, latitude, and elevation, respectively. These GIS coordinates may represent other quantified systems of temporo-spatial reference (for example, film frame number, stream gage station, highway mile-marker, surveyor benchmark, building address, street intersection, entrance gate, water depth sounding, POS or CAD drawing origin/units). Units applied to recorded temporal-spatial data can vary widely (even when using exactly the same data, see map projections), but all Earth-based spatial–temporal location and extent references should, ideally, be relatable to one another and ultimately to a “real” physical location or extent in space–time.

Related by accurate spatial information, an incredible variety of real-world and projected past or future data can be analyzed, interpreted and represented. This key characteristic of GIS has begun to open new avenues of scientific inquiry into behaviors and patterns of real-world information that previously had not been systematically correlated.

-taken from GIS Wikipedia

Page 6: GIS 系列教程_上册_中文版

6

2345

778

151921

25252527293133

34343536

45454647

52525253

告知前言鸣谢What is GIS?

1. Google Maps API Styled Map Wizard•1.1 什么是 Google Maps API?•1.2 自定义 Google Maps•1.3 生成和编辑 JSON 代码•1.4 另存为高分辨率 JPEG 文件•1.5 从Google Maps创建 .dwg 格式矢量地图

2. 3D Ripper DX•2.1 什么是 3D Ripper DX?•2.2 准备工作•2.3 从 Google Earth 捕捉物体•2.4 导入模型至 3Ds Max•2.5 修改 3Ds Max 模型比例•2.6 导出到其他软件

3. ELK for Grasshopper•3.1 ELK的介绍以及安装步骤•3.2 ELK功能组件的介绍•3.3 ELK功能组件的操作

4. Heron for Grasshopper•4.1 Heron的介绍以及安装步骤•4.2 Heron功能组件的介绍•4.3 Heron功能组件的操作

5. Meerkat for Grasshopper•5.1 Meerkat的介绍以及安装步骤•5.2 Meerkat功能组件的介绍•5.3 Meerkat功能组件的操作

目录

Page 7: GIS 系列教程_上册_中文版

7

就像我们所了解的那样,Google并没有开源自己的地图信息。但是通过Google Maps API, 用户可以把带有定位信息的Google 地图嵌入到外部的网站上。目前,超过百万的网站都在通过Google Maps API来提取Google 地图,成为市面上最受欢迎的网页开发API。

Shot from Google Developers

Shot from Google Developers

Google Maps API 使用了JavaScript,使用户可以通过简单的代码就能从Goolge 服务器里调换出地图到自己的网站里。这个章节会展示自定义地图制作、分析GIS地图以及从Google maps到CAD转换的整个流程。就像我在上面提及的那样,这个方法会涉及到一些代码操作。但,请不要因为自己从没学过编程而犹豫或困难,只要认真的,一步步跟随教程内容,你也能很容易的做出来!

1.1 什么是 Google Maps API?

Google Maps API Styled MapWizard

1.1 什么是 Google Maps API?

Page 8: GIS 系列教程_上册_中文版

8

首先,我们先从自定义地图的制作开始。Google Maps API styled map wizard使我们可以编辑地图图层和对象,以及根据我们自定义的题图当中生成API代码。

界面 ● 链接网络。 ● 打开浏览器,输入以下地址。 http://gmaps-samples-v3.googlecode.com/svn/trunk/styledmaps/wizard/index.html

Shot from Google Developers

1.2 自定义 Google Maps

Google Maps API Styled MapWizard

1.2 自定义 Google Maps

Page 9: GIS 系列教程_上册_中文版

9

只有两个编辑面板用于自定义地图。

Feature and Element Selector

Map Style Layers

对象类别对象类别窗口使用户选择对象组。例如:道路、水域、建筑等。

元素类别在元素类别窗口,用户可以指定以选择对象组的图形或者注释。

显示/隐藏在这个窗口,用户可以显示、隐藏或者简化已选择的对象和元素。

增加新的图层来选择和编辑对象和元素

Add a new layer for selecting and modifying the features and elements

观察以设置的同层状态。点击 删掉图层。

基于用户设置的自定义地图生成出JavaScript代码。

编辑用户可通过这个窗口更改已选择对象和元素的颜色和轮廓粗细。注意: RGB模式下更改颜色时经常出错,建议用HUE模式下调整颜色。

Google Maps API Styled MapWizard

1.2 自定义 Google Maps

Page 10: GIS 系列教程_上册_中文版

10

我们以美国波士顿为例,制作一张道路分析图。

您可以在右上角的搜索窗上搜索或者放大移动来定位到想要的区位。

Google map默认开启了所有的对象和元素。这里,我们只需要道路系统,所以我们要关闭隐藏除了道路意外的所有对象与元素。为此,我们先关闭所有对象组,让界面成为空白界面,然后新建一个图层,仅开启显示道路对象组。

在对象组类别和元素类别窗口选择全部

关闭隐藏所有对象和元素查看图层状态为全部关闭

Google Maps API Styled MapWizard

1.2 自定义 Google Maps

Page 11: GIS 系列教程_上册_中文版

11

1. 点击 ,新建图层。您不能在同一个图层里赋予两种显示模式。2. 选择 Road >Highway 对象组来选择道路层级下的高速公路。3. 选择 Geometry > Fill 来选择图形填充。4. 点击开启显示对象组和元素。5. 更改编辑个性化颜色。

同样的步骤,我们新建另一个图层来开启显示区域道路,您也可通过 调整道路粗细。

Google Maps API Styled MapWizard

1.2 自定义 Google Maps

Page 12: GIS 系列教程_上册_中文版

12

我们可通过打开水域来定义陆地边界。

最终,打开注释来完成波士顿道路分析图

Google Maps API Styled MapWizard

1.2 自定义 Google Maps

Page 13: GIS 系列教程_上册_中文版

13

Google Maps API styled map wizard的操作非常容易,所有的对象和元素都有序的组织在一起。您可以尝试每一个对象组合元素来制作出您自己的地图或分析图。

下面的几个也是用Google Maps API styled map wizard自定义出来的几个案例。

美国州区域图

Google Maps API Styled MapWizard

1.2 自定义 Google Maps

美国东岸高速公路链接图

Page 14: GIS 系列教程_上册_中文版

14

美国曼哈顿第五大街区域使用状态

Google Maps API Styled MapWizard

1.2 自定义 Google Maps

美国曼哈顿建筑轮廓

Page 15: GIS 系列教程_上册_中文版

151.3 生成和编辑 JSON 代码

Shot from Google Developers

Google Maps API Styled MapWizard

1.3 生成和编辑 JSON 代码

JSON 的全称为 JavaScript Object Notation,是一种用可读的文本代码组成的开放标准格式。

在这个章节,我们通过生成JSON代码来编辑其地图画幅大小,为后面的步骤准备一张比较大分辨率的地图。

需要注意的是,这个生成出来的JSON代码不是一个完整的代码程序。完整的JavaScript包含服务器地址,坐标地址,输出大小,地图选项等必要信息。Google 开发者页面包含很多案例代码,我们只需要在那个基础上稍微做点调整就可以。

进到Google开发者页面,找一个案例代码。https://developers.google.com/maps/documentation/javascript/examples/

点击 来生成基于您的自定义地图的JSON代码。

就像左边显示的那样会有新的窗口弹出,生成出来的代码是基于您的自定义地图的设置。我们后面需要用到这些代码。

Page 16: GIS 系列教程_上册_中文版

16

Shot from Google Developers

Shot from Google Developers

Google Maps API Styled MapWizard

1.3 生成和编辑 JSON 代码

在这里例子里,我们可以用简单样式地图案例。在样式菜单里点击Simple styled maps,或者直接进入以下网页。

https://developers.google.com/maps/documentation/javascript/exam-ples/maptype-styled-simple

Google的开发者提供了两种代码,一种是JavaScript,另一种是JavaScript HTML code。在这个例子里,我们要制作HTML格式的文件,用其浏览和储存地图。

1. 点击 ,打开案例代码。2. 复制案例代码到记事本。3. 基于我们之前生成的JSON代码来编辑案例代码(见下页)。4. 文件 > 另存为,以 .html 的格式来另存您的最终代码文件。

Page 17: GIS 系列教程_上册_中文版

17

注意: 请不要被这一长串代码所吓倒,你需要注意修改的仅仅是红色框里面的内容。

注意: 请不要漏掉任何冒号和分号。

注意: 请不要漏掉任何括号、逗号、冒号和引号等标点符号。

<!DOCTYPE html><html> <head> <title>Simple styled maps</title> <style> html, body, #map-canvas { height: 100%; margin: 0px; padding: 0px } </style> <script src=”https://maps.googleapis.com/maps/api/js?v=3.exp&signed_in=true”></script> <script>var map;var brooklyn = new google.maps.LatLng( 40.6743890, -73.9455 );

var MY_MAPTYPE_ID = ‘custom_style’;

function initialize() {

var featureOpts = [ { stylers: [ { hue: ‘#890000’ }, { visibility: ‘simplified’ }, { gamma: 0.5 }, { weight: 0.5 } ] }, { elementType: ‘labels’, stylers: [ { visibility: ‘off’ } ] }, { featureType: ‘water’, stylers: [ { color: ‘#890000’ } ] } ] ;

var mapOptions = { zoom: 12 , center: brooklyn, mapTypeControlOptions: { mapTypeIds: [google.maps.MapTypeId.ROADMAP, MY_MAPTYPE_ID] }, mapTypeId: MY_MAPTYPE_ID };

map = new google.maps.Map(document.getElementById(‘map-canvas’), mapOptions);

var styledMapOptions = { name: ‘Custom Style’ };

var customMapType = new google.maps.StyledMapType(featureOpts, styledMapOptions);

map.mapTypes.set(MY_MAPTYPE_ID, customMapType);}

google.maps.event.addDomListener(window, ‘load’, initialize);

</script> </head> <body> <div id=”map-canvas”></div> </body></html>

width: 8000px;height: 8000px;

Shot from Google Maps

Google Maps API Styled MapWizard

1.3 生成和编辑 JSON 代码

这一部分是修改地图画幅的宽高分辨率。修改成如下您会从浏览器上浏览到8000x8000分辨率(最大值)的地图。当然也可以修改成不超过8000的任意值。

这一部分需要填写所要地图的地理坐标(经度和维度)。您可以从Google Maps网页查找这些信息。• 再Google Maps页面右击您想要的地图位置。• 点击“这儿有什么?”.• 跳出来的窗口上会显示经度和维度信息。

这个部分就是自定义地图的设置代码,把之前从Google Maps API styled map wizard生成出来的JSON代码覆盖粘贴到此区域。

最后,这边的数值代表地图的缩放参数(最大值为20)。

Page 18: GIS 系列教程_上册_中文版

18

<!DOCTYPE html><html> <head> <title>Simple styled maps</title> <style> html, body, #map-canvas { width:8000px; height: 8000px; margin: 0px; padding: 0px } </style> <script src=”https://maps.googleapis.com/maps/api/js?v=3.exp&signed_in=true”></script> <script>var map;var brooklyn = new google.maps.LatLng( 40.730455, -73.998218 );

var MY_MAPTYPE_ID = ‘custom_style’;

function initialize() {

var featureOpts = [ { “stylers”: [ { “visibility”: “off” } ] },{ “featureType”: “road.arterial”, “elementType”: “geometry.fill”, “stylers”: [ { “visibility”: “on” }, { “color”: “#808080” }, { “lightness”: 48 } ] },{ “featureType”: “road.local”, “elementType”: “geometry.fill”, “stylers”: [ { “visibility”: “on” } ] }] ;

var mapOptions = { zoom: 16 , center: brooklyn, mapTypeControlOptions: { mapTypeIds: [google.maps.MapTypeId.ROADMAP, MY_MAPTYPE_ID] }, mapTypeId: MY_MAPTYPE_ID };

map = new google.maps.Map(document.getElementById(‘map-canvas’), mapOptions);

var styledMapOptions = { name: ‘Custom Style’ };

var customMapType = new google.maps.StyledMapType(featureOpts, styledMapOptions);

map.mapTypes.set(MY_MAPTYPE_ID, customMapType);}

google.maps.event.addDomListener(window, ‘load’, initialize);

</script> </head> <body> <div id=”map-canvas”></div> </body></html>

Complete your code like this

Google Maps API Styled MapWizard

1.3 生成和编辑 JSON 代码

注意: 修改完成如下。

Page 19: GIS 系列教程_上册_中文版

19

Firefox with Screengrab

1.4 另存为高分辨率 JPEG 文件

为了保存成高分辨率JPEG文件,建议用Firefox浏览器的Screengrab插件。Screengrab插件使用户截取浏览器的全画幅页面存成JPEG文件,包括显示器画幅以外的内容。

● 进入下面网页地址,下载安装Firefox和Screengrab。

Firefox: https://www.mozilla.org/en-US/firefox/new/?src=amoScreengrab : https://addons.mozilla.org/en-US/firefox/addon/screengrab/

● 确保浏览器页面是100%显示,否则Screengrab不能截取到全尺寸的地图。

● 用Firefox浏览器打开HTML文件。

● 请不要用鼠标左键和滚轮移动或缩放地图。

1.4 另存为高分辨率 JPEG 文件

Google Maps API Styled MapWizard

用浏览器打开从记事本保存好的HTML文件(特别建议用Firefox浏览器,此浏览器的截图插件比较好)。几秒钟的等待后,您可以通过右侧和下侧的滚轴浏览到大画幅地图。

Page 20: GIS 系列教程_上册_中文版

20

8000x8000 resolution map

Google Maps API Styled MapWizard

1.4 另存为高分辨率 JPEG 文件

● Screengrab > save > Complete Page/Frame. 保存为JPEG格式。

Page 21: GIS 系列教程_上册_中文版

211.5 从Google map创建 .dwg 格式矢量地图

Google Maps API Styled MapWizard

1.5 从Google maps创建 .dwg 格式矢量地图

在这个章节,我们会通过高分辨率Google maps创建dwg格式的矢量地图。

首先,我们需要单独的创建和保存地图对象。以美国曼哈顿为例,根据上面所提到的步骤分别创建建筑对象、水域对象、高速公路对象、区域公路对象以及道路。

我们需要通过Photoshop和Illustrator从下面的JPEG文件生成出矢量文件。

● 基本设置(适用于下面所有对象的创建)

● JSON 代码

● 8000x8000 高分辨率JPEG文件

[ { “stylers”: [ { “visibility”: “off” } ] },{ “featureType”: “water”, “elementType”: “geom-etry.fill”, “stylers”: [ { “visibility”: “on” }, { “color”: “#808080” } ] }]

[ { “stylers”: [ { “visibility”: “off” } ] },{ “featureType”: “road.highway”, “elementType”: “geom-etry.fill”, “stylers”: [ { “visibility”: “on” }, { “color”: “#808080” }, { “saturation”: -100 }, { “lightness”: -100 } ] }]

[ { “stylers”: [ { “visibility”: “off” } ] },{ “featureType”: “road.arterial”, “elementType”: “geom-etry.fill”, “stylers”: [ { “visibility”: “on” }, { “color”: “#808080” }, { “saturation”: -100 }, { “lightness”: -100 } ] }]

[ { “stylers”: [ { “visibility”: “off” } ] },{ “featureType”: “road.local”, “elementType”: “geom-etry.fill”, “stylers”: [ { “visibility”: “on” }, { “color”: “#808080” }, { “saturation”: -100 }, { “lightness”: -100 } ] }]

[ { “stylers”: [ { “visibility”: “off” } ] },{ “featureType”: “land-scape.man_made”, “elementType”: “geom-etry”, “stylers”: [ { “visibility”: “on” } ] }]

画幅大小

经纬度坐标

Building/建筑对象 Water/水域对象Highway/高速公路对象

Arterial Road/区域公路对象 Local Road/道路

缩放大小

width:8000px; height: 8000px;

(40.730455, -73.998218);

zoom: 18,

Page 22: GIS 系列教程_上册_中文版

22

Google Maps API Styled MapWizard

1.5 从Google map创建 .dwg 格式矢量地图

以区域路(Local Road)为例,制作一张dwg格式的地图。首先用Photoshop来创建地图路径。

● 用魔法棒工具 选择背景地图颜色。(魔法棒设置如下)

● 反转选区选择道路路径。Select > Inverse or Shift + Ctrl + I

● 打开路径面板。Window > Paths

Page 23: GIS 系列教程_上册_中文版

23

Google Maps API Styled MapWizard

1.5 从Google map创建 .dwg 格式矢量地图

● 点击路径面板右上角的面板菜单 来创建工作路径(Make Work Path)。容差值得范围是从0.5到1,越高的值代表越圆滑。在这个例子里我们使用0.8。

● 导出工作路径到 Illustrator。File > Export > Paths to Illustrator

● 打开 Illustrator 文件,导出至 DWG 格式. File > Export

Page 24: GIS 系列教程_上册_中文版

24

Google Maps API Styled MapWizard

1.5 从Google map创建 .dwg 格式矢量地图

对其他四个对象JPEGs文件做同样的操作。然后,整合所有的DWG文件到一个文件。

毕竟这个操作流程是使JPEG格式的位图转换成矢量图,因此线形不会非常的精确。尽管如此,这个方法在项目前期阶段能起到事半功倍的作用。

.html

.jpg

.ai

.dwg

Page 25: GIS 系列教程_上册_中文版

25

3D Ripper DX

2.1 什么是 3D Ripper DX?

● 安装早期版本的 Google Earth。 ● 安装 3D Ripper DX。 ● 安装 3Ds Max。 (支持版本:5.0-9.0, 2009, 2000, 2011)

在本教程里,测试采用 Window8.1,Google Earth v6.2 免费版,3D Ripper DX 1.8.2,3Ds Max2009。

下载早期版本的Google Earth。 https://support.google.com/earth/answer/168344?hl=en

Shot from Google Earth Support

2.1 什么是 3D Ripper DX?

2.2 准备工作

3D Ripper DX 可以使用户从渲染框中捕捉三维模型,导出至 Autodesk 3D Studio Max 或者 Maya。

在这个章节,我们将会用 3D Ripper DX 从 Google Earth 导出三维建筑模型至 3Ds Max,而且使之用于其他三维建模软件平台上。

Google Earth 3Ds Max

Page 26: GIS 系列教程_上册_中文版

26

3D Ripper DX

2.2 准备工作

安装 Google Earth,以及设置显卡模式为 DirectX (Tools > Options > 3D View > DirectX)。

下载最新版3D Ripper DX。http://www.deep-shadows.com/hax/3DRipperDX.htm

安装3D Ripper DX。 当安装程序步骤到3DR import页面时,在你将要用到的3Ds MAX版本前打勾,且定位程序路径。

注意:3D Ripper DX 仅支持DirectX 6.x,8.x 和 9.x。

Shot from 3D Ripper DX website

Page 27: GIS 系列教程_上册_中文版

27

3D Ripper DX

2.3 从 Google Earth 捕捉物体

注意: 确认Google Earth窗口左上角处 标识,此标识代表捕捉程序运行正常。

2.3 从 Google Earth 捕捉物体

打开 3D Ripper DX ,确认程序设置。

关闭之前开启的 Google Earth,点击 3D Ripper DX 面板的 来运行Google Earth。

首先,链接 googleearth.exe 文件地址到3D Ripper DX

打勾这两个选项以捕捉贴图材质。

设置捕捉快捷键。

模型文件导出路径。通常设置为同一地址。

Page 28: GIS 系列教程_上册_中文版

28

3D Ripper DX

注意:请不要一次性捕捉太大区域,否组捕捉到的模型精度会非常低, 以竖向2-3个街区为最佳。

2.3 从 Google Earth 捕捉物体

我们将以波士顿为例,演示其操作流程

● 缩放到您想要捕捉的区域,等待片刻,直到所有的三维建筑模型缓冲完成。 如果三维建筑模型没有显示,您需要在图层面板里的 3D Buildings 选项前打勾。

● 旋转模型至顶视图,再点击“N”以正北显示。

● 一旦准备就绪,点击“F12”来捕捉Google Earth窗口。3D Ripper DX 选项面板的默认捕捉快捷键为F12。如果程序捕捉运行正常,如下的消息窗会出现在窗口的左上角。如此消息窗不显示,需微调地图的位置或缩放后再尝试捕捉,直到此消息窗出现为止。

Page 29: GIS 系列教程_上册_中文版

29

3D Ripper DX

2.4 导入模型至 3Ds Max

2.4 导入模型至 3Ds Max

当运行成功,您将在之前 3D Ripper DX 面板设置过的文件地址上找到以捕捉的模型文件。但是,在某些情况下,您捕捉到的模型文件会跑到其他路径。这时请确认 Document 文件夹下 的 3DReaperDX 文件夹。 C:\Users\“PC user name”\Documents\3DReaperDX\Frames

● 首先,您需要调整 FOV 值和显示器比率。

FOVFOV(Field of View)即为相机视角。在这个选项里我们需输入 Google Earth 的 FOV。人的眼睛的 FOV 是180度左右,Google Earth 采用 60度的水平方向(horizontal)FOV。因此选项窗上我们需输入 FOV:60 for width。

显示器比率这个值是我们之前捕捉的视图宽高比。显示器比率等于水平方向的像素总数除掉垂直方向的像素总数。(更多请见下页)

● 其次,去掉选项里的打勾。因为导入到3Ds Max的模型会非常小,这些打勾的选项会自动删掉模型空间里的极小物体。

● 打开 3Ds Max,导入.3dr为后缀的文件。File > Import

● Set import options.

怎样计算显示器比率

计算像素个数的最简单的方法是截屏,点击键盘上的PrintScreen 。

其次在Photoshop里新建一个页面,然后粘贴截屏到的信息。

裁剪 掉不需要的边框。

最后查看图像大小(Image Size)。 Image > Image size 或 Alt+Ctrl+I

Page 30: GIS 系列教程_上册_中文版

30

3D Ripper DX

Crop the boundary

2.4 导入模型至 3Ds Max

在这个例子里,水平方向的像素为1842pixels,垂直方向的像素为1011pixels。

因此,

因此,选项设置如下。

显示器比率 = = 1.8218421011

Page 31: GIS 系列教程_上册_中文版

31

3D Ripper DX

2.5 修改3Ds Max模型比例

2.5 修改3Ds Max模型比例

就像上面提及的一样,导入到3Ds Max的模型会非常小,以至于什么也看不到。因此,我们需要放大模型到一定大小来调整模型比例。

● 点击“按名称选择(Select by Name)“。

● 右击 “统一缩放(Uniform Scale)”。

● 输入比例因子638700,以放大模型到正确的比例大小。(此为常数,经过测试得到的导入比例因子)

● 编为一个组 Group > Group

● 选取所有在模型空间的物体。

Page 32: GIS 系列教程_上册_中文版

32

3D Ripper DX

2.5 修改3Ds Max模型比例

● 右击”旋转(Rotate)“。

● 在X轴方向输入-90度来调整模型位置。

贴图材质不会一直准确。毕竟这种方法是一种从Google Earth 粗暴破解导出的方式,我们不能期待太多。尽管如此,建筑模型是非常好的。

Page 33: GIS 系列教程_上册_中文版

33

3D Ripper DX

2.6 导出到其他软件

Import to Skethup

Import to Rhinoceros

2.6 导出到其他软件

在这个例子里,模型转换格式为.3ds。转换步骤在这边省略掉。如下为导入到 Sketchup 和 Rhinoceros 里的模型。

Page 34: GIS 系列教程_上册_中文版

34

ELK for Grasshopper

3.1 ELK的介绍以及安装步骤

介绍

ELK是一个Grasshopper的插件。它可以通过OpenStreetMap和USGS的开源数据来生成出地图模型和地形曲面。查看更多请参考:http://www.food4rhino.com/project/elk?ufh

我们认为读者对Grasshopper有基本的了解。 在这个教程里,我们主要讲解其插件-ELK。

安装步骤

● 登陆Food4Rhino页面,下载最新版本的ELK。http://www.food4rhino.com/project/elk?ufh

● 打开Grasshopper,解压所有的ELK安装文件至Components Folder。 File > Special Folders > Components Folder

3.1 ELK的介绍以及安装步骤

Page 35: GIS 系列教程_上册_中文版

35

ELK for Grasshopper

3.2 ELK功能组件的介绍

ELK仅有8个功能组件,因此非常容易上手。如下为基本运行逻辑。

3.2 ELK功能组件的介绍

Any Features/其他对象

.osm Data

STRM Data Topography/地形

Highways/高速公路

Major Roads/主要道路

Minor Roads/次要道路

Railways/铁路

Waterways/水域

Page 36: GIS 系列教程_上册_中文版

36

ELK for Grasshopper

在这个章节,我们以波士顿为例,通过ELK制作一张地图模型。

● Location/定位组件定位组件(Location)主要从外部收集数据,以输出ELK其他组件必要的数据对象。

输出至其他ELK功能组件

地理坐标。经度 (Lo) 和维度 (La)

OSM点对象XML数据

3.3 ELK功能组件的操作

.osm文件

OpenStreetMap (OSM)OpenStreetMap是一个可编辑的开源世界地图。用户可以从中得到矢量信息,通过相应的工作软件界面来生成显示出其矢量信息。

从OpenStreetMap生成 .osm 文件1. 登陆网页:http://www.openstreetmap.org/2. 点击页面上部的“导出(Export)”按钮打开设置面板。

3. 定位到您想要的地图位置后,点击面板下的 “导出(Export)”按钮来下载.osm文件。

4. 或者您也可以通过“手动选择不同区域(Manually select a different area)”来自定义需要导出的地图范围。

您导出的地图的经纬度范围显示在此面板上。

3.3 ELK功能组件的操作

Page 37: GIS 系列教程_上册_中文版

37

ELK for Grasshopper

4. 一旦准备就绪,点击 。

5. 右击 组件,设定文件路径至以下载的 .osm文件的地址。

此为您将在ELK用到的文件。

3.3 ELK功能组件的操作

Page 38: GIS 系列教程_上册_中文版

38

ELK for Grasshopper

● Highways/高速公路

机动车道点组机动车道链接路点组躯干路点组躯干路链接路点组对象信息。一般情况下,输出道路名称。

从定位组件(Location)提取的OSM点对象

从定位组件(Location)提取的XML数据

收集类别 (默认为点与线/points and ways)OSM数据以点组数据来定义对象。大多数点组数据可以连成曲线来定义道路,一些则仅以点的形式存在。通过此输入端,用户可以按照对象类别来输出。0=点与线/points and ways;1=线/only ways;2=点/only points。通常,我们只要默认设置就好。

用“多段线(PolyLine)” 组件链接点组为多段线。

3.3 ELK功能组件的操作

Page 39: GIS 系列教程_上册_中文版

39

● Major Roads/主要道路、Minor Roads/次要道路、Railways/铁路、Waterways/水域这些组件与高速公路组件用法上比较相似。上面的操作步骤同样适用于这四个组件。每个输出端的输出信息类别请查看帮助文件。右击组件点击“Help”。

ELK for Grasshopper

3.3 ELK功能组件的操作

Page 40: GIS 系列教程_上册_中文版

40

通过“自定义预览(Custom Preview)” 和“色板(Color Swatch)” ,我们可以用不一样的颜色来区分每个对象组。

● GenericOSM(GenOSM)/其他OSM类别这个组件就像一把万能钥匙使用户自定义输出的对象类别。

登陆网页查找对象类别与对象值:http://wiki.openstreetmap.org/wiki/Map_Features

ELK for Grasshopper

对象点组数据

对象信息

对象类别对象值

3.3 ELK功能组件的操作

从定位组件(Location)提取的OSM点对象从定位组件(Location)提取的XML数据

收集类别(默认为点与线/points and ways)

Page 41: GIS 系列教程_上册_中文版

41

注意:因为地图信息不是非常完善,很多值还没有定义进去。在这个案例里我们把对象值留为空白以显示所有的建筑轮廓。

ELK for Grasshopper

对象类别对象值 对象内容

我们以建筑为例子,来创建地图的建筑轮廓对象。

3.3 ELK功能组件的操作

Page 42: GIS 系列教程_上册_中文版

42

More information from http://dds.cr.usgs.gov/srtm/version2_1/Documentation/SRTM_Topo.pdf

http://dds.cr.usgs.gov/srtm/version2_1/Documentation/Quickstart.pdf

ELK for Grasshopper

● SRTMTopo (sTopo)/SRTM地形用户可以通过SRTM地形组件从USGS提取SRTM(Shuttle Radar Topography)数据来创建地图的地形地貌。

地形点组以维度为一组排列维度方向地形线地形曲面

.hgt文件(SRTM数据)

登陆USGS网页下载 .hgt文件(SRTM数据)1. 登陆以下网页地址: http://dds.cr.usgs.gov/srtm/

2. 根据您所定位的地图查找相应的SRTM数据

SRTM数据分为两个等级:SRTM1(仅美国领土以及其殖民地地形)是以1弧秒的经纬度精度测量的数据;SRTM3(全世界地形)是以3弧秒的经纬度精度测量的数据。3弧秒的经纬度即指3乘3的1弧秒的经纬度为一个单位的精度数据。

选择SRTM数据的最新版本。

SRTM数据

3.3 ELK功能组件的操作

经度坐标范围维度坐标范围

Page 43: GIS 系列教程_上册_中文版

43

Explain by ELKdesigntech

ELK for Grasshopper

继续以波士顿为例,我们可以用SRTM1 (仅美国领土以及其殖民地地形) 数据。

很显然,波士顿位于06区域。当然我们还需要波士顿的经纬度坐标范围。在这个例子里,我们可以从“定位组件(Location)”里得到这些信息。

SRTM是以每1°x1°为一个块来整理的数据。通常以左下角的点命名每一个块。东半球的经度通常以正数表示,越往东,经度值越大(左到右)。相反,西半球的经度以负数来表示。当以E/W符号来代替正负符号时,西半球的经度值从右到左增加。因此N42W072(维度:42~43;经度:-72~-71)为包含波士顿地形的SRTM数据块。

41°N

71°W72°W73°W

42°N

43°N

经度坐标范围 71.086° W ~ 71.0468° W

维度坐标范围 42.351° N ~ 42.3716° N

查找区域块说明

BostonN42W072

N41W072

N42W073

N41W073

3.3 ELK功能组件的操作

Page 44: GIS 系列教程_上册_中文版

44

3. 用ELK的SRTM地形组件创建波士顿的地形地貌。

因此,从列表中查找N42W072.hgt.zip文件,下载并解压文件。

USGS提供的SRTM数据是大区域的数据资料,因此在在局部的地形地貌不是特别细化。后面的章节会介绍其他的Grasshopper插件来提取更为精确的地形数据。

ELK for Grasshopper

3.3 ELK功能组件的操作

Page 45: GIS 系列教程_上册_中文版

45

Heron for Grasshopper

4.1 Heron的介绍以及安装步骤

4.1 Heron的介绍以及安装步骤

介绍

Heron是一个Grasshopper的插件。它可以使用户从很多不同的数据库中导入GIS数据到Rhinoceros模型界面。Heron是基于地球锚点和多边形裁剪范围框来定位地图的经纬度坐标范围。Heron支持很多种GIS数据源,包括Shape文件、USGS IMG/HGT高度文件和ArcGIS REST服务数据。查看更多关于Heron的信息请登陆以下网页:http://www.food4rhino.com/project/heron?ufh

事实上,Heron提供的例子文件已经很好的说明了其用法。高级用户可以直接参考其例子文件。此教程仅以补助例子文件的形式来讲解其操作步骤。

安装步骤

● 登陆 Food4Rhino 网页,下载Heron:http://www.food4rhino.com/project/heron?ufh

● 运行Grasshopper,解压所有的安装文件至Components Folder。File > Special Folders > Components Folder

Page 46: GIS 系列教程_上册_中文版

46

● 为了打开例子文件,用户首先需要安装两个Grasshopper的插件:Human和Weaverbird。其安装步骤跟Heron的安装步骤基本相似。

下载 Human for Grasshopper: http://www.food4rhino.com/project/human?ufh下载 Weaverbird for Grasshopper: http://www.giuliopiacentino.com/weaverbird/

Heron for Grasshopper

4.2 Heron功能组件的介绍

仅8个功能组件组成的Heron使用户以很多种方法来取得GIS数据。其功能组件的输入/输出端以米为默认单位。

地理定位以及地球锚点的设置

JPEGs图像信息.shp文件数据

地形地貌

ArcGIS REST 服务矢量数据

GIS REST 服务数据组件 GIS 工具

4.2 Heron功能组件的介绍

Page 47: GIS 系列教程_上册_中文版

47

在这个章节,以波士顿为例讲解其操作流程。

● 地理定位以及地球锚点的设置

ESRI REST Service Geocode/ESRI REST 服务定位编码我们可以直接在输入端输入需制作的地图的地名或关键词,以得到其精确的地理坐标。

Set EarthAnchorPoint/地球锚点的设置运行宏命令在Rhino界面设置地球锚点。这一步操作最小化从地球曲面到欧几里得坐标的转化的变形。

Decimal Degrees to XY/地理坐标到XY基于地球锚点转换地理坐标到Rhino模型空间的XY坐标。

4.3 Heron功能组件的操作

Heron for Grasshopper

4.3 Heron功能组件的操作

在如上所示的很多系列地址当中找到我们需要用到的地址,即{0}集合里的数据。

Page 48: GIS 系列教程_上册_中文版

48

Heron for Grasshopper

● JPEGs图像信息

Get REST Raster/REST Raster数据的提取从特定的网页数据源中截取JPEGs图像数据。当图像数据下载到指定的文件夹,图像数据会以真实的世界坐标和比例(米为单位)显示在图像范围框内。

图像裁剪范围框 以下载图像的文件地址

原始图相框,用于表面的非变形贴图

图像的URL地址

图像像素(最高值:4096)图像文件的下载地址图像的文件名称ArcGIS REST 服务网页地址设置true为下载图像

图像裁剪范围框

当安装Human之后,您可以在例子文件中找到以设定好的很多URL地址资源,以下载很多不同形式的图像信息。

用户也可以通过多个裁剪范围框来生成出图像地图。

此点为从上面输入的地理坐标转化的RhinoXY坐标点。通过此点,用户可以很方便的确定图像裁剪范围框的位置。

4096

px

4096 px

原始图相框

4.3 Heron功能组件的操作

Page 49: GIS 系列教程_上册_中文版

49

Heron for Grasshopper

● ArcGIS REST 服务矢量数据

Get REST Service Layers/提取 REST 服务图层从多种网络页面数据库中提取数据图层。当图层为矢量数据时,数据类似于shape文件的形式返回至模型界面,使其包含了几何对象和对象信息。根据输出的数据类别选取 Get REST Vector 或 Get REST Raster 组件。

Get REST Vector/提取REST矢量数据提取网页数据资源转换成几何对象和相应的对象数据。例如,从主要道路(Primary Roads)URL图层创建一系列的点组。

地图图层信息,以及对应的图层URL编号。

主要道路 (Primary Roads)图层的URL编号

主要道路(Primary Roads)URL图层输入到URL输入端

请用同样的操作流程,尝试其他图层对象的创建

同样的,您可以在例子文件中找到这些URL地址资源。您也可以访问以下网页来查找更多基于ArcGIS REST 服务的数据图层。http://tigerweb.geo.census.gov/arcgis/rest/serviceshttp://services.arcgisonline.com/arcgis/rest/services

4.3 Heron功能组件的操作

Page 50: GIS 系列教程_上册_中文版

50

Heron for Grasshopper

此组件的输出端不仅包含对象点组,而且还有很多重要的信息解释对象点组的属性。例如,在美国人口密度(USAPopulation Density)的数据源中,我们可以得到每个数据检测范围块的区域面积、总人口、单位人口所占的面积等数据。

● 从 .shp 文件提取数据

Import SHP/导入SHP通过OGR库导入Shape文件。输出端是以点组的形式输出几何对象,这些点组可以连成多段线。用户可以在很多网页下找到有用的Shape文件。通常所需的Shape文件可以直接通过Google引擎搜索出来。例如,我们可以直接在Google上搜索Boston building shape file(波士顿建筑的Shape文件)。以下为波士顿建筑Shape文件的网页下载地址。http://boston.maps.arcgis.com/home/item.html?id=c423eda7a64b49c98a9ebdf5a6b7e135

下载 .shp 文件,链接文件地址到此输入端

此Shape文件包含建筑高度。

注意:当Shape文件的单个集合里包含多个多段线时(如有内庭院的建筑轮廓),组件的树形数据会分支至以每个多段线为一个集合。为了得到建筑轮廓面,我们需要按照每栋建筑为一个独有的集合来重新编制树形数据。裁剪(Trim Tree)树形数据分支, 用范围面(Boundary Surface)组件来创建每个建筑轮廓的底面。

4.3 Heron功能组件的操作

Page 51: GIS 系列教程_上册_中文版

51

Heron for Grasshopper

● 地形地貌

Import Topo/导入地形通过GDAL库导入IMG和(STRM)HGT文件。输出端为网格几何体(mesh)。

美国的IMG文件的数据资源由USGS提供:ftp://rockyftp.cr.usgs.gov/vdelivery/Datasets/Staged/NED/此数据资源库包含三种地形数据精度:1弧秒的经纬度精度、1/3弧秒的经纬度精度、1/9弧秒的经纬度精度。通常我们以地图定位坐标的下一个高的经纬度值来找到对应的文件。

维度值: 42.351° N经度值:71.086° W

转换成文件名:n43w72.zip (或1/9弧秒的经纬度精度的 ned19_n42x50_w71x25_ma_lftne_lot7_2011.zip)

覆盖整个地球的 (STRM) HGT 数据可以在USGS网页下载(1弧秒的经纬度精度和3弧秒的经纬度精度):http://dds.cr.usgs.gov/srtm/version2_1/

以下载的 IMG 或 HGT文件的地址路径

4.3 Heron功能组件的操作

Page 52: GIS 系列教程_上册_中文版

52

Import shapefile: 打开对话框加载和裁剪shapefiles。

Parse Meerkat file: 从Shapefile中提取点组和对象信息。

Meerkat for Grasshopper

介绍

Meerkat 是基于Grasshopper 平台,用 GIS shape 文件创建几何体的工具集。Meerkat 可以把 GIS shape 文件定位以及裁剪到 Google Map 浏览器上。更多信息,请参考:http://www.food4rhino.com/project/meerkatgis?ufh

Installation

您可以去food4rhino网站搜索并下载软件。http://www.food4rhino.com/project/meerkatgis?ufh.

请参照网页安装说明完成安装。安装后,打开Grasshopper,您就会在工具栏中发现Meerkat。

Meerkat 由四个组件组成,在这个教程里我们将讲解其主要的两个组件。

5.1 Meerkat的介绍以及安装步骤

5.1 Meerkat的介绍以及安装步骤

5.2 Meerkat功能组件的介绍

Page 53: GIS 系列教程_上册_中文版

53

双击 Toggle 组件到 True,您将会发现新的窗口弹出,即Meerkat Version 1.5 Beta(根据使用的版本略有不同)。窗口里显示的是 Google Map。

Meerkat for Grasshopper

这个插件的用法非常简单直接。因此,在本教程中,我们将通过一个案例来展示它的基本操作流程。更多的用法,用户可以自己尝试和探索。

先打开一个新的Rhino文件,然后打开Grasshopper,找到 Extra > Import shapefile,将此组件拖到Grasshopper 窗口中。同样找到 Params > Boolean Toggle,拖拽组件到窗口。然后连接下面的2个组件:

在这个章节,我们以美国洛杉矶为例,用 shape 文件来制作洛杉矶的城市模型。到下面的链接下载洛杉矶的 shape 文件。http://egis3.lacounty.gov/dataportal/2011/04/28/countywide-building-outlines/

下载完成之后,点击 Add Shape File 按钮来添加洛杉矶的 shape 文件到 Meerkat 工作窗。您会发现左侧的工作窗里增加了新的文件。在文件的选项框里打勾,您将会注意到 shape 文件的边框会正确的定位到洛杉矶区域。

5.3 Meerkat功能组件的操作

5.3 Meerkat功能组件的操作

Page 54: GIS 系列教程_上册_中文版

54

为了模型的流畅度,在这个例子里,我们把范围缩小到洛杉矶市中心来介绍其建模流程。放大以及定位到所需的区域,点击窗口上部的边框按钮来自定义建模范围。然后点击 Crop Shape File(s) 按钮来导出所需范围的文件。点击 OK 来导出以及结束 Meerkat 工作窗。

Meerkat for Grasshopper

5.3 Meerkat功能组件的操作

Page 55: GIS 系列教程_上册_中文版

55

下一步,找到 Params > File path, 以及拖拽到 Grasshopper 工作窗。右击组件选择 Set One File Path 选择上一步导出的文件。

找到 Extra > Parse Meerkat file, 以及拖拽到 Grasshopper 工作窗,链接其输入端到 File Path 的输出端。经过几秒钟的运算之后,您将会注意到犀牛工作界面将会显示很多点组。

shape 文件包含以点组来定义的几何属性以及对象信息。

Meerkat for Grasshopper

5.3 Meerkat功能组件的操作

Page 56: GIS 系列教程_上册_中文版

56

拖拽两个 Panel 组件到工作窗,依次链接到 Feild Name 输出端和 Feild Valune per Shape 输出端。仔细观察对象信息,你将会发现两个 Panel 显示的信息是一一对称的。比如,在 Field Names 输出端的 [2] 编号的值是 HEIGHT, Field Values per Shape 输出端的 [2] 编号的值是 3.31300000000e+001, 即说明此集合里面的建筑的高度是3.313m。

找到 Curve > Polyline, 以及拖拽到工作窗,链接到 Meerkat 组件的 Geometry per Shape 输出端。您将会发现在犀牛窗口里洛杉矶市中心的建筑轮廓以基本形成。

Meerkat for Grasshopper

5.3 Meerkat功能组件的操作

Page 57: GIS 系列教程_上册_中文版

57

下一步,我们将用建筑高度信息来挤出建筑模型。用 List Item 组件在抽取每个树形集合 [3] 编号里的建筑高度值。 用 Move 组件来复制建筑轮廓到正确的高度上。最后用 Loft 组件来生成几何体。

经过几秒钟的运算后,您就可以在犀牛窗口里浏览洛杉矶市中心的整体模型。

Meerkat for Grasshopper

此流程是运用 shape 文件来制作建筑模型的方法。当然您也可以运用 shape 文件来制作更多的城市模型。比如城市道路模型或犯罪率分析模型等等。

因为 Meerkat 非常简单易用。在这个教程里省略掉更多的操作流程。基于这个短短的教程,我们相信用户完全可以自己来尝试和探索 Meerkat 的更多操作方法。

5.3 Meerkat功能组件的操作

Page 58: GIS 系列教程_上册_中文版

cover image from Google Engine