版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、开发者指南(高级)标签:google earth开发应用财经2008-07-09Google Earth API(2008-07-10 12:43:39)分类:学海拾贝感慨:Google Earth真是一个好东东,而其爱好者更是天才啊。我们与老美在科技上的差距,不是我们以环境、资源为代价的粗放式快速增长的GDP所能掩盖的。Google Earth API开发者指南(高级)-摘自 Godeyes创建地面覆盖地面覆盖,允许您在 Google Earth的地表上放置图像。其中,图像源自网络,图片的 URL包含在“ Icon ”对象内。var groun dOverlay = ge.createGro
2、 un dOverlay();groun dOverlay.setIc on( ge.createIc on() groun dOverlay.getIc on().setHref(" ntl/e n_ALL/images/logo.gif');groun dOverlay.setLatL on Box(ge.createLatL on Box();var center = ge.getView().copyAsLookAt(ge.ALTITUDE_RELATIVE_TO_GROUND);var n orth :=cen ter.getLatitude() + .85;var
3、 south=cen ter.getLatitude() - .85;var east =cen ter.getL on gitude() + .55;var west =:cen ter.getL on gitude() - .55;var rotati on = 0;var latL on Box = groun dOverlay.getLatL on Box();latLonBox.setBox(north, south , east , west, rotation);ge.getFeatures().appe ndChild(gro un dOverlay);此例中,Google的l
4、ogo被叠放在加州总部山景城的位置。地面覆盖的特点是始终吸附在地表,无论图像放在山脉还是河谷,如下图所示:创建屏幕覆盖屏幕覆盖是指图片固定在屏幕上,不像地面覆盖那样跟随地表起伏而变化。屏幕覆盖通常用来做logo、商标、图例等,其长宽尺寸由 size属性决定。图像位置(screenXY属性)由图 中的安置点(overlayXY属性)控制,其旋转角度由rotationXY 属性决定。下列代码将用Google标志图来创建一个屏幕覆盖,并倾斜一定角度。var scree nO verlay = ge.createScree nO verlay(); scree nO verlay.setlc on(
5、ge.createlc on();scree nO verlay.getlc on().setHref(" ntl/e n_ALL/images/logo.gif');/ Set scree n positi on in pixelsscree nO verlay.getOverlayXY().setX Un its(ge.UNITS_PIXELS);scree nO verlay.getOverlayXY().setYU ni ts(ge.UNITS_PIXELS);scree nO verlay.getOverlayXY().setX(4OO);scree nO verl
6、ay.getOverlayXY().setY(2OO);/ Rotate around object s cen ter pointscree nO verlay.getRotatio nXY().setXU ni ts(ge.UNITS_FRACTION);scree nO verlay.getRotatio nXY().setYU ni ts(ge.UNITS_FRACTION);scree nO verlay.getRotatio nXY().setX(0.5);scree nO verlay.getRotatio nXY().setY(0.5);/ Set object s size
7、in pixelsscree nO verlay.getSize().setX Un its(ge.UNITS_PIXELS);scree nO verlay.getSize().setYU ni ts(ge.UNITS_PIXELS);scree nO verlay.getSize().setX(300);scree nO verlay.getSize().setY(75);/ Rotate 45 degreesscree nO verlay.setRotati on( 45);ge.getFeatures().appe ndChild(scree nO verlay);效果如下图所示:样式
8、地图样式地图在一般情况为地标下提供两种状态:普通状态和高亮状态,分别由两种图标来表示,当用户在Google Earth中用鼠标在地标图案上经过时,图案会自动切换至高亮状态。下例代码中,地标在普通状态时,图案为三角形,当鼠标在地标上方经过时,其图案变为矩形。map = ge.createStyleMap( styleMap + coun ter);/ Create icon normal for style mapno rmal = ge.createIc on();no rmal.setHref( ngle.p ng );iconNo rmal = ge.createStyle( styleI
9、c onNo rmal + coun ter);iconNo rmal.getIc on Style().setIc on(no rmal);? / Create icon highlight for style maphighlight = ge.createIc on();highlight.setHref( http:/maps.google.eom/mapfiles/kml/shapes/square.p ng );iconH ighlight = ge.createStyle( styleIc onH ighlight + coun ter);iconH ighlight.getlc
10、 on Style().setIc on (highlight);? / Set no rmal and highlight for stylemapmap.setNormalStyleUrl( #stylelc onNo rmal + coun ter); map.setHighlightStyleUrl( #styleIc onH ighlight + coun ter);? / Apply to placemarkplacemark.setStyleUrl( #styleMap + coun ter);管理地形、道路、边界当浏览器窗口加载 Google Earth插件时,地形特征将被作为
11、默认选项被显示,无需手动干 预。并不是所有 Google Earth图层特性被显示出来,如果要在浏览器内显示,那么下列JavaScript代码将教您怎么做:显示建筑三维模型ge.getLayerRoot().e nableLayerByld(ge.LAYER_BUILDINGS, true);隐藏建筑三维模型ge.getLayerRoot().e nableLayerByld(ge.LAYER_BUILDINGS, false);显示边界ge.getLayerRoot().e nableLayerByld(ge.LAYER_BORDERS, true);隐藏边界ge.getLayerRoot(
12、).e nableLayerByld(ge.LAYER_BORDERS, false);显示地形ge.getLayerRoot().e nableLayerByld(ge.LAYER_TERRAIN, true);隐藏地形ge.getLayerRoot().e nableLayerByld(ge.LAYER_TERRAIN, false);KML分 析如果您手上有一段 KML代码,那么就可以让Google Earth插件对其进行分析一一用ge.parseKml对象把KML转换成JavaScript。示例代码如下: var pen tag on = ge.parseKml(<?xml ve
13、rsion="1.0" encoding="UTF-8"?> +<kml xmln s="<Placemark> + <n ame>The Pen tag on</n ame> +<Polygo n> + <extrude>1</extrude> + <altitudeMode>relativeToGrou nd</altitudeMode> + vouterB oun daryIs> +<Lin earR ing> +
14、 vcoord in ates> +-77.05788457660967-77.05465973756702-77.05315536854791-77.05552622493516-77.05844056290393-77.0578845766096738.87253259892824,100+38.87291016281703,100+38.87053267794386,100+38.868757801256 ,100 +38.86996206506943,100+38.87253259892824,100+</coord in ates> + </L in earR
15、 ing> + </outerBo un daryIs> + <inn erBo un daryIs> + <Lin earR ing> + vcoord in ates> +-77.05668055019126,38.87154239798456 ,100+-77.05542625960818,38.87167890344077 ,100+-77.05485125901024,38.87076535397792 ,100+-77.05577677433152,38.87008686581446 ,100+-77.05691162017543,3
16、8.87054446963351 ,100+-77.05668055019126,38.87154239798456 ,100+</coord in ates> +</L in earR ing> +v/i nnerBoun daryIs> + v/Polygo n> +</Placemark> + v/kml> );ge.getFeatures().appe ndChild(pe ntago n);var la = ge.createLookAt();la.set(38.867, -77.0565 , 500 , ge.ALTITUDE_
17、RELATIVE_TO_GROUNDO , 45 , 900);ge.getView().setAbstractView(la);Image © 2008 Sanborn上述代码效果如下图所示:Google Earth插件支持立体模型(三维场景)。把三维模型导入Google Earth后,会自动转换格式、旋转角度、伸缩大小,以适应 Google Earth的坐标系统。下列代码将加载一个 Collada模型,并将其显示出来。(注:COLLADA勺全名是“COLLAborative Design Activity ”,是用来建立 3D互动程序的一个文件格式,而此格式就叫做"da
18、e”,全名是"digital asset exchange”。COLLADA要定义一个开放式的 XML Schema标准。也就是说,你在 3D软件所建好的模型,只要透过COLLADA勺外挂软件就可以输出成dae的档案,而这个档案所包含的内容就是以XML文字数据的形式来描述的。)察看模型IV"* 11崛-placemark = ge.createPlacemark();placemark.setName( model );model = ge.createModel();ge.getFeatures().appe ndChild(placemark); loc = ge.cr
19、eateLocati on();model.setLocati on (loc);link = ge.createL ink();/ A textured model created in Sketchup and exported as Collada.var href = win dow .lo cati on .href;var pagePath = href.substri ng(0, href.last In dexOf( / ) + / ;lin k.setHref(pagePath + splotchy_box.dae );model.setL in k(l in k);la =
20、 ge.getView().copyAsLookAt(ge.ALTITUDE_RELATIVE_TO_GROUND);loc.setLatitude(la.getLatitude();loc.setL on gitude(la.getL on gitude();placemark.setGeometry(model);la.setRa nge(300);la.setTilt(80);ge.getView().setAbstractView(la);察看太空您可以创建程序来观察天空一一星星、月亮、星座、星系”就像 Google Earth 里的Sky功能一样。当程序切换到天空模式时,界面也会自动
21、切换。所有星空数据均被放置在虚拟圆 形地球的内部,我们的视角切换到球形核心,抬头仰望便可一览苍穹。坐标星空坐标由赤经和赤纬组成。赤经:从春分点沿着天赤道向东到天体时圈与天赤道的交点所夹的角度,成为该天体的赤经。赤经与时角不同,时角是由天子午圈向西量,而赤经是由春分点向东量,两者方向相反。赤经(Right ascension , RA;符号:希腊字母a),天文学名词。指赤道坐标系的经向坐标, 过天球上一点的赤经圈与过春分点的二分圈所交的球面角。天球上相当于地球经线的线,通过天球两极并与天赤道垂直。以时、分、秒表示。赤纬:从天赤道沿着天体的时圈至天体的角度称为该天体的赤纬。以天赤道为赤纬0
22、6;,向北为正,向南为负,分别从0°到90°。日赤纬的变化范围在一 23° 27+23° 27之间,而月赤纬的最大变化范围为一28° 36+ 28° 36 .赤纬常用3表示。在第二赤道坐标系中,天体的位置根据规定用经纬度来表示,称作赤经(a )、赤纬(3 )。赤纬就是天体的位置与天赤道位置的差,在天赤道以北多少度就为正多少度,反之,在天赤道以南多少度为负多少度。赤纬的取值为-90度到+90度,南天极的赤纬为-90度,北天极的赤纬为+90度, 天赤道的赤纬为0度。天球赤道坐标系的纬度规定与地球纬度类似。只是不称作“南纬”和"北
23、纬",天球赤纬以北纬为正,以南为负。用set方法把地球界面切换至天空:ge.getOptio ns().set Map Type(ge.MAP_TYPE_SKY);反之,把界面从天空切换回地球:ge.getOpti on s().setM apType(ge.MAP_TYPE_EARTH);计算LookAt对象里的Range值当您使用LookAt对象来处理星空数据时,必须用下列公式计算出r的距离。r = R*(k*sin(3 /2) - cos( 3 /2) + 1)Center of EarthsField of View(fixed)公式中各参数说明如下:r :即range的值,
24、由vLookAt标签指定。Cen ter ofR:为假设星空球体的半径。在这里,星空球面为地球内表面, Earth ”为地球核心,因此 R值实为地球半径6.378 X106。k :等于1 / tan ( 2 /a ),或者用近似数替代:1.1917536a :是一个角度范围(B <a <180° )。当观察点向地球原点移动时所形成 的夹角。B :用户所需星空图像两边与地球原点的夹角(单位:秒)。与Google Maps相结合如果您是一位 Google Maps开发者,想把网络地图移植到 Google Earth 插件里以增强互动 效果,现在变得轻而易举。 Google M
25、aps API为Gmap2类增加了一个新方法,为 Gmap类型 增加了一个新常量,允许你在已有的网络地图中增加Google Earth三维功能。下例中,网页中的 Google Map新增了一个"Earth ”按钮,可以随时在 Map与Earth之间切 换。SatelliteEarth槌p data ©200Palo Alo of Santa Clar CoPalo AJtotiianlcrrdStsdun;二;Palo'Alto' MunGolf CourseIMapEastPalo Altc'/ Rmcmadia-STanfarcJ Sapging
26、CenterStanfordStanfordUniversityiltiSi当您点击"Earth ”按钮时,窗口切换至 Google Earth ,地点未变。示例代码如下:VDOCTYPE html PUBLIC "-/W3C/DTD XHTML 1.0 Strict/EN""/TR/xhtml1/DTD/xhtml1-strict.dtd"><html xml ns="/1999/xhtml"xmln s:v=" urn: schemas
27、-microsoft-com:vml"><head><title>Using Google Earth API with the Maps API</title><script src=" type="text/javascript"></script>function in itialize() var map = new GMap2(document.getElementByld("map");map.setCe nter( new GLatL ng(37.4419, -122.1419) , 13);map.addMapType(G_SATELLITE_3D_MAP);map.addC on t
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年秋季市场营销专业开学第一课 专业证书与资格认证
- 2026年秋季土木工程专业开学第一课 专业社团与学术活动讲座方案
- 抗焦虑药治疗护理查房
- 金地中心项目广场铺装施工方案
- 手术室植入物管理完整版护理查房
- 2026年院感试题及答案(医院感染知识考试试题及答案)
- 考核聘用临床医学面试题及答案2026版
- 教学楼混凝土浇筑施工方案-施工技术方案
- 型材屋面工程施工方案
- 服装制造企业铣工定期维护安全操作规程
- 2025年党员发展对象培训课件:入党积极分子培训教材
- 《先兆流产中西医结合诊疗指南》
- 标准日本语初级下课后练习题答案25-48
- 2024年江苏省张家港市文化中心管委办招聘3人历年(高频重点复习提升训练)共500题附带答案详解
- 多导睡眠监测课件
- 《复变函数与积分变换》第三版课后习题及答案
- 四川大学高等学历继续教育本科生毕业论文样本格式
- 交接班管理制度车间交接班制度生产车间交接班制度
- 仪器内校员培训教材
- 《中国石化建设工程招标投标规定》(完整版)资料
- 中小学会计制度测试题及答案
评论
0/150
提交评论