搜狐地图开发文档.doc_第1页
搜狐地图开发文档.doc_第2页
搜狐地图开发文档.doc_第3页
搜狐地图开发文档.doc_第4页
搜狐地图开发文档.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

LSPLSPLSP 应用开发指南应用开发指南应用开发指南 Go2masp Go2masp Go2masp LSPLSPLSP ClientClientClient Developer sDeveloper sDeveloper s GuideGuideGuide 版权所有 C 2005 2008 搜狗信息有限公司 MIP 客户端开发指南 搜狗信息有限公司 1 目目 录录 1引言引言 2 1 1编写目的 2 1 2预期读者 2 2术语术语 3 3LSP 应用开发示例应用开发示例 3 3 1地图应用的 HELLO WORD 3 3 2显示地图 4 3 3加载模块 4 3 4添加控制 5 3 5事件侦听 5 3 6移到指定点 5 3 7添加对象 5 3 8模块开发 7 3 9部署 8 MIP 客户端开发指南 搜狗信息有限公司 2 1 1 引言引言 1 11 1 编写目的编写目的 本文档对基于 Go2map LSP 开发的 B S 架构的地图应用进行了系统的介绍 以帮助程 序员更好的理解 Go2map LSP 的应用开发 从而能够开发出自己的地图应用系统 1 21 2 预期读者预期读者 Go2map LSP 应用开发和维护人员 开发和维护人员需掌握以下知识 精通 DHTML 精通 JavaScript 了解 javascript 面向对象的编程 了解 CSS MIP 客户端开发指南 搜狗信息有限公司 3 2 2 术语术语 Go2map LSP Go2map 位置服务平台 客户端 客户端 为用户提供地图应用的程序 它负责向地图引擎发出地图服务请求消息 并接收地图服务应答消息 可以是因特网浏览器程序也可以是其它程序 MapService 即地图服务 表示一个具体的地图功能 如地图放大 范围查询等 不同的 MapService 代表不同的地图功能 有不同的请求消息参数和应答消息参 数 例如 EntireMap 服务将执行显示全图功能 为完成一个地图服务 包括两 个步骤 服务请求和服务应答 客户端向地图引擎发出服务请求 地图引擎接收 到服务请求消息后进行相应的处理 然后将处理结果 即服务应答消息 返回给 客户端 地图应用客户端与地图引擎之间的信息交互是通过 WMSP 协议来完成 的 3 3 LSPLSP 应用开发应用开发示例示例 3 13 1 地图应用的地图应用的 HelloHello wordword 以下是一个最简单的应用开发示例 将创建一个 800 500 的地图区域 并显示地图 Go2map LSP API Example 打开 应用开发示例 的压缩包中的 helloworld htm 可以看到以上代码 要开发地图应用 首先需要添加一个 script 标记 加入这个 script 标记就添加了 LSP 客户端基础类库 另 script 标记的属性 modules 可以要来指定要加载功能模块 script 标记的属性 sect 用来指定是否要分段下载代码 默认是 false 后面有详细的介绍 地图需要显示在一个 div 网页元素中 这个 div 网页元素的需要一个 ID 如 map 可 以通过 style 属性或者 css 来控制 div 网页元素的大小重而设置地图的大小 MIP 客户端开发指南 搜狗信息有限公司 4 3 23 2 显示地图显示地图 上面的 Hello World 中有以下代码 var m new MapClient document getElementById map m setAppId 1361 m createMapArea var entiremap new EntireMapOperation m entiremap submit 以上代码创建地图区域并显示初始化的地图 第一行 创建一个 MapClient 对象 第二行 设置要访问的城市地图的 ID 如无特殊要求 可以省略可以省略 第三行 创建地图区域 第四行 创建一个EntireMapOperation 对象 第五行 向服务器提交请求 装载地图 3 33 3 加载模块加载模块 客户端类库的支持功能的扩展 可以开发自己的功能模块 然后加载进去 目前已经有很 多功能模块 可以根据需要进行加载 没用到的模块就不必下载 以减少下载的代码量 要加载模块只要在加载基础类库的 script 标签上加modules属性即可 比如 加载 zoomin 和 zoomout 模块 为方便升级和管理 每个模块都有版本号 加载时的格式为 示例如下 以上的示例是基础类库和功能模块同时加载 在某些应用中 为了在最短的时间内看到地图 可以使用分段下载的模式 分段下载是指先下载基础类库 而指定的功能模块暂时不下载 初始化完地图区域后 再 继续下载和初始化功能模块 要分段下载先在加载基础类库的 script 标签上加sect属性 取值为 true 或 false sect 属性可以省略 省略时默认是 false 即不不分段下载 示例 添加 sect true 之后 功能模块就不暂时下载了 那么就要在合适的时机 如 初始化完 地图区域后 通知继续下载 通过添加以下方式来实现 为了兼容 firefox 加载模块必须指定一个新的 script 标签 需要添加如下代码 注意 script 标签都增加了 id 属性 在初始化完地图区域后执行以下代码 注 当 sect false 时 以下代码无效 var obj document getElementById scriptloader1 定义回调 obj onModulesLoaded function alert 模块装载完毕回调 装载其他脚本代码 loadOtherScripts 装载模块 参数用来指定装载器 obj loadModules document getElementById scriptloader2 注意 其中的 scriptloader1 和 scriptloader2 对应 script 标签的 id 详细例子请打开 应用开发示例 的压缩包中的 dynamicload htm MIP 客户端开发指南 搜狗信息有限公司 5 3 43 4 添加控制添加控制 再添加控制之前 需先添加模块 这是 3 1 中的 script 标记 需要在 modules 中增加相应的模块 如 component 2 0 则 增加后为 然后就可以添加控制了 以下添加了 8 个方向箭头 var m new MapClient document getElementById map var panArrow new PanArrow m 注意注意 如果你要添加的控制不在 component 模块中 则添加的是其他模块 而不是 component 详细例子请打开 应用开发示例 的压缩包中的 controls htm 3 53 5 事件侦听事件侦听 LSP 客户端的大部分接口是事件驱动的 所以事件侦听在 LSP 客户端中很重要 var m new MapClient document getElementById map Event addListener m sdschange function a sds alert 发生 sdschange 事件 var entiremap new EntireMapOperation m entiremap submit 以上例子是当发生 sdschange 事件时 弹出一个信息对话框 注意 注意 事件侦听是要在该事件发生前绑定 不能等事件已经发生了才绑定侦听 如 sdschange 事件一定要在第一次提交 如 EntireMap 到服务器前侦听 详细例子请打开 应用开发示例 的压缩包中的 event htm 3 63 6 移到指定点移到指定点 有时打开地图时需要自动将地图的中心移到某个地方 var m new MapClient document getElementById map Event addListener m sdschange function a sds m coordRecenterTo 15960000 4251000 3 x y zoomLevel var entiremap new EntireMapOperation m entiremap submit 详细例子请打开 应用开发示例 的压缩包中的 resetcenter htm 3 73 7 添加对象添加对象 添加点对象 var m new MapClient document getElementById map Event addListener m sdschange function a sds m map addPoint 11312000 4760000 我添的点 var entiremap new EntireMapOperation m entiremap submit 详细例子请打开 应用开发示例 的压缩包中的 addpoint htm 添加线对象 MIP 客户端开发指南 搜狗信息有限公司 6 var m new MapClient document getElementById map Event addListener m sdschange function a sds var points new Array points push new Point 11312000 4760000 points push new Point 12312000 4860000 points push new Point 13312000 4560000 points push new Point 10312000 4060000 m map addLine points 我添的线 var entiremap new EntireMapOperation m entiremap submit 详细例子请打开 应用开发示例 的压缩包中的 addline htm 批量添加对象 可从数据库中取数据 经过组织成约定的格式批量装载 约定的数据格式为 其中一个 Feature 节点表示一个对象 Feature 可为 1 个或多个 注意注意 节点名称首字母大写 属性全部小写 var m new MapClient document getElementById map Event addListener m sdschange function a sds var data 9380000 3108000 9380000 4508000 10780000 4508000 10780000 3108000 m map loadDataXML data var entiremap new EntireMapOperation m entiremap submit 详细例子请打开 应用开发示例 的压缩包中的 addfeature htm MIP 客户端开发指南 搜狗信息有限公司 7 3 83 8 模块开发模块开发 在前面的例子中提到添加某某模块 即在 script 标记中的属性 modules 中添加模块的名称 和版本 如 entiremap 2 0 大部分模块是已经开发好的 直接添加使用就可以 如果有新的功能 而目前的类库还没 有提供 该怎么办 那么就要自己开发新模块了 模块分两种 一种是组件类型的 另一种是地图服务类型的 组件类型的主要时用于控制 如 漫游箭头和鱼骨头之类的 只要创建一个新类即可 就不多叙述 地图服务类型 的要与地图区域的事件或者通过协议与服务器交互 则需要继承指定的超类 MapOperation 类 实现相应的接口 如果通过协议与服务器端交互 还要新建一个类来继承 WmspVariant 类 拿 entiremap 这个模块来举例 entiremap 是需要向服务器请求初始化信息的 就要创建 2 个类 第 1 个类 EntireMapVariant 继承 WmspVariant function EntireMapVariant extends MapService class this base WmspVariant this base 第 2 个类 EntireMapOperation 继承 MapOperation function EntireMapOperation a mapClient extends this base MapOperation this base private property var mapServiceName map EntireMap var mapClient a public method this submit function isFakeStatic var a mapClient var b new EntireMapVariant b setUserInfo a getUserInfo b setAPPID a getAppId b setSPInfo a getSpInfo var c new MapRequest mapServiceName b a submit c this false null isFakeStatic Event trigger this submit this mapWindowCallback function a b this mapResultCallback function a mapResultFactory 出错信息 var b a getResult ErrorMessage if b Event trigger this errormessage b Ev

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论