当前位置:文档之家› GoogleMaps二次开发

GoogleMaps二次开发


息输入系统” 中, 这样便可以制作出功能齐全的 Authorware 课 件。 成果模板的优势主要体现在以下几点:
(1) 树型结构, 清晰、 易操作。 事实上, 树型结构是最容 易被理解的一种知识结构, 同时也是最容易被人控制的一种结 构。 选择这样一种方式来呈现知识点, 会带来更有逻辑的课堂 节奏。 而且, 本课题中的 “树型结构控制区” 功能是完全兼容 “线性结构” 操作方式的。 因此, 这种显示结构是非常有优势 的。 而且, 本课题成功地完成了在树型结构下实现文本的输入
CallSprite (@"treeview",#callstring,"SelectedItem (Nodes.Item ('" ^indexlight^"'))") GoTo(IconID@"调出页面设置 2")
(3) 同样在删除节点的时候, 也要注意页码的设置, 还有 就是被删除页的子页面, 其生成页要变成生成页的生成页, 只 有这样才能保证结构树的连续性, 否则, 在读取的时候, 在断 开处向下的节点都无法读取。 还有书签, 如果书签大于了删除 后的总页数, 也要对书签的值进行修改。 由此可见, 这里的每 一个变化都是有很多联系的, 要一一处理好。
通过二次开发, 可以在 Google 卫星地图 上 添 加 表 单 、 提 示 、链 接 、 滚 动 字 幕 、flash 等 。 方 法 是 通 过 Google map API 定 义 G_USER_INF 类 , 继 承 GOverlay 类 , 并 放 于 G_MAP_MARKER_MOUSE_TARGET_PANE 层。 在 G_USER_INF 实例容器中放 (下转第 86 页)
4 二次开发实例
4.1 修正 Google Maps Google Maps 地 理 信 息 间 隔 一 定 的 时 间 就 要 更 新 , 有 些 区
域 的 地 图 甚 至 是 3、 4 年 前 的,明 显 和 现 实 不 符 , 这 就 需 要 对 Google Maps 修正。
4.2 增加用户交互 Google 卫星地图有立体感和真实感,但是缺乏用户的交互。
(3) 分析功能。 Google Maps 可 以 实 现 距 离 测 量 、 最 近 分
析、 路径分析等空间分析功能。
3 二次开发基础
Google Maps 提 供 的 地 图 服 务 并 不 能 满 足 所 有 行 业 的 具 体 要求, 所以需要对 Google Maps 二次开发。 Google Maps 二次开 发 就 是 在 Google 地 图 服 务 的 基 础 上 , 使 用 Google Map API 和 DOM, 加 载 企 业 地 理 信 息 、 增 加 用 户 交 互 、 修 正 Google 地 理 信 息 。 以 达 到 满 足 企 业 具 体 需 求 的 目 的 。 Google Maps 二 次 开 发模型如图 1 所示, 下面介绍二次开发需要使用的 Google Map API 和 DOM。
GRAPHICS PROGRAM
图形图像处理
Google Maps 二次开发
何洪磊 王 芳
摘 要: Web GIS 应用逐渐普及, 但独立开发和运营 Web GIS 系统对中小企业负担太重。 获取既 经 济 又 可 行 的 效 果 。 文 中 讨 论 基 于 Google Maps API 使 用 DOM 自 定 义 GMAP 类 开 发 企 业 Web GIS。 关键词: Web GIS; Google Maps; 二次开发
(1) GMaps 对象。 用于实现创建和控制地图等最基本的功 能, 是 Google Map API 中最重要的一个对象, 该对象包含的类 方法相当丰富, 如 setCenter ()、 panTo ()、 setMapType () 等。
(2) GControl 控件。 对地图进行操 控 的 一 组 对 象 的 总 称 , 包 括 : GLargeMapControl、 GSmallMapControl、 GSmallZoomCon-
Google Maps 二次开发使用的是 HTML DOM , HTML DOM 把 HTML 文档呈现为带有元素、 属性和文本的树结构, 如图 2 所示。
function G_USER_MAP (point, url) { this.point_ = point; this.url _ = url;
类 G_USER_MAP 的定义如下:
DOM 表 示 文 档 对 象 模 型 (Document Object Model), 是 一 个 规 范 , 一 种 World Wide Web Consortium (W3C) 标 准 。 因 此, 所有现代 Web 浏览器都支持 DOM。 虽然不同的浏览器有 一些区别, 但如果使用 DOM 核心 功 能 并 注 意 少 数 特 殊 情 况 和 例外, DOM 代码就能以同样的方式用于任何浏览器。
} G_USER_MAP.prototype = new GOverlay(); G_USER_MAP.prototype.initialize = function(map) {
… map.getPane(G_MAP_MAP_PANE).appendChild(user); this.map_ = map; er_ = user;20Fra bibliotek0. 9 69
电脑编程技巧与维护
实用第一 智慧密集
trol、 GMapTypeControl 和 GScaleControl。
Google 地 图 分 多 个 层 次 , 自 下 到 上 分 为
( 3) GMarker 地 标 。 用 于 标 记 地 图 位 置 的 对 象 , 是 除 G_MAP_MAP_PANE(最底部的地图), G_MAP_MARKER_SHAD-
(4) GInfoWindow 对象 。 用于提供信息窗口的对象 , 信息 G_MAP_MARKER_MOUSE_TARGET_PANE (捕捉鼠标响应层)、
显示内容不仅可以使用简单的文本, 还可以使用 HTML。
G_MAP_FLOAT_PANE(信 息 窗 口 层 )。
( 5) GPolyline 和 GPolygon 对 象 。 GPolyline 折 线 对 象 和
在此讨论如何在 Google Maps 平台, 基于 Google map API、 DOM、 自定义 GMAP 类 , 根 据 自 己 企 业 的 特 点 进 行 二 次 开 发 , 例如增加用户交互、 地图修正。
2 概述
2005 年 4 月, Google 正式推出 Google Maps , 它以矢量地 图、 卫星影像、 混合 3 种服务模式向全球提供地图搜索和逐级 缩 放 功 能 的 地 图 服 务 。 为 了 使 Google 地 图 服 务 得 到 更 广 泛 的 应用, 2005 年 6 月 29 日, Google 对 外 提 供 了 便 于 二 次 开 发 的 开 放 式 地 图 服 务 应 用 程 序 接 口 ( Google Maps API), 允 许 开 发 者在程序中嵌入 Google Maps 强大功能,从而让全世界对 Google Maps 有 兴 趣 的 人 能 够 自 行 开 发 Google Maps 服 务 。 Google Maps 的特点如下:
图片叠加到 Google 地图上, 效果如图 4。
W3C 为 DOM 定义了几种语言绑定。 一种语言绑定就是为 特 定 语 言 定 义 的 让 使 用 者 使 用 DOM 的 API, 比 如 , 可 以 使 用 为 C、 Java 和 JavaScript 定 义 的 DOM 语 言 绑 定 。 因 此 可 以 从 这 些 语 言 中 使 用 DOM。 因 为 多 数 异 步 应 用 程 序 开 发 都 需 要 编 写 在 Web 浏 览 器 中 运 行 的 JavaScript 代 码 , 所 以 Google Maps 二 次 开 发 使 用 JavaScript 的 DOM 绑 定 。 使 用 JavaScript 和 DOM 可以即时修改用户界面、 响应用户事件和输入等等。
对 于 Google Maps 修 正 ,通 过 自 定 义 G_USER_MAP 类 将 正
GPolygon 多边形对象分别用于地图标记指定的路线和区域, 这 确的地理图片放到 G_MAP_MAP_PANE 层, 并覆盖到原来的地
两个对象的类属性和类方法极为相似, 主要应用方向也相同。
理位置。
3.2 DOM
… } G_USER_MAP.prototype.remove = function() { er_.parentNode.removeChild(er_); }

下面是 Google Maps 修正实例, 图 3 是某市区的矢量地图,
有 一 条 步 行 街 没 有 标 出 , 通 过 G_USER_MAP 类 将 正 确 的 地 图
(1) 地图操作。 Google Maps 的 地 图 操 作 简 单 , 主 要 有 移 动 、 自由缩放。
(2) 地图预生成。 地图并不是根据用户的请求动态生成, 而是预先处理成图片金字塔,切块后做四叉树编码,存放在服务 器端。 当地图窗口发生移动、 缩放时,只需要下载新的图片来 填充新的区域,在此充分利用了浏览器的多线程同时下载的功 能。 另外,下载过的图片无需再次访问服务器重新下载。
GMap2 对 象 外 API 中 最 重 要 的 一 个 对 象 , 许 多 基 本 功 能 , 如 OW_PANE ( 地 标 的 影 子 )、G_MAP_MARKER_PANE ( 地 标 )、
指示位置、 显示信息等都必须依赖 GMarker 对象。
G_MAP_FLOAT_SHADOW_PANE ( 信 息 窗 口 的 影 子 )、
相关主题