罗孚学堂
用户956
地图导航
分享
[20111102]分享一个WebMap引擎(MapBar)
输入“/”快速插入内容
[20111102]分享一个WebMap引擎(MapBar)
这个WebMap的引擎实则我早就(2006年初)
分享
过了,只是当时也没有人注意。08年的时候,我还用这个引擎为别人做过项目,只是当时付了我八成的费用后一拖再拖就不了了之了,后来再回头找到我的时候我也不搭理他们了。时过境迁,又是三个年头(11年都快结束了)过去了,今天在移动硬盘里竟然无意看到了这个当年的项目,简单的看了一下代码,竟然还能用,加上文档比较健全,所以简单整理一下后打包分享给大家。
这个WebMap引擎实际上是MapBar早年的引擎,当年写出这样的引擎来应该说是非常牛的,现在看来也许已经不怎么先进了,而且现在MapBar的技术也应该进步了不少,Baidu的地图应该有MapBar不小的功劳。这个引擎基本上能够满足我们基本的需求,更高级的能够实现像Google的或者Baidu式的开放
API
引擎差距不小,性能和规范性不佳,但作为项目作为简单的研究和应用应该是足够的。具体的来看,有以下几大功能:
常用功能:放大、缩小、拉框放大、拉框缩小、移动、测距
通过经纬度添加Point
设置地图中心、获取地图中心
移除地图上所有对象
设置地图层级、获得地图当前层级
地图自动缩放至经纬度区域范围
在地图上手动标注一个Point
拉框查看所拉框矩形的范围并回调callback函数
显示line
看我提供的截图:
基于以上的功能,结合起来使用则可以实现更多的应用(文档中有具体实例分析)。
文件我已经全部打包,下载地址:
http://sharesh.googlecode.com/files/WebMapEngine_MapBar.zip
,欢迎大家下载使用,欢迎分享交流并改进。
详细说明如下(以下内容已经保存到压缩包的word文档中):
WEBMAP引擎使用说明
一,文件列表
Images目录:需要用到的图片文件
Js
目录:主要的JS和CSS文件,核心内容
config.js:引擎参数设置
css.css:引擎调用部分的CSS文件,控制外观
graphics.js:FireFox兼容文件
include.js:主
JS
文件
map.htm:地图页面,直接地图内容页面或者作为iframe框架调用页面
Index.html:Demo页面,列举了绝大部分功能的实现
MapPicURLlist.exe:获取地图图片路径的辅助工具
二,开始使用WEBMAP引擎
如果直接使用地图内容页面,即将地图直接嵌入到网页中,说明如下:
新建一个
html
页面或者动态页面,HTML代码需要注意的地方有:
1,<!DOCTYPE
html
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "
http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd
">此内容不需要,否则会造成地图引擎的失败;
2,<
html
xmlns="
http://www.w3.org/1999/xhtml
">此内容需要更改为:
<html xmlns:v="urn:schemas-microsoft-com:vml">
3,在<
html
>下需要增加
<style>
v\:* { behavior: url(#default#VML); }
</style>
此部分为VML支持
题外话:由于CSS和
JS
文件均采用UTF-8编码,所以建议将页面语言也设置为UTF-8编码,否则会造成显示不正常。如果改用GB2312等编码,则需要打开所有CSS和JS文件并另存为相应编码格式的文件才能调用。相关网页语言定义如下:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<meta http-equiv="Content-Language" content="UTF-8" />
4,插入CSS和
JS
<link href="js/css.css" rel="stylesheet" type="text/css">
<script language="javascript" src="js/config.js"></script>
<script language="javascript" src="js/include.js"></script>
graphics.js文件由于在include.js文件中嵌入,所以不需要在此处插入。
!!!5.显示地图(调用地图引擎显示地图)
在body的任意处加入如下
JS
代码
<script language=javascript>
var maplet = new AVMaplet(39.90894606, 116.368281, 4, 600, 480,0,0,"/images/marker.gif","baidu");
maplet.showMap();