新网创想网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
1)目前主流的都是混合开发,所以对团队、技术人员的要求比较高,需要掌握多种不同的技术(JAVA、Obejective-c、HTML5、JAVASCRIPT、CSS/CSS3),这种混合的开发模式。
专业领域包括成都做网站、成都网站设计、成都外贸网站建设、成都做商城网站、微信营销、系统平台开发, 与其他网站设计及系统开发公司不同,创新互联公司的整合解决方案结合了帮做网络品牌建设经验和互联网整合营销的理念,并将策略和执行紧密结合,为客户提供全网互联网整合方案。
2)混合应用是一种需要下载,但有部分或者所有用户界面植入了浏览器元素的应用程序。对用户来说,混合应用与原生应用并无二致—它们都需要通过应用商店渠道下载,都可以保存的在手机,运行方式与原生应用并无差别。但对开发者来说,这其中的差异却不容忽视,因为这意味着无需针对各个手机操作系统重新编写应用,而是可以选择用HTML、CSS和JavaScript编写其中一部分代码,并在多个平台上运行应用程序。
3)混合应用的HTML页面可通过网络服务器传送,但这一点并非必备条件。如果要提高运行性能,混合应用还可以植入一个包含其所需的网页资源(例如HTML、JavaScript、CSS和图像)的副本,以便用户快速访问内容,而不必等待网络服务器将内容传送过来。
4)混合应用必须通过应用商店下载。支持混合开发的javascript框架:SenchaTouch、jQueryMobile和dojox.mobile等JavaScript工具包。
从商业角度来看,尽早采用HTML5技术是最明智的做法。有些企业已经将HTML当作唯一可行的跨平台开发技术。
但在混合应用领域,PhoneGap库等开源框架却可以让JavaScript代码访问手机的罗盘、照相等功能成为可能,甚至可以搜索或创建联系人列表、约会安排等其他多种网页应用无法接入的手机功能。
作者:本站原创 文章来源:本站原创 点击数: language="javascript" src="/Article/GetHits.asp?ArticleID=320" type="text/javascript" 9194 更新时间:2006-10-22 9:43:30
罗盘的使用方法
大多数流派的风水师在堪察风水时都需要使用罗盘,它是风水师堪天舆地的重要工具。作为业余的玄空爱好者,懂得罗盘的基本用法,对于交流或咨询风水实际问题是很有必要的。无法准确说明风水实例的确切坐向,手头没有罗盘度量是一回事;有罗盘未能准确使用又是一回事。
度量阴宅的坐向,一般是站立在墓前双手持罗盘于腰间位置,当判断罗盘边线(有方形外框的)与墓碑正面处于垂直状态后,调整盘面使指针对准磁北点,以“天心十道”压住的前后度数则为山向度数,靠墓碑方为山,靠身体方为向。为了准确起见,最好从墓碑前开始测,再逐步后退多选一到两个点测定;如果墓碑光滑平整,则可以先把罗盘的边框平压在墓碑上,测定后在后退几步,检查一下是否一致。假如使用的是圆式罗盘,最好的办法象木工锯板或泥水工砌墙一样使用“定线法”,即先拉一条与墓碑垂直的纱线(一般用红纱线),再将罗盘平置于线的下端度量。当然,有方形外框的罗盘也可以用这种方法度量,不过费时一点,也得先准备一段纱线及固定线的辅助物。
读数时也要小心。假定在墓前测定,罗盘靠墓碑方“天心十道”的红线压在350.5度,靠身体方压170.5度(两者相差度数一定是180度),则此墓坐山350.5度、朝向170.5度,即壬山丙向兼子午,子午正针必定偏在右手方。若癸山丁向兼子午,子午正针必定偏在左手方。若罗盘上没有标示周天度数,则先找属何卦何山,再看压线何分金(一百二十分金)。当立子山午向在中位线上时,以周天度数看坐山为360度(0度),朝向为180度。壬山的中位线是345度,其癸亥分金中位线是351度,因此350.5度仍在壬山的癸亥分金内;但用癸亥分金已属兼卦即壬山丙向兼子午,必须用替。其六运星盘为到山到向格局。
六运 壬山丙向 兼子午
┌——┬——┬——┐
│31│76│58│
│ 五 │ 一 │ 三 │
├——┼——┼——┤
│49│22│94│
│ 四 │ 六 │ 八 │
├——┼——┼——┤
│85│67│13│
│ 九 │ 二 │ 七 │
└——┴——┴——┘
若六运癸山丁向兼子午,依中州玄空的观点并不用替,仍然用癸山丁向的星盘,为双星到向的格局。但兼线千万不要兼在“小空亡”线上。
六运 癸山丁向
┌——┬——┬——┐
│12│66│84│
│ 五 │ 一 │ 三 │
├——┼——┼——┤
│93│21│48│
│ 四 │ 六 │ 八 │
├——┼——┼——┤
│57│75│39│
│ 九 │ 二 │ 七 │
└——┴——┴——┘
文字罗盘的使用方法
罗盘是风水操作的重要工具,它的基本作用就是定向。在我们认识风水理气学问时,首先要学习以罗盘定向的基本方法。
罗盘学名为罗经,创自轩辕黄帝时代,后经过历代前贤,按易经及河洛原理,参以日月五星七政及天象星宿运行原则,再察地球上山川河流,平原波浪起伏形态,加以修正改良制造而成,用于测定方位和勘察地形,堪舆地师及海员大都称它为“罗盘”或“罗庚”,很少称为“罗经”。
说到罗盘的使用方法,如果是详细讨论的话,相信要花上好多篇幅。因为它包括的东西实在太多了,本篇只从简单使用方法来谈谈。
罗盘的种类很多,常用的有三元盘、三合盘、三元三合两用盘、易盘、玄空盘及各派所用户的独特盘。但无论是那门那派的罗盘,中间必有一层是二十四山方位的,从北方开始依次序排列分别是壬子癸、丑艮寅、甲卯乙、辰巽巳、丙午丁、未坤申、庚酉辛、戌乾亥等。共二十四个方位。如果你有一个指南针,你可以发觉罗盘与指针相对的度数如下:
方位 卦位 二十四山 角度
壬 337.5 - 352.5
正北 坎 子 352.5 - 7.5
癸 7.5 - 22.5
丑 22.5 - 37.5
东北 艮 艮 37.5 - 52.5
寅 52.5 - 67.5
甲 67.5 - 82.5
正东 震 卯 82.5 - 97.5
乙 97.5 - 112.5
辰 112.5 - 127.5
东南 巽 巽 127.5 - 142.5
巳 142.5 - 157.5
丙 157.5 - 172.5
正南 离 午 172.5 - 187.5
丁 187.5 - 202.5
未 202.5 - 217.5
西南 坤 坤 217.5 -232.5
申 232.5 - 247.5
庚 247.5 - 262.5
正西 兑 酉 262.5 - 277.5
辛 277.5 - 292.5
戌 292.5 - 307.5
西北 乾 乾 307.5 - 322.5
亥 322.5 - 337.5
清楚了二十四山的方向后,现在要看看罗盘的形状。
从罗盘的外形你可以看到,罗盘中央是一个圆形天池(即定向用的指南针)。外面是铜面黑底金字的活动转盘,称内盘或圆盘。盘上一圈圈的堆满着字,习惯上一圈叫做一层。其中有一层是二十四方位,最外是一方形盘身,称为外盘或方盘。盘身以花梨木制造的最为耐用,但重量比一般木制盘重。
外盘有四个小孔,分别有两根鱼丝或胶线以十字形穿于四边中间的小孔内,它是用来定坐向的。
罗盘的使用主要是中央的磁针,天池外的内盘是钢制的,天池底色一般是白色的,底部划有一红色直线,有一端是有两个红点在红线的左右,红线是以南北定位的,有红点的一方是子方(正北方),另一端是午方(正南方),上面有一根很灵敏的磁针,磁针有一端是有一个小孔的。
使用罗盘时,双手分左右把持着外盘,双脚略为分开,将罗盘放在胸腹之间的位置上,保持罗盘水平状态,不要左高右低,或者前高后低。然后以你的背靠为坐,面对为向,开始立向。
这个时候,罗盘上的十字鱼丝线应该与屋的正前、正后、正左、正右的四正位重合,如果十字线立的向不准,那么,所测的坐向就会出现偏差的了。
固定了十字鱼丝的位置之后,用双手的大拇指动内盘,当内盘转动时,天池会随之而转动。一直将内盘转动至磁针静止下来,与天池内的红线重叠在一起为止。
有一点是非常重要的,就是磁针有小孔的一端必须与红线上的两个小红点重合,位置不能互掉。这时显示坐向方的鱼丝线(是横的那一条)与内盘各层相交。我们要找寻的各种数据和资料,就显示在这条鱼丝线所穿越和涵盖的区域上。
然而,罗盘上有十多二十层,究竟那一层才是坐向呢?就是二十四山那一层了。它就在天池附近。鱼线向方上的那一个“山”,我们用它表示向,鱼丝坐方上的那一个“山”,我们用它表示坐。
譬如说,向山是子,坐山是午,我们便称之为坐午向子。
知道自己宅中的坐向后,将罗盘放在全屋的中心点,便可以由坐向求出全屋的
方位(或宫位)。
二、罗盘“三盘三针”的应用
1、地盘——用于立向——在太极点上置“指南针或罗盘”测出四面八方,阳宅太极点在宅中;阴宅太极点在坟顶中央。
2、人盘——用于消砂——看山峰、楼、树、墙、堆砌物、塔、烟囱等。
3、天盘——用于纳水——看水的来去或路的走向。如水、河、溏、池、井、厕所
(浊水)养鱼(动水)、门窗(动水)、路或平地(虚或假水)等。
三、八卦属性纳水法:
1、乾艮坤巽属木。
2、乙辛丁癸属土。
3、子午卯酉甲庚丙壬属火。
4、辰戌丑未属金。
5、寅申巳亥属水。
四、八卦属性:
1、木克土为财。
2、水生木为贵。
3、木见木为旺。
4、木生火为泄。
5、金克木为杀。
使用方法:
如坤山艮向兼未丑,坐丁未向丁丑分金,升卦四爻,变成卦“雷风恒卦”查《巨门八局抽爻换象》。坐山升卦四爻、变成“雷风恒卦”查断语即可。雷风恒、震八木、巽二木。此卦断:东厨得位、二木成林、功名利。田产兴、长男长女正配和顺、子贵孙贤、兄父分恭、富贵双全、科甲连绵。注:此卦断语可参阅(三合三元罗经用法大全414页《巨门八局抽爻换象》。
五、指南针使用方法
学习风水,必须知道楼宇的方向,现在便教大家利用指南针来测出八个方位。
指南针内的小磁针,是指着南北的,而在磁针的底都,印有一条直线及E、S、W 、N等字。
使用方法:
1、站在屋内的中心点,拿出指南针来。
2、然后令指南针内的磁针,与底部的直线重叠。
3、一般来说,比较优质的指南针有两种颜色,而磁针颜色与底部直线的颜色是一样的,这便是北方。
例如磁针的颜色是一半红色、一半黑色,而底部直线是红色,把磁针叠在直线上,因为底都是红色,磁针红色部分所指,便是北方了,而直线的开始有S字便是南方,有N字便北方,余下有W字便是西方,E字便是东方。
而磁针叠上直线后,亦可从度数推算方向。
┏━━━━┳━━━┳━━━━━━━━┓
┃ 方 位 ┃ 卦 位┃ 角 度 ┃
┣━━━━╋━━━╋━━━━━━━━┫
┃ 东 方 ┃ 震 ┃ 67.5—112.5 ┃
┣━━━━╋━━━╋━━━━━━━━┫
┃ 东 南 ┃ 巽 ┃112.5—157.5 ┃
┣━━━━╋━━━╋━━━━━━━━┫
┃ 南 方 ┃ 离 ┃157.5—202.5 ┃
┣━━━━╋━━━╋━━━━━━━━┫
┃ 西 南 ┃ 坤 ┃202.5—247.5 ┃
┣━━━━╋━━━╋━━━━━━━━┫
┃ 正 西 ┃ 兑 ┃247.5—292.5 ┃
┣━━━━╋━━━╋━━━━━━━━┫
┃ 西 北 ┃ 乾 ┃292.5—337.5 ┃
┣━━━━╋━━━╋━━━━━━━━┫
┃ 正 北 ┃ 坎 ┃337.5— 22.5 ┃
┣━━━━╋━━━╋━━━━━━━━┫
┃ 东 北 ┃ 艮 ┃ 22.5— 67.5 ┃
主流风水派别探微
1、八宅派风水的应用方法
2、三合派风水简论
3、金琐玉关风水应用方法
4、命理派风水的应用方法
5、玄空派风水简论
二、风水之形势学
1、峦头概说
2、形势与五行
3、形势与居住环境的影响
4、形势学的原理
5、居住环境在形势上的内外关系
6、居住环境在形势上的体用关系
7、水法的应用
8、形势之虚实、强弱、旺衰
9、形势之美恶、有情无情
10、形势之平衡说
11、相对平衡与绝对平衡
12、形势的体、相、用的关系
三、风水之理气学
1、河图与洛书
2、先天之气与后天之气
3、气与阴阳
4、三元九运
5、玄空理气法概说
6、飞星释义
7、按星诀
8、父母三般卦
9、内气法与外气法
10、玄空学之零正神
11、玄空学之城门诀
12、玄空学之七星打劫
13、玄空学之收山出煞
14、反吟与伏吟
四、形气合论
五、风水学实用操作基础
1、关于立向的问题
2、罗盘的使用方法
3、立极轨的用法
4、关于兼向与用替卦
5、风水的几大格局
6、选址的操作方法与步骤
7、对阳宅的布置方法与步骤
8、搂层的选择
9、关于宅命的配合
10、大环境、外环境与内环境的选择与布局
11、阳宅风水的推断、化灾与旺运
12、催财注意的问题
13、催官注意的问题
14、对学业有利的布置
15、风水布局三要素:宅与命、体与用、动与静
16、化灾物品
17、旺财物品
18、吉祥品所谓的开光
六、风水推断要点
1、阳宅要点:门、路、灶、床、(水)
2、年月飞星
3、关于择日
4、易理之体用、内外、虚实在风水推断中的应用
5、风水之“相”
由神秘到简单 教你在网页中添加微软地图
作者:站长收集教程来源:网络点击数:2更新时间:2005-12-17
自Google推出地图服务以后,微软和百渡也相继推出地图服务。地图成为目下网络流行的时尚,如果你想追赶它,那么来吧,我将会帮助你学会使用微软的Virtual Earth Map Control,为你的网站添加一道亮丽的风景。
本文最终效果图:
MapControl控件
Virtual Earth Map Control脚本可以在MSN网站下载:。
当然你可以直接在网站中链接这个脚本,但这会导致一些安全上的问题,因为缺省情况下大部分的浏览器不会允许来自其他的不是当前正在浏览的站点的JavaScript程序运行。使用者必须确认他们允许来自VirtualEarth的脚本运行,这样会给用户不爽的感觉。
简单的方式就是下载MapControl.js文件到你的站点,这样就可以轻松访问并进行编程了。
创建Map Control实例
为了创建一个Map Control实例,你需要在你的页面里写一个小方法。这将会创建一个MapControl的实例,在页面上放置它,并设置control里初始显示的内容。
VE_MapControl的构造函数原型如下:
VE_MapControl(Latitude, Longitude, Zoom, MapStyle, PositionType, Left, Top, Width, Height);
Latitude:在control里显示的地图中心的纬度;
Longitude:在control里显示的地图中心的经度;
Zoom:显示地图的缩放尺度。可以设置为2到18的数。2是允许的最远的俯瞰距离,18是允许的最近的俯瞰距离。
MapStyle:显示地图的风格。目前有3种式样可选:高空的(aerial),道路的(road)和混合的(hybrid)。用每种式样的首字母小写来代表该式样。
·a-aerial:显示高空的卫星图像。
·r-road:显示地区的街道地图;
·h-hybrid:显示以上两者的结合,卫星图像将和道路和位置信息重叠在一起。
PositionType:control在页面上的放置的方式,可选项为相对(relative)和绝对(absolute)。
Left:control左边在页面上的位置。
Top:control上部在页面上的位置。
Width:control宽度。
Height:control高度。
例子:
map = new VE_MapControl(32.69, -117.13, 12, ’r’, "absolute", 400, 10, 400, 300);
一个简单的具有Virtual Earth map control的页面可以如下创建:
<html>
<head>
<title>My Virtual Earth</title>
<script src="MapControl.js"></script>
<script>
var map = null;
function OnPageLoad()
{
map = new VE_MapControl(32.69, -117.13, 12, ’r’, "absolute", 10, 100, 700, 500);
document.body.appendChild(map.element);
map.onEndContinuousPan = function(e)
{
document.getElementById("info").innerHTML =
’Latitude = ’ + e.latitude +
’, Longitude = ’ + e.longitude +
’, Zoom=’ + e.zoomLevel;
}
}
</script>
</head>
<body onLoad="OnPageLoad()">
<div id="info" style="font-size:10pt">
</div>
</body>
</html>
效果图如下所示,你可以使用一些control的特性:
·拖动整个地图刷新显示
·使用鼠标滚轮进行缩放
·双击某个地点进行放大
从Map Control接收事件
当control上显示的地图变化的时候,map control会触发事件,事件提供了有关地图的相关信息。
你可以从control上获取的事件有:
· onStartContinuousPan
· onEndContinuousPan
· onStartZoom
· onEndZoom
· onMouseClick
· onMouseDown
· onMouseUp
所有的事件函数都传入一个参数。事件参数在MapControl.js这样被定义:
function VE_MapEvent(srcMapControl,latitude,longitude,zoomLevel)
{
this.srcMapControl=srcMapControl;
this.latitude=latitude;
this.longitude=longitude;
this.zoomLevel=zoomLevel;
}
纬度(latitude)和经度(longitude)表明了地图的中心位置。缩放尺度(zoomlevel)提供了可以缩放的尺度的量。
我们首先看到的是第一个event--载入事件(panning event)。每次地图开始或者停止载入或者卷动(scrolling)时都会触发此事件。当地图开始卷动时onStartContinousPan事件会触发,当map control停止卷动地图时onEndContinousPan事件会被触发。
我们可以给上一步中创建的简单页面增加一些代码,来处理onEndContinuousPan事件,显示当前map的中心信息。
代码如下:
<html>
<head>
<title>My Virtual Earth</title>
<script src="MapControl.js"></script>
<script>
var map = null;
function OnPageLoad()
{
map = new VE_MapControl(32.69, -117.13, 12, ’r’, "absolute", 10, 100, 700, 500);
document.body.appendChild(map.element);
map.onEndContinuousPan = function(e)
{
document.getElementById("info").innerHTML =’Latitude = ’ + e.latitude +
’, Longitude = ’ + e.longitude +
’, Zoom=’ + e.zoomLevel;
}
}
</script>
</head>
<body onLoad="OnPageLoad()">
<div id="info" style="font-size:10pt">
</div>
</body>
</html>
我们可以通过增加一个函数处理onEndZoom事件完成以上功能:
<html>
<head>
<title>My Virtual Earth</title>
<script src="MapControl.js"></script>
<script>
var map = null;
function OnPageLoad()
{
map = new VE_MapControl(32.69, -117.13, 12, ’r’, "absolute", 10, 100, 700, 500);
document.body.appendChild(map.element);
var updateInfo = function(e)
{
document.getElementById("info").innerHTML =’Latitude = ’ + e.latitude +’, Longitude = ’ + e.longitude +
’, Zoom=’ + e.zoomLevel;
}
map.onEndContinuousPan = updateInfo;
map.onEndZoom = updateInfo;
}
</script>
</head>
<body onLoad="OnPageLoad()">
<div id="info" style="font-size:10pt">
</div>
</body>
</html>
地图显示如下:
变换地图样式
上面我们已经介绍了有三种样式可以选择:
·a-aerial:显示高空的卫星图像。
·r-road:显示地区的街道地图;
·h-hybrid:显示以上两者的结合,卫星图像将和道路和位置信息重叠在一起。
当map control显示的时候,可以通过SetMapStyle函数来变换地图样式:
SetMapStyle(mapStyle)
函数通过mapStyle参数来设置式样,如上文所述,使用a,r或者h。
我们可以通过增加两个checkbox来允许用户改变地图样式:
<html>
<head>
<title>My Virtual Earth</title>
<script src="MapControl.js"></script>
<script>
var map = null;
function OnPageLoad()
{
map = new VE_MapControl(32.69, -117.13, 12, ’r’, "absolute", 10, 100, 700, 500);
document.body.appendChild(map.element);
var updateInfo = function(e)
{
document.getElementById("info").innerHTML = ’Latitude = ’ + e.latitude + ’, Longitude = ’ + e.longitude +
’, Zoom=’ + e.zoomLevel;
}
map.onEndContinuousPan = updateInfo;
map.onEndZoom = updateInfo;
}
function ChangeMapStyle()
{
var Aerial = document.getElementById("AerialStyleCheck");
var Vector = document.getElementById("VectorStyleCheck");
var s = ’r’;
if (Aerial.checked Vector.checked)
{
s = ’h’;
}
else if (Aerial.checked)
{
s = ’a’;
}
map.SetMapStyle(s);
}
</script>
</head>
<body onLoad="OnPageLoad()">
<div id="info" style="font-size:10pt">
</div>
<div id="MapStyle" style="POSITION:absolute;LEFT:470px;TOP:60px">
<input id="VectorStyleCheck" type="checkbox" onclick="ChangeMapStyle()" checked="checked">
Street Style
<input id="AerialStyleCheck" type="checkbox" onclick="ChangeMapStyle()">
Aerial Style
</div>
</body>
</html>
效果如下:
给地图增加图钉(pin)标记
增加图钉标记的功能允许我们在map control上指出特殊位置。图钉在map control上显示覆盖的信息。AddPushpin方法的原型如下:
AddPushpin(id,lat,lon,width,height,className,innerHtml)
id:图钉的标识符。在map control上每个图钉都具有唯一的标识号。
lat:放置图钉的地点的纬度。
lon:放置图钉的地点的经度。
width:图钉的宽度。
height:图钉的高度。
width和height使用来计算图钉的偏移,使得图钉可以放置到指定的经纬度。
提示:如果你希望使得图钉的底部右脚处于指定的经纬度,你需要将这些值乘2:
Classname:图钉的样式类型(style class)的名称。如果没有这个参数图钉不会显示。样式可以通过CSS文件描述或者通过嵌入式的代码描述。
innerHTML:显示在图钉上的文字。
下面的例子中,使用onMouseClick事件,当用户点击的时候给点击处增加一个图钉:
<html>
<head>
<title>My Virtual Earth</title>
<style type="text/css" media=screen>
<!--
.pin
{
width:44px;height:17px;
font-family:Arial,sans-serif;
font-weight:bold;font-size:8pt;
color:White;overflow:hidden;
cursor:pointer;text-decoration:none;
text-align:center;background:#0000FF;
border:1px solid #FF0000;
z-index:5;
}
-->
</style>
<script src="MapControl.js"></script>
<script>
var map = null;
function OnPageLoad()
{
map = new VE_MapControl(32.69, -117.13, 12, ’r’, "absolute", 10, 100, 700, 500);
document.body.appendChild(map.element);
var updateInfo = function(e)
{
document.getElementById("info").innerHTML = ’Latitude = ’ + e.latitude + ’, Longitude = ’ + e.longitude +
’, Zoom=’ + e.zoomLevel;
}
map.onEndContinuousPan = updateInfo;
map.onEndZoom = updateInfo;
map.onMouseClick = function(e)
{
map.AddPushpin(’pin’, e.latitude, e.longitude, 88, 34, ’pin’, ’MyPin’);
}
}
function ChangeMapStyle()
{
var Aerial = document.getElementById("AerialStyleCheck");
var Vector = document.getElementById("VectorStyleCheck");
var s = ’r’;
if (Aerial.checked Vector.checked)
{
s = ’h’;
}
else if (Aerial.checked)
{
s = ’a’;
}
map.SetMapStyle(s);
}
</script>
</head>
<body onLoad="OnPageLoad()">
<div id="info" style="font-size:10pt">
</div>
<div id="MapStyle" style="POSITION:absolute;LEFT:470px;TOP:60px">
<input id="VectorStyleCheck" type="checkbox" onclick="ChangeMapStyle()" checked="checked">
Street Style
<input id="AerialStyleCheck" type="checkbox" onclick="ChangeMapStyle()">
Aerial Style
</div>
</body>
</html>
这样会导致一些问题:
·每次地图被拖动时,另外一个图钉被增加。
·双击地图进行放大的功能无法完成,因为每次接收到双击事件,图钉首先会被增加。
·单个标识符可以增加多个图钉。
一个解决方案是对onMouseClick事件进行特殊处理,我们可以每次增加一个图钉的时候移除以前的图钉。
使用RemovePushpin函数移去一个图钉:
RemovePushpin(id);
这个函数通过传入的id标识符来去除某个图钉。
去除一个图钉也会同时移去所有相同标识符的图钉。
上文中的代码可以修改以移去以前所有的图钉:
map.onMouseClick = function(e){
map.RemovePushpin(’pin’);
map.AddPushpin(’pin’, e.latitude, e.longitude, 88, 34, ’pin’, ’MyPin’);
}
这样就只有一个图钉来标明上次点击的位置:
增加导航Control
map control有一些内在的导航特性,但是有些时候需要提供一些额外的control在web页面上来允许用户来控制地图的导航。下面我们介绍如何在web页面上增加按钮来控制地图的显示。
载入
我们首先为地图的移动增加按钮。在HTML的Body元素中可以增加一些简单的HTML代码:
<input type="button" value="Pan Up" onclick="DoPanUp()" style="position:absolute;left:60px;top:600px;"/>
<input type="button" value="Pan Left" onclick="DoPanLeft()" style="position:absolute;left:10px;top:630px;"/>
<input type="button" value="Pan Right" onclick="DoPanRight()" style="position:absolute;left:100px;top:630px;"/>
<input type="button" value="Pan Down" onclick="DoPanDown()" style="position:absolute;left:45px;top:660px;"/>
下面增加对点击按钮的事件进行处理的脚本段。使用PanMap方法。它可以接受2个参数,x和y。它们指出了在x和y方向上可以移动多少位置。
function DoPanUp()
{
map.PanMap(0, -100);
}
function DoPanDown()
{
map.PanMap(0, 100);
}
function DoPanLeft()
{
map.PanMap(-100, 0);
}
function DoPanRight()
{
map.PanMap(100, 0);
}
如果你在浏览器里进行浏览,并且点击按钮,你会发现地图在一次次的跳跃。这样的用户体验可不好。最好是使得地图在各个方向上慢慢的平滑卷动。可以使用ContinuousPan函数来控制。除了x和y之外,它还接受一个参数,这个参数指定了进行平滑卷动的次数。这样可以指定多次的移动来提供地图平滑卷动的效果。
function DoPanUp()
{
map.ContinuousPan(0, -10, 20);
}
function DoPanDown()
{
map.ContinuousPan(0, 10, 20);
}
function DoPanLeft()
{
map.ContinuousPan(-10, 0, 20);
}
function DoPanRight()
{
map.ContinuousPan(10, 0, 20);
}
缩放
下面增加两个按钮用于缩放:
<input type="button" value="Zoom In" onclick="DoZoomIn()" style="position:absolute;left:250px;top:630px;"/>
<input type="button" value="Zoom Out" onclick="DoZoomOut()" style="position:absolute;left:340px;top:630px;"/>
下面的代码实现ZoomIn和ZoomOut函数,每个函数给缩放尺度增或者减1。
function DoZoomIn() { map.ZoomIn(); }function DoZoomOut() { map.ZoomOut(); }
如果你按照上面所说进行编程,那么你的页面和文中开始的图是基本类似的。完整代码如下:
<html>
<head>
<title>My Virtual Earth</title>
<style type="text/css" media=screen>
<!--
.pin
{
width:44px;height:17px;
font-family:Arial,sans-serif;
font-weight:bold;font-size:8pt;
color:White;overflow:hidden;
cursor:pointer;text-decoration:none;
text-align:center;background:#0000FF;
border:1px solid #FF0000;
z-index:5;
}
-->
</style>
<script src="MapControl.js"></script>
<script>
var map = null;
function OnPageLoad()
{
map = new VE_MapControl(32.69, -117.13, 12, ’r’, "absolute", 10, 100, 700, 500);
document.body.appendChild(map.element);
var updateInfo = function(e)
{
document.getElementById("info").innerHTML =
’Latitude = ’ + e.latitude +
’, Longitude = ’ + e.longitude +
’, Zoom=’ + e.zoomLevel;
}
map.onEndContinuousPan = updateInfo;
map.onEndZoom = updateInfo;
map.onMouseClick = function(e)
{
map.RemovePushpin(’pin’);
map.AddPushpin(’pin’, e.latitude, e.longitude, 88, 34, ’pin’, ’MyPin’);
}
}
function ChangeMapStyle()
{
var Aerial = document.getElementById("AerialStyleCheck");
var Vector = document.getElementById("VectorStyleCheck");
var s = ’r’;
if (Aerial.checked Vector.checked)
{
s = ’h’;
}
else if (Aerial.checked)
{
s = ’a’;
}
map.SetMapStyle(s);
}
function DoPanUp() { map.ContinuousPan(0, -10, 20); }
function DoPanDown() { map.ContinuousPan(0, 10, 20); }
function DoPanLeft() { map.ContinuousPan(-10, 0, 20); }
function DoPanRight() { map.ContinuousPan(10, 0, 20); }
function DoZoomIn() { map.ZoomIn(); }
function DoZoomOut() { map.ZoomOut(); }
</script>
</head>
<body onLoad="OnPageLoad()">
<div id="info" style="font-size:10pt">
</div>
<div id="MapStyle" style="POSITION:absolute;LEFT:470px;TOP:60px">
<input id="VectorStyleCheck" type="checkbox" onclick="ChangeMapStyle()" checked="checked">
Street Style
<input id="AerialStyleCheck" type="checkbox" onclick="ChangeMapStyle()">
Aerial Style
</div>
<input type="button" value="Pan Up" onclick="DoPanUp()" style="position:absolute;left:60px;top:600px;"/>
<input type="button" value="Pan Left" onclick="DoPanLeft()" style="position:absolute;left:10px;top:630px;"/>
<input type="button" value="Pan Right" onclick="DoPanRight()" style="position:absolute;left:100px;top:630px;"/>
<input type="button" value="Pan Down" onclick="DoPanDown()" style="position:absolute;left:45px;top:660px;"/>
<input type="button" value="Zoom In" onclick="DoZoomIn()" style="position:absolute;left:250px;top:630px;"/>
<input type="button" value="Zoom Out" onclick="DoZoomOut()" style="position:absolute;left:340px;top:630px;"/>
</body>
</html>
设置其他control的脚本
本文一开始我就提到可以从页面找到我们所需要的Virtual Earth Map Control,这里我们同样需要另外一个包含其他control的脚本文件,这个文件可以在下载到。
同样如果你需要在你自己的站点使用这个脚本,你必须将这个脚本文件拷贝到你自己的站点。如果你从VirtualEarth站点直接使用这个脚本,用户将会收到安全警告,也可能会根本都看不见这个control。
你必须引进这个脚本:
<script src="/ViaVirtualEarth/Portals/0/VE.js"></script>
这里要说明的是其他的窗口部件假设你的页面上的map control是命名地图。
罗盘控制
第一个我们将要增加的是罗盘control。它提供了在地图上进行漫游的各种方式。它是通过一个图像代表的,最后使用一个透明的gif图像以免其覆盖所需要的地图。你可以自己创建或者使用本例中的图片。
在OnPageLoad方法里你可以通过创建一个文档元素VE_Compass并设置它的元素属性来创建和摆放罗盘control。
最好的方式就是将其单独作为一个方法,从OnPageLoad方法里进行调用。
function CreateCompass()
{
var el=document.createElement("div");
el.id="VE_Compass";
el.style.background="url(images/compass.gif)";
el.onmousedown=VE_Compass._MouseDown;
el.onmouseup=VE_Compass._MouseUp;
el.onmousemove=VE_Compass._MouseMove;
el.style.position="absolute";
el.style.top = 100;
el.style.left = 15;
el.style.zIndex=31;
el.style.width = 93;
el.style.height = 91;
VE_Compass.element=el;
document.body.appendChild(el);
}
function OnPageLoad(){ CreateCompass(); ...
页面此时会显示一个罗盘在地图左上角,你可以用它来漫游整个地图。
地图比例尺组件
地图比例尺组件提供了对地图显示的比例的调整功能,这在估算距离的时候比较有用。组件是由2行的一个表格来表示的。在代码里必须正确的定义表格和行的名称,这些名称可以被其他的VE.js文件中的代码使用以在地图变化的时候更新比例尺
首先在HTML中增加一个表格:
<table id="VE_MapScale" cellpadding="0" cellspacing="0" unselectable="on">
<tr>
<td>
<div id="VE_MapScaleLabel" unselectable="on"> </div>
</td>
</tr>
<tr>
<td>
<div id="VE_MapScaleBar" unselectable="on"> </div>
</td>
</tr>
</table>
然后增加一些样式来定义最终的比例尺的显示:
#VE_MapScale
{
position: absolute;
width: 150px;
height: 18px;
padding: 0;
margin: 0;
z-index: 31;
}
#VE_MapScaleLabel
{
height: 22px;
font-family: Verdana;
font-size: 12pt;
color: black;
overflow: hidden;
}
#VE_MapScaleBar
{
width: 150px;
height: 5px;
background: green;
overflow: hidden;
}
增加如下的代码在OnPageLoad方法里,以在地图上摆放比例尺,并且显示初始的比例大小:
PositionElement(document.getElementById("VE_MapScale"), 300, 550, 150, 18);
UpdateMapScale();
最后当每次缩放的时候,比例尺都会需要被更新。在OnPageLoad函数中,我们增加对此事件进行处理的代码。我们需要增加一个对更新比例尺的调用。
map.onEndZoom=function(e){ document.getElementById("info").innerHTML = ’Latitude = ’ + e.latitude + ’, Longitude = ’ + e.longitude+’), Zoom=’ + e.zoomLevel; UpdateMapScale();}
缩放控制
缩放control提供了一个灵活的用户接口,用来控制地图的缩放。它还提供了可视化的回馈,用来提供地图可以缩放的量以及当前的比例信息。
首先我们需要增加一些样式表来描述control的样子,它主要包含4个部分:主体条,滑动杆,左边的缩小控制和右边的放大控制。每个部分都需要一个图片文件来定义如何显示这些控制部分。
在这里我创建了简单的图片,你也可以拷贝过去使用。缩放的样式定义应该和下面的类似:
.VE_ZoomControl_minus
{
position: absolute;
width: 26px;
height: 32px;
background: url(images/ZoomOut.gif);
display: inline;
text-align: center;
text-decoration: none;
color: black;
}
.VE_ZoomControl_plus
{
position: absolute;
width: 26px;
height: 32px;
background: url(images/ZoomIn.gif);
display: inline;
text-align: center;
text-decoration: none;
color: black;
}
.VE_ZoomControl_bar
{
position: absolute;
width: 128px;
height: 32px;
background: url(images/ZoomBar.gif);
display: inline;
}
.VE_ZoomControl_slider
{
position: absolute;
width: 8px;
height: 24px;
background: url(images/ZoomSlider.gif);
overflow: hidden;
display: inline;
}
这些创建缩放控制的代码可以被放到OnPageLoad函数的最后,以在调入页面的同时初始化这些control。
var zm=VE_ZoomControl.Create(5, 550, 9, "absolute");
document.body.appendChild(zm);
为了让缩放控制反映出当前的缩放尺度,我们需要在每次缩放发生的时候调节它。所以在onEndZoom函数的最后增加对control的刷新:
map.onEndZoom=function(e)
{
document.getElementById("info").innerHTML = ’Latitude = ’ + e.latitude + ’, Longitude = ’ + e.longitude + ’), Zoom=’ + e.zoomLevel; UpdateMapScale();
VE_ZoomControl.SetZoomLevel(map.GetZoomLevel());
}
下面我们看一看我们目前的页面是什么样子了,它已经增加了三个大的组件了,如下所示:
添加便笺条
和其他control一样,我们首先需要定义便笺条的样式,我们使用和Virtual Earth网站一样的样式:
.VE_Panel_el
{
overflow: hidden;
z-index: 31;
border: 1px solid #cbcbcb;
padding: 0;
margin: 0;
background: white;
}
.VE_Panel_title
{
position: abso
!DOCTYPE html
head
meta charset="UTF-8"
title使用canvas元素绘制指针式动画时钟/title
script type="text/javascript"
var canvas;
var context;
//页面装载
function window_onload()
{
canvas=document.getElementById("canvas");//获取canvas元素
context=canvas.getContext('2d');//获取canvas元素的图形上下文对象
setInterval("draw()",1000);//每隔一秒重绘时钟,重新显示时间
}
//绘制时钟
function draw()
{
var radius=Math.min(canvas.width / 2, canvas.height / 2) -25;//时钟罗盘半径
var centerx=canvas.width/2;//时钟中心横坐标
var centery=canvas.height/2;//时钟中心纵坐标
context.clearRect(0,0,canvas.width,canvas.height);//擦除之前所绘时钟
context.save();//保存当前绘制状态
//绘制时钟圆盘
context.fillStyle = '#efefef';//时钟背景色
context.strokeStyle = '#c0c0c0';//时钟边框颜色
context.beginPath();//开始创建路径
context.arc(centerx,centery,radius, 0,Math.PI*2, 0);//创建圆形罗盘路径
context.fill();//用背景色填充罗盘
context.stroke();//用边框颜色绘制罗盘边框
context.closePath();//关闭路径
context.restore();//恢复之前保存的绘制状态
//绘制时钟上表示小时的文字
var r = radius - 10;//缩小半径,因为要将文字绘制在时钟内部
context.font= 'bold 16px 宋体';//指定文字字体
Drawtext('1', centerx + (0.5 * r), centery - (0.88 * r));
Drawtext('2', centerx + (0.866 * r), centery - (0.5 * r));
Drawtext('3', centerx + radius - 10,centery);
Drawtext('4', centerx + (0.866 * r), centery + (0.5 * r));
Drawtext('5', centerx + (0.5 * r), centery + (0.866 * r));
Drawtext('6', centerx, centery + r);
Drawtext('7', centerx - (0.5 * r), centery + (0.866 * r));
Drawtext('8', centerx - (0.866 * r), centery + (0.49 * r));
Drawtext('9', centerx - radius + 10, centery);
Drawtext('10',centerx - (0.866 * r),centery - (0.50 * r));
Drawtext('11', centerx - (0.51 * r), centery - (0.88 * r));
Drawtext('12', centerx, 35);
//绘制时钟指针
var date=new Date();//获取需要表示的时间
var h = date.getHours();//获取当前小时
var m = date.getMinutes();//获取当前分钟
var s=date.getSeconds();//获取当前秒
var a = ((h/12) *Math.PI*2) - 1.57 + ((m / 60) * 0.524);//根据当前时间计算指针角度
context.save();//保存当前绘制状态
context.fillStyle='black'; //指定指针中心点的颜色
context.beginPath();//开始创建路径
context.arc(centerx,centery,3,0,Math.PI * 2, 0);//创建指针中心点的路径
context.closePath();//关闭路径
context.fill();//填充指针中心点
context.lineWidth=3;//指定指针宽度
context.fillStyle='darkgray';//指定指针填充颜色
context.strokeStyle='darkgray';//指定指针边框颜色
context.beginPath();//开始创建路径
//绘制小时指针
context.arc(centerx,centery,radius - 55, a + 0.01, a, 1);
context.lineTo(centerx,centery);
//绘制分钟指针
context.arc(centerx,centery,radius - 40, ((m/60) * 6.27) - 1.57, ((m/60) * 6.28) - 1.57, 0);
context.lineTo(canvas.width / 2, canvas.height / 2);
//绘制秒钟指针
context.arc(centerx,centery,radius - 30, ((s/60) * 6.27) - 1.57, ((s/60) * 6.28) - 1.57, 0);
context.lineTo(centerx,centery);
context.closePath();//关闭路径
context.fill();//填充指针
context.stroke();//绘制指针边框
context.restore();//恢复之前保存的绘制状态
//指定时钟下部当前时间所用的字符串,文字格式为hh:mm:dd
var hours = String(h);
var minutes = String(m);
var seconds = String(s);
if (hours.length == 1) h = '0' + h;
if (minutes.length == 1) m = '0' + m;
if (seconds.length == 1) s = '0' + s;
var str =h + ':' + m + ':' +s;
//绘制时钟下部的当前时间
Drawtext(str, centerx, centery + radius + 12);
}
function Drawtext(text, x, y)
{
//因为需要使用到坐标平移,所以在平移前线保存当前绘制状态
context.save();
x -= (context.measureText(text).width / 2);//文字起点横坐标
y +=9;//文字起点纵坐标
context.beginPath();//开始创建路径
context.translate(x, y);//平移坐标
context.fillText(text,0,0);//填充文字
context.restore();
}
/script
style
div{
display: -moz-box;
display: -webkit-box;
-moz-box-pack: center;
-webkit-box-pack: center;
width:100%;
}
canvas{
background-color:white;
}
/style
/head
body onload="window_onload()"
divh1使用canvas元素绘制指针式动画时钟/h1/div
divcanvas id="canvas" width="200px" height="200px"/canvasdiv//这里就是你的时钟的位置。
/body
/html
作者:本站原创 文章来源:本站原创 点击数: language="javascript" src="/Article/GetHits.asp?ArticleID=320" type="text/javascript" 9194 更新时间:2006-10-22 9:43:30 罗盘的使用方法 大多数流派的风水师在堪察风水时都需要使用罗盘,它。