Google_Earth_API开发者指南(高级)

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

[2008-07-09]Google Earth API开发者指南(高级)(2008-07-10 12:43:39)标签:google earth开发应用财经分类:学海拾贝

感慨:Google Earth真是一个好东东,而其爱好者更是天才啊。我们与老美在科技上的差距,不是我们以环境、资源为代价的粗放式快速增长的GDP所能掩盖的。

Google Earth API开发者指南(高级)

---摘自Godeyes

创建地面覆盖

地面覆盖,允许您在Google Earth的地表上放置图像。其中,图像源自网络,图片的URL 包含在“Icon”对象内。

var groundOverlay = ge.createGroundOverlay( );

groundOverlay.setIcon(ge.createIcon( ))

groundOverlay.getIcon().

setHref("/intl/en_ALL/images/logo.gif");

groundOverlay.setLatLonBox(ge.createLatLonBox( ));

var center = ge.getView().copyAsLookAt(ge.ALTITUDE_RELATIVE_TO_GROUND);

var north = center.getLatitude() + .85;

var south = center.getLatitude() - .85;

var east = center.getLongitude() + .55;

var west = center.getLongitude() - .55;

var rotation = 0;

var latLonBox = groundOverlay.getLatLonBox();

latLonBox.setBox(north, south, east, west, rotation);

ge.getFeatures().appendChild(groundOverlay);

此例中,Google的logo被叠放在加州总部山景城的位置。

地面覆盖的特点是始终吸附在地表,无论图像放在山脉还是河谷,如下图所示:

创建屏幕覆盖

屏幕覆盖是指图片固定在屏幕上,不像地面覆盖那样跟随地表起伏而变化。屏幕覆盖通常用来做logo、商标、图例等,其长宽尺寸由size属性决定。图像位置(screenXY属性)由图中的安置点(overlayXY属性)控制,其旋转角度由rotationXY属性决定。下列代码将用Google标志图来创建一个屏幕覆盖,并倾斜一定角度。

var screenOverlay = ge.createScreenOverlay( );

screenOverlay.setIcon(ge.createIcon( ));

screenOverlay.getIcon().

setHref("/intl/en_ALL/images/logo.gif");

// Set screen position in pixels

screenOverlay.getOverlayXY().setXUnits(ge.UNITS_PIXELS); screenOverlay.getOverlayXY().setYUnits(ge.UNITS_PIXELS); screenOverlay.getOverlayXY().setX(400);

screenOverlay.getOverlayXY().setY(200);

// Rotate around object s center point

screenOverlay.getRotationXY().setXUnits(ge.UNITS_FRACTION); screenOverlay.getRotationXY().setYUnits(ge.UNITS_FRACTION); screenOverlay.getRotationXY().setX(0.5);

screenOverlay.getRotationXY().setY(0.5);

// Set object s size in pixels

screenOverlay.getSize().setXUnits(ge.UNITS_PIXELS); screenOverlay.getSize().setYUnits(ge.UNITS_PIXELS); screenOverlay.getSize().setX(300);

screenOverlay.getSize().setY(75);

// Rotate 45 degrees

screenOverlay.setRotation(45);

ge.getFeatures().appendChild(screenOverlay);

效果如下图所示:

样式地图

样式地图在一般情况为地标下提供两种状态:普通状态和高亮状态,分别由两种图标来表示,当用户在Google Earth中用鼠标在地标图案上经过时,图案会自动切换至高亮状态。

下例代码中,地标在普通状态时,图案为三角形,当鼠标在地标上方经过时,其图案变为矩形。

map = ge.createStyleMap( styleMap + counter);

// Create icon normal for style map

normal = ge.createIcon( );

normal.setHref( /mapfiles/kml/shapes/triangle.png ); iconNormal = ge.createStyle( styleIconNormal + counter);

iconNormal.getIconStyle().setIcon(normal);

? // Create icon highlight for style map

highlight = ge.createIcon( );

highlight.setHref( /mapfiles/kml/shapes/square.png ); iconHighlight = ge.createStyle( styleIconHighlight + counter);

iconHighlight.getIconStyle().setIcon(highlight);

相关文档
最新文档