精华内容
下载资源
问答
  • 如何分辨东南西北

    千次阅读 2013-01-22 09:09:36
    如何分辨东南西北     方向的辨别: 野外旅行必须学会辨别方向,我们都知道指南针的指向功能,下面介绍其他的野外辨向方法: 等高线:将地理海拔高度相同、相近的点,用线条人为的连接...
    如何分辨东南西北 
    

     

     
    方向的辨别:
    野外旅行必须学会辨别方向,我们都知道指南针的指向功能,下面介绍其他的野外辨向方法:
    等高线:将地理海拔高度相同、相近的点,用线条人为的连接起来的线条,就是等高线。一般等高线的高度差都是相等的,视地图的比例大小而定,一般在50-200米之间。通过察看等高线的分布及密疏等可以想象出大致的地形。等高线的色块是随着海拔的变化而出现颜色的变化,海拔上升以浅棕色,深棕色到深褐色不断变化,有常年积雪的即出现白色(边有虚线)而海拔下降到一定程度常用绿色标注,不要以为那是树林或绿洲。如果是封闭并成一圈一圈的等高线,说明这是山峰或是洼地、漏斗地貌;如果等高线变密并合并在一起,即是陡崖、绝壁;如果等高线疏缓,说明地形是缓坡或平地;如果等高线出现丫字形就是山涧水沟。地图方向:绝大多数地区的地图其方向都是图纸的上北、下南、左西、右东,认清这点很重要,这是计划活动行程所需要弄清的问题。

    图例:所有的地图都有一些符号、线条等来表达某种地理地形的类型。如公路、湖泊、草原、河流、村镇、山峰等等。一般的地图上都有图例的说明。

    观察天象:观察天象最为常见的就是观察北极星,夜晚,在月暗星明的夜空下,我们总会找到形似勺子的北斗星座,在那勺端七倍距离处有一颗明亮的星,那就是北极星,它的正下方就是正北方,顺时针即是东,南,西方。

    太阳与月亮:太阳东起西落,观察日出日落一般可以看出一个大致的方向。也可以用以下办法测定:在一平地上竖一根直棍(高1米以上),先在直棍影子的顶端作一个标记(如放一块石头),直棍的影子会随着太阳的移动而移动,10-60分钟后,在棍子影子的顶端又作一标记,在两个标记间划一条直线,并在直线的中间垂直的划一条线,这个十字就是一个方向标,将第二个标记点标注上东,而后,顺时针依次标上南、西、北方。
    在户外如何利用参照物辨别方向?
    ===============================
    如何辨别方向

    利用地球是太阳系中的一颗行星以及夜空中其他星星的位置可以帮助你辨别方向。它围绕轴线自转产生昼夜交替,围绕太阳公转产生四季变化,因为地球围绕太阳公转时倾斜一定的角度,由北向南逐渐*近,最近点位于南北回归线处,太阳于6月22日位于北回归线正上方(北纬23.5‘)。位于赤道正上方的时间为3月21日和9月21日。每天太阳东升西落——但也不是正东和正西方。有一些季节性的偏差,太阳位于午时最高点时,在北半球,太阳所处位置为正南;在南半球时,为正北。南北半球的区分可以通过树影的移动来确定:北半球沿顺时针,南半球沿逆时针方向移动。树影既可用来确定方向,又可确定时间。
    影钟法(1)
    在一块平地上,竖直放置1米长的垂直树干。注明树影所在位置,顶端用石块或树棍标出。15分钟后,再标记出树干顶端在地面上新的投影位置。两点间的连线会给出你东西方向——首先标出的是西。
    影钟法(2)
    如果你有时间,还可以用另一种更精确的方法——在早晨标出第一个树影顶点,以树干所落点为圆心,树影长的半径作弧,随着午时的来临,树影会逐渐缩短移动,到了下午,树影又会逐渐变长,标记出树影顶点与弧点的交点,弧上这两点间的连线会为你提供准确的东西方向——早晨树影顶点为西。
    简易指南针
    一截铁丝(缝衣针即可)反复同一方向与丝绸摩擦,会产生磁性,悬挂起来可以指示北极。磁性不会很强,隔段时间需要重新摩擦,增加磁性。如果你有一块磁石,会比用丝绸更有效———注意沿同一方向将铁针不断与磁石摩擦。用一根绳将磁针悬挂起来,以便不影响平衡。但不要用有扭结或绞缠的绳线。
    观察月亮
    月亮自身并不发光,它反射太阳光。当它以28天多一些的周期沿地球公转时,由于相对位置不同,从地球上看去,月亮的形状也会有圆缺之变。如果月亮与太阳位于地球的同一侧时,会看不见月光,称之为“新月”(a)——然后随着逆时针的公转,逐渐反射太阳光,月亮渐圆变满。满月与太阳分别位于地球的两边(b),这时月亮看上去又大又圆,接下来又逐渐变亏,周而复始。这可用来确定方向。如果月亮在太阳之前升起,被照亮的一面处于西方。如果月亮升起于太阳之后,“发光”的一面位于东方。这种方法看上去简单明了,但并不意味着所有的夜晚你都可以用月亮来辨别东西方向。
    观察星星
    首先要学会辨认的是北斗七星星座群,包括大熊星座(a),仙后座(b)和猎户座(c),它们都明显地围绕北极星(d)转动。其中大熊星座(北斗星座)和仙后座是不落的星座,也易于辨认。是大小熊座的首要特征星座,北斗星围绕北极星转。Dubhe(X)和Merak(Y)间的连线,沿Dubhe向前延伸,延伸距离为它们之间距离的4倍时,几乎正好到达北极星。
    仙后座(b)
    形状像字母“W”。也围绕北极星转,它位于北极星的另一边,距离几乎与北斗星相同。晴朗漆黑的夜空中,仙后座可以被看见躺在银河系中。在有些季节里,大熊座模糊不分明时,找到仙后座对于确定北极星的位置会大有帮助。仙后座中央那颗星几乎直指着北极。
    猎户座(c)
    沿赤道上空升起,南北半球都可见到。不论观察者所处的纬度,它几乎沿正南方升起,沿正北方落下。Mintaka星几乎正位于赤道上空。猎户座离北极星比前两者似乎都远。三颗亮星组成猎户座的背部,三颗较弱的星组成猎户的剑,这两个特征组合会有助于你找到猎户座
    ==========================
    方法一:可以找到一棵树桩观察,年轮宽面是南方;
    方法二:还是找一颗树,其南侧的枝叶茂盛而北侧的则稀疏;

    方法三:观察蚂蚁的洞穴,洞口大都是朝南的;

    方法四:在岩石众多的地方,你也可以找一块醒目的岩石来观察,岩石上布满青苔的一面是北侧,干燥光秃的一面为南侧;

    方法五:还可以利用手表来辨识方向:你所处的时间除以2,再把所得的商数对准太阳,表盘上12所指的方向就是北方。

    ======================

    在自然界,有某些动物是具有辨别方向的本能的,例如鸽子。有关专家经过测验证明,人类的某些成员也具备这种能力,但是绝大多数都不具备,或者仅仅是潜在地具备。因此,人们要在野外确定方向,主要还是依*经验和工具。
    利用地物特征

    下述地物可以帮助我们辨别分向:房屋:房屋一般门朝南开,在我国北方尤其如此。庙宇:庙宇通常也南向设门,尤其是庙宇群中的主要殿堂。树木:树木通常朝南的一侧枝叶茂盛,色泽鲜艳,树皮光滑,向北的一侧则相反。同时,朝北一侧的树干上可能生有青苔。凸出地物:例如墙、地埂、石块等,其向北一侧的基部较潮湿,并可能生长苔类植物。凹入地物:例如河流、水塘、坑等,其向北一侧的边缘(岸、边)的情况与凸出地物相同。

    利用太阳与时表判定

    上午9时至下午4时之间按下面这句话去做,就能较快地辨别出概略的方向:“时数折半对太阳,‘12’指的是北方”。如在上午9时,应以4时30分的位置对向太阳;如在下午2时40分(即14时40分),则应以7时20分的位置对向太阳,此时“12”字的方向即为北方。为提高判定的准确性,可在“时数折半”的位置上竖一细针或草棍,并使其阴影通过表盘中心,见图。
    此主题相关图片如下:
    需要注意的是: 1.“时数”是按一日24小时而言的,例如下午l时,就是13时; 2.在判定方向时,时表应平置(表面向上); 3.此方法在南、北纬度2O°30’之间地区的中午前后不宜使用; 4.要注意时差的问题。即要采用“以标准时的经线为准,每向东15°加1小时,每向西15°减1小时。的方法将标准时间换算为当地时间。

    利用指北针

    当指北针的磁针静止后,其N端(通常都有标志)所指的方向即为北方。

    利用指北针辨别方向是十分简便快捷的,但是需要注意: 1.尽量保持指北针水平; 2.不要距离铁、磁性物质太近; 3.不要错将磁针的S端当做北方,造成180°的方向误判。

    夜间利用星体

    1.利用北极星北极星位于正北天空,观察时,其距离地平面的高度约相当于当地的纬度。寻找时,通常要根据北斗七星(即大熊星座)或w星(即仙后星座)确定。北斗七星是七个比较亮的星,形状象一把勺子,将勺头甲乙两星连一直线向勺口方向延长,约为甲乙两星间隔的五倍处,有一颗略暗的星,即北极星。见下图。

    当地球自转,看不到北斗七星时,则可利用W星寻找。W星由五颗较亮的星组成,形状象个“W”字母,向W字缺口方向延伸约为缺口宽度的两倍处,就是北极星。
    此主题相关图片如下:


    2.利用南十字星

    在北纬23°3O’以南的地区,夜间有时可以看到南十字星,它也可以用于辨别方向。南十字星由四颗较亮的星组成,形同“十” 字。在南十字星的右下方,沿甲乙两星的连线向下延长约该两星的四倍半处(无可见的星),就是正南方。见下图。
    此主题相关图片如下:
    http://www.hzsummer.com/dispbbs.asp?boardid=203&id=600
    =====================
    野 外 方 向 判 断

    野外判断方向和位置的方法有许多,这里介绍几种常用的方法:

    1. 利用罗盘(指北针):

    把罗盘或接纳北针水平放置使气泡居中,等磁针静止后,其标有N的一端所指的是北方。
    除了测出正北方向外,罗盘或指北针还可以测出某一目标的具体方位。方法是把罗盘照准器对准目标,或将刻度盘上的0刻度对准目标,让目标、0刻度和磁中点在同一直线上,罗盘水平静止后,N端所指的刻度便是测量点至目标的方位,磁针N端指向36,则目标在测量位置的北偏东36度。
    利用罗盘或指北针辨别方向虽然简单快捷,但需要注意:
    1) 尽量保持水平;
    2)不要离磁性物质太近;
    3)勿将磁针的S端误认作北方,造成180度的方向误差;
    4)掌握活动地区的磁偏角进行校正。

    2. 利用太阳:
    在晴朗的白天,根据日出、日落就可以很方便地知道东方和西方,也就可判断方向。但只能大致估计,较准确的测定有以下几种方法:
    1)手表测向。“时数折半对太阳,12指的是北方”,一般在上午9时到下午4时之间可以很快地辨别出方向,用时间的一半所指的方向对准太阳,12时刻度就是北方,如下午14:40,其一半为7:20,时针对向太阳,那么12指的就是北方,或者是把表平置,时针对准太阳,时针与12刻度平分线的反向延伸方向就是北方;或者将一根小棍垂直立在手表中央转动手表,使小棍的影子与时针重合,此时与12时刻度之间的平分线即是北方。
    必须注意:判定方向时,手表应平置;在南、北纬20~30度之间的区域内中午前后不宜使用。
    2)日影测向。在地上竖立一木棍,木棍的影子随太阳位置变化而移动,这些影子在中午最短,其末端的连线是一条直线,该直线的垂直线为南北方向。
    在一张50×50厘米的绘图纸上绘制一系列同心圆,同心圆半径以1厘米递增,钉在平板上并水平固定好,将一根12~15厘米长的细钢针或针状物垂直插在圆心上。当太阳位置变化时,影子的端点总会与同心圆相交标绘出这些点,然后把同一个圆上的两点直线相连,把这些直线的点与圆心相连,这条连线就是南北方向线,圆弧顶的方向为北方。

    ========================
    一.利用自然界特征判定方向

    在没有地形图和指北针等器材的情况下,要学会利用自然界的一些特

    征判定方向。

    首先,太阳是最可靠的“指北针”。

    我们知道,太阳是由东向西移,而影子则是由西向东移。例如,早晨6时,太阳从东方升起,一切物体的阴影都倒向西方;到中午12时,太阳位于正南,影子便指向北方;到下午6时,太阳到正西,影子则指向东方。因此,可用太阳和物体的阴影概略地测定方向。

    俗话说:“立竿见影”,用一根标杆(直杆),使其与地面垂直,把一块石子放在标杆影子的顶点A处;约10分钟,标杆影子的顶点移动到B处时再放一块石子,将A、B两点连成一条直线,这条直线的指向是东西方向,与AB线垂直的方向则是南北方向,向太阳的一端是南方,相反方向是北方(图5)。

    依此法测定方向,插杆越高、越细、越垂直于地面、影子移动的距离越长,测出的方向就越准。特别是中午12时前后。如11时半和12时半这两个时间的影子长度几乎相等,顶点的连线刚好指向东西方向,连线的垂直线也能较准确地指出南北方向。

    地球24小时自转360度,一小时转15度,而手表的时针总比太阳转得快一倍,依此原理,可用手表和太阳概略测定方位。早晨6时太阳在东方,影子指向西方,这时,将手表上的时针指向太阳,表盘上的“12”字便指向西方,如果表盘转动90度,即将6时折半,使表盘上的“3”字对向太阳,“12”字便指向北方;中午12时,太阳位于南方,将12折半,使表盘上的“6”字对向太阳,则“12”字仍指北方(图6)。

    依此方法测定方向,要考虑地方时差。应将北京时间换算成地方时间。以东经120度线为准,经度每向东15度,将北京时间加一小时,每向西15度,则将北京时间减一小时,即为地方时。如乌鲁木齐的地理坐标是东经87度40分,则(120°-87°)÷15°=2小时9分钟,将北京时间减去2小时9分钟,就是乌鲁木齐的当地时间。

    以上两种方法,夏天在我国台湾的嘉义、广东汕头东北的南澳岛、广西的梧州市、云南的个旧市的北回归线(北纬23度27分)以南地区不能使用。

    顺便提一下,我们知道地球在自转中,地球和太阳相对位置移动15°这个原理,可以用手表和太阳概略测定方向。反之,我们用指北针和太阳也可以测定概略的时间。方法是,用指北针指北定向,太阳的方位的读数被15除即可。我国以北京时间为准,北京在东经120°线上,其他地区则应根据经度差异,加以修正,即得正确太阳时。

    常言道:“万物生长靠太阳”,太阳的热能在自然界形成了许多间接判定方向的特征。掌握这些特征之后,即使在没有太阳的阴天仍可以依此判定方向。例如:靠近树墩、树干及大石块南面的草生长得高而茂盛,冬天南面的草也枯萎干黄得较快。树皮一般南面比较光洁,北面则较为粗糙(树皮上有许多裂纹和高低不平的疙瘩)。这种现象以白桦树最为明显。白桦树南面的树皮较之北面的颜色淡,而且富有弹性。

    夏天松柏及杉树的树干上流出的胶脂,南面的比北面多,而且结块大。松树干上覆盖着的次生树皮,北面的较南面形成的早,向上发展较高,雨后树皮膨胀发黑时,这种现象较为突出。秋季果树朝南的一面枝叶茂密结果多,以苹果、红枣、柿子、山楂、荔枝、柑桔等最为明显。果实在成熟时,朝南的一面先染色。

    树下和灌木附近的蚂蚁窝总是在树和灌木的南面。

    长在石头上的青苔性喜潮湿,不耐阳光,因而青苔通常生长在石头的北面。

    草原上的蒙古菊和野莴苣的叶子都是南北指向。

    我国北方的山岳、丘陵地带,茂密的乔木林多生长在阴坡,而灌木林多生长在阳坡。这是由于阴坡土壤的水分蒸发慢,水土保持好,所以植被恢复比阳坡快,易形成森林。另就树木的习性来讲,冷杉、云杉等在北坡生长得好,而马尾松、华山松、桦树、杨树等就多生长于南坡。

    春季积雪先融化的一面朝南方,后融化的一面朝北方。坑穴和凹地则北面向阳融雪较早。北方冻土地带的河流,多为北岸平缓南岸陡立。

    此外,庙宇、宝塔以及一般住房大都坐北朝南。伊斯兰教的清真寺的门则朝向东方(礼拜者面向西方)。

    夜间通常利用北极星判定方向。寻找北极星,首先要找到大熊星座(即俗称的北斗星),因为它与北极星总是保持着一定的位置关系不停地旋转。当找到北斗星后,沿着勺边A、B两星的连线,向勺口方向延伸,约为A、B两星间隔的5倍处,有一颗较明亮的星,就是北极星。

    在北纬40度以南的地区,北斗星常会转到地平线以下,特别是冬季的黄昏,常常看不到它。此时,应根据与北斗星相对的仙后星座寻找北极星。仙后星座由5颗与北斗星亮度差不多的星组成,形成“W”形。在“W”字缺口中间的前方,约为整个缺口宽度的两倍处,即可找到北极星。

    在北纬23度以南地区,上半年可利用南十字星座判定方向。南十字星座主要由四颗明亮的星组成,四颗星对角相连成为十字。沿A、B两星的连线向下延伸,约在两星距离的四倍半处即为正南方。

    夜间还可以用月亮判定方向。月亮的起落是有规律的。月亮升起的时间,每天都比前一天晚48-50分钟。例如,农历十五的18时,月亮从东方升起。到了农历的二十,相距5天,就迟升4小时左右,约于22时于东方天空出现。月亮“圆缺”的月相变化,也是有规律的。农历十五以前,月亮的亮部在右边,十五以后,月亮的亮部在左边。上半个月为“上弦月”,月中称为“圆月”,下半月称为“下弦月”。每个月,月亮都是按上述两个规律升落的。利用月亮测定方位,可参考下表。

    此外,还可以根据月亮从东转到西,约需12小时,平均每小时约转15度这一规律,结合当时的月相、位置和观测时间,大致判定方向。例如,晚上10时,看见夜空的月亮是右半边亮,便可判明是上弦月,太阳落山是6时,月亮位于正南;此时,10时-6时=4时,即已经过去了4小时,月亮在此期间转动了15°×4=60°。因此,将此时月亮的位置向左(东)偏转60度即为正南方。

    在自然界中,风也能帮助我们判知方向。如木制的柱架,其迎风面颜色深黑容易腐坏,而悬崖及石头迎风面较为光滑。但必须熟悉当地的盛行风向,这在沙漠地区尤为重要。

    风是塑造沙漠地表面形态的重要因素,在单风向地区一般以新月形沙丘及沙丘链为主。沙丘和沙垄的迎风面,坡度较缓;背风面,坡度较陡。我国西北地区,由于盛行西北风,沙丘一般形成西北向东南走向。沙丘西北面坡度小,沙质

    较硬,东南面坡度大,沙质松软。在西北风的作用下,沙漠地区的植物,如酥油草、红柳、梭梭柴、骆驼刺等向东南方向倾斜。蒙古包的门通常也朝向背风的东南方向。冬季在枯草附近往往形成许多小雪垄、沙垄,其头部大尾部小,头部所指的方向就是西北方向。

    以上所述是沙漠地区的一般特点。风向还因地区和季节的不同而异。因此根据风向特征判定方向,平时应参阅兵要地志,了解当地四季盛行风向,以便得出正确的判断。还须注意,在具有多种风向而风力又大致相似的地区,则会出现金字塔形沙丘,在此地区判定方向较为复杂,应参考日月和星辰综合判别。

    值得一提的是,人们熟知有“独立大树通常南面的枝叶较茂密,北面的枝叶较稀疏。”、“独立树树桩的年轮,通常北面间隔小,南面间隔大。”的说法,但在实际中却是较复杂的。1945年,原苏联人M·贝里亚可夫经过系统观察之后指出:“不能用树木枝叶和年轮判别方向。树叶繁茂通常不是在南方,而是在自由空间的一方。就独立树而言,除阳光以外,风和其它因素亦有巨大影响,以此判别方向往往不可靠。同理,即使是独立树的年轮也不一定在南方宽;对年轮宽度有影响的不单是太阳,还有风;此外,年轮宽度还有垂直变化,在不同的高度切断树木就会获得不同的结果。”据实地观察证明,贝里亚可夫的这个观点是有一定道理的。如宁夏贺兰山山谷中的独立树受常年风向西风的影响,枝叶全部都朝向东方,而不是南方。

    利用自然界特征判定方位时,要特别注意对具体情况作具体分析,千万不要生搬硬套。在辨别方向时,务必注意多种方法综合运用,互相补充、验证。我国地域辽阔,各地区自然条件差异较大,在掌握共同规律的基础上,还要注意各地区的特殊规律,以便得出正确的判断。

    迷失方向后怎样处置

    在野外行进中,原来的道路消失了,或者从开始就没有确定路线,只是依赖地形及方位行进,结果找不到位置,这就是迷失方向了。

    发现自己迷失方向后,切勿惊慌换措,应立即停下来冷静地回忆一下所走过的道路,想办法按一切可能利用的标志重新定向,然后再寻找道路。最可靠的方法是“迷途知返”,循着自己的足迹退回至原出发点,切勿盲目乱撞。返回原来的路线,有时需要下很大的决心。尤其是已经登上了山岭,临时决定改道,走艰辛的回头路,要比前进更需要勇气和毅力。

    发现迷失方向时,应先登高远望,判断应该往哪儿走,在山地尤应如此,先爬上附近大的山脊上观察,然后决定是继续往上爬,还是向下走。通常应朝地势低的方向走,这样易于碰到水源。顺河而行最为保险,这一点在森林(丛林)中尤为重要。俗话说:“水能送人到家”,因为道路、居民点常常是滨水临河而筑的。

    在山地,若山脉走向分明、山脊坡度较缓,可沿山脊走。因为山脊视界开阔,易于观察道路情况,也容易确定所在位置。山脊还有一定的导向作用,只要沿山脊前进,通常可达到某个目标。

    在广阔平坦的沙漠、戈壁滩或茫茫的林海雪原上行进,因景致单一,缺乏定向的方位物,人们在上述地区一般不会走直线,通常向右偏。一般人的左步较之右步稍大0.1~0.4毫米,因而行进中不知不觉便转向右方。步行者通常约以3~5公里的直径走圆圈,即俗话说的“鬼打墙”。为了避免走弯路,浪费时间,在沙漠戈壁或森林中行进,依照一个确定的方向作直线运动非常重要。在上述地区行走,可利用长时间吹向一个方向的风或迅速朝一个方向飘动的云来确定方向。迎着风、云行走或与其保持一定的角度行进,可在一定时间内保证循着直线前进。也可使用“叠标线法”,即每走一段距离,在背后作一个标记(如放石头、插树枝,或在树干上用刀斧刻制标记),不断回看所走的路线上的标记是否在一条线上,便可以得知是否偏离了方向。解放战争中,我解放军在东北剿匪时,一些侦察员就是用这种方法往返于茫茫林海雪原中取送情报的。

    沙漠地区景物单调,常常使人迷向。沙漠地因风的作用,沙丘移动,道路不固定。寻找辨认道路可根据地上的马、驴、驼的粪便来辨认。一般成规律者,是人畜走过的路线。如实在无路可走,可以沿着骆驼的足迹行进,在干渴的沙漠中,骆驼对水有一种特殊的敏感,依此常能找到水源。在固定和半固定沙丘和草原地区,道路少但比较顺直,变迁不大。只要保持了总的行进方向,便可一直走下去。在有流沙的地区,个别路段会被覆盖,出现左右绕行的道路,这种绕行距离一般不会很远,应及时回到原行进方向上,切勿沿岔路直下而入歧途。在沙漠地区,还应注意不要受海市蜃楼的迷惑。

    在森林中行进,高密的树冠,遮天蔽日,根本看不到日月星辰。进入森林时,为避免迷失方向,应把当地的地形图研究清楚。特别要注意行进方向两侧可作为指向的线形地物,如河流、公路、山脉、长条形的湖泊等。注意其位置在行进路线的左方还是右方,是否与路线平行。如发现迷失方向,应立即朝指向物的方向前进,一直走到为止,再行判定方位。

    在森林中迷失方向,应先估计,从能确定方位的地方走出了多远,然后寻找身边便于观看的树干,用刀斧刮皮作环形标记(即树干周围的皮都刮掉,以便从任何方向上都能看到),再根据自己的记忆往回走。如果找不到原来的地点,折回标记处再换一个方向重新试行。最后,总能找到目标。

    森林中,如果稍不留意,很难区分是林中小径还是树木间的缝隙。人们常走的小径,因路面经常践踏而变得坚硬踏实。但须注意,并非所有路面坚实的小径都是人行的路。如上半身常碰到草藤枝条,而下半身却不受这些杂物的缠绕,则可能是野兽出没的路径。黑夜中,这种感觉判断较白天敏锐准确。遇到这种情况,应立刻返回人行道路上去。没经验或不熟悉道路的人,夜间穿行森林一般都会迷路,因而,没有特殊情况不要夜行。

    在我国西南边疆丛林地区,居住着许多少数民族,他们多习惯砍光寨子附近山上的树木。因而,以这种地区迷路之后,可爬到树上或高处了望,如发现某座山上没树木,那座山的附近往往会有人家。此外,傣族等少数民族的住房多用竹子搭制,他们习惯在寨子边上种大蓬竹。因此,有大蓬竹的地方,也容易找到山寨。

    迷途时无路可走令人沮丧,如果遇到岔路口,道路多也令人无所适从。此时,首先要明确要去的方向,然后选择正确的道路。若几条道路的方向大致相同,无法判定,则应选中间那条路,这样可以左右逢源,即便走错了,也不会偏差得太远。

    迷路后,当天色已晚。应立即选址宿营,不要等到天黑,否则将非常被动。若感到十分疲乏时,也应立即休息,不要走到精疲力尽才停止。这一点在冬季尤应注意,过度疲劳和淌汗过多,容易冻伤或冻死。

    迷失方向,对一个沉着坚定的军人来说并不足畏。古语说:“山重水复疑无路,柳暗花明又一村。”迷途时,只要冷静分析,并根据日月星辰等自然界的一些特征判定方位,坚定信心,一定会突破“山重水复”的包围,进入“柳暗花明”的境地!

    如需求救援,夜间可在高处燃点火堆;白天可燃烟,在火上放上青草,就会发出白烟,每隔十几秒钟放一次青草,正确的方法是每分钟6次。这是世界通用的救难信号。若在森林中,可用斧头、棍棒击打桦树,因为桦树声音宏大而且传播很远。

    在开阔的地段,如草地、海滩、雪地上可以因地制宜制作地面标志。如将青草割成一定标志,在雪地上踩出或用树木、石块摆放出相应标志与空中联络。

    二.怎样确定方位

    遇险者无论是在浩瀚的海洋上还是在茫茫的沙漠中,在茂密的山林里或是在冰封的雪原上,就是在荒郊野外游玩迷路,是决定坐等救援还是自力脱险,首先需要弄清自己所处的方位。
     
     
     
     
     
     
     
    如何分辨东南西北

           现在很多人只熟悉自己附近地方的东南西北,而一到城市或山区就都分不清东南西北了。有些朋友呢,则只知道地图上的上北下南,左西右东,而到了现实生活中,就没辙了。
    很多人都知道,太阳升起的地方是东方,落山的地方时西方,再根据左西右东,上北下南就能知道南北了。

           那么,在没有太阳的晚上,没有星星的晚上,没有月亮的晚上,阴天,雨天,雪天又如何辨别东南西北呢?城市里的路标会指明东南西北,那么到了没有路标的非城市地方或野外呢?又该如何辨别东南西北呢?(比如根据树叶,河流,农作物都能辨别方向。)

        1,北极星 北极星是最好的指北针,北极星所在的方向就是正北方向。

        2,北斗七星 也就是大熊星座,像一个巨大的勺子,在晴朗的夜空是很容易找到的,从勺边的两颗星的延长线方向看去,约间隔其5倍处,有一颗较亮的星星就是北极星,即正北方。

        3,树木、苔藓 树冠茂密的一面应是南方,稀疏的一面是北方。苔藓的道理与之相间。另外,通过观察树木的年轮也可判明方向。年轮纹路疏的一面朝南方,纹路密的一面朝北方。

        4,积雪的融化 积雪先融化的地方定是朝南方的。

        5,观察月亮 月亮自身并不发光,它反射太阳光。当它以28天多一些的周期沿地球公转时,由于相对位置不同,从地球上看去,月亮的形状也会有圆缺之变。如果月亮与太阳位于地球的同一侧时,会看不见月光,称之为“新月”(a)——然后随着逆时针的公转,逐渐反射太阳光,月亮渐圆变满。满月与太阳分别位于地球的两边(b),这时月亮看上去又大又圆,接下来又逐渐变亏,周而复始。这可用来确定方向。如果月亮在太阳之前升起,被照亮的一面处于西方。如果月亮升起于太阳之后,“发 光”的一面位于东方。这种方法看上去简单明了,但并不意味着所有的夜晚你都可以用月亮来辨别东西方向。

        6,观察蚂蚁的洞穴,洞口大都是朝南的。

        7,在岩石众多的地方,你也可以找一块醒目的岩石来观察,岩石上布满青苔的一面是北侧,干燥光秃的一面为南侧。

        8,还可以利用手表来辨识方向:你所处的时间除以2,再把所得的商数对准太阳,表盘上12所指的方向就是北方。

       9,利用地物特征,下述地物可以帮助我们辨别分向:房屋:房屋一般门朝南开,在我国北方尤其如此。庙宇:庙宇通常也南向设门,尤其是庙宇群中的主要殿堂。树木:树木通常朝南的一侧枝叶茂盛,色泽鲜艳,树皮光滑,向北的一侧则相反。同时,朝北一侧的树干上可能生有青苔。凸出地物:例如墙、地埂、石块等,其向北一侧的基部较潮湿,并可能生长苔类植物。凹入地物:例如河流、水塘、坑等,其向北一侧的边缘(岸、边)的情况与凸出地物相同。

       10,其他方法。一.利用自然界特征判定方向 在没有地形图和指北针等器材的情况下,要学会利用自然界的一些特 征判定方向。

           首先,太阳是最可靠的“指北针”。

           我们知道,太阳是由东向西移,而影子则是由西向东移。例如,早晨6时,太阳从东方升起,一切物体的阴影都倒向西方;到中午12时,太阳位于正南,影子便指向北方;到下午6时,太阳到正西,影子则指向东方。因此,可用太阳和物体的阴影概略地测定方向。

           俗话说:“立竿见影”,用一根标杆(直杆),使其与地面垂直,把一块石子放在标杆影子的顶点A处;约10分钟,标杆影子的顶点移动到B处时再放一块石子,将A、B两点连成一条直线,这条直线的指向是东西方向,与AB线垂直的方向则是南北方向,向太阳的一端是南方,相反方向是北方(图5)。

           依此法测定方向,插杆越高、越细、越垂直于地面、影子移动的距离越长,测出的方向就越准。特别是中午12时前后。如11时半和12时半这两个时间的影子长度几乎相等,顶点的连线刚好指向东西方向,连线的垂直线也能较准确地指出南北方向。

           地球24小时自转360度,一小时转15度,而手表的时针总比太阳转得快一倍,依此原理,可用手表和太阳概略测定方位。早晨6时太阳在东方,影子指向西方,这时,将手表上的时针指向太阳,表盘上的“12”字便指向西方,如果表盘转动90度,即将6时折半,使表盘上的“3”字对向太阳,“12”字便指向北方;中午12时,太阳位于南方,将12折半,使表盘上的“6”字对向太阳,则“12”字仍指北方(图6)。

           依此方法测定方向,要考虑地方时差。应将北京时间换算成地方时间。以东经120度线为准,经度每向东15度,将北京时间加一小时,每向西15度,则将北京时间减一小时,即为地方时。如乌鲁木齐的地理坐标是东经87度40分,则(120°-87°)÷15°=2小时9分钟,将北京时间减去2小时9分钟,就是乌鲁木齐的当地时间。
    展开全文
  • 由于之前的百度地图经纬度坐标是百度自己坐标,因此需要获取经纬度时进行坐标转换,根据坐标点在百度地图上显示时需要二次转换,所以打算将百度地图替换成腾讯地图。本文讨论基于腾讯地图如何实现类似百度地图的城市...

      PC WEB端新增客户的时候需要填写客户地址和联系人信息,包括:省市区、街道、详细地址和经纬度以及联系人、固话和移动电话。获取客户地址信息之前用的是百度地图,由于小程序中客户拜访时,需要对客户进行定位、距离计算,所以客户经纬度都转换成了gcj02坐标。由于之前的百度地图经纬度坐标是百度自己坐标,因此需要获取经纬度时进行坐标转换,根据坐标点在百度地图上显示时需要二次转换,所以打算将百度地图替换成腾讯地图。

    1、腾讯地图WEB API缺陷

    先看下百度地图提供的2个现成功能,简单设置即可用:
    1)城市切换
    在这里插入图片描述
    2)关键字输入提示
    在这里插入图片描述
    看完百度地图web api,再看看腾讯地图web api有没有这2功能:
    1)城市切换,没有自带的,需要自行实现;
    2)搜索关键字提示,提供了api接口,没有UI,需要自行完善;

    2、基于jquery、bootstrap的腾讯地图城市切换和搜索关键字提示实现

    1)页面截图

    在这里插入图片描述
    在这里插入图片描述

    2)html代码
    <!DOCTYPE html>
    <html>
    <head>
    	<meta charset="UTF-8" />
    	<title>腾讯地图API</title>
    	<link rel="stylesheet" href="https://cdn.bootcss.com/twitter-bootstrap/3.3.7/css/bootstrap.min.css" />
    	<link rel="stylesheet" href="https://cdn.bootcss.com/font-awesome/4.5.0/css/font-awesome.min.css" />
    	
    	<script src="https://cdn.bootcss.com/jquery/1.11.1/jquery.min.js"></script>
    	<script src="https://cdn.bootcss.com/twitter-bootstrap/3.3.7/js/bootstrap.min.js"></script>
    	<style type="text/css">
    		ul,li{margin:0; padding:0; list-style: none}
    		.form-horizontal .form-group {margin-right: 0; margin-left: 0;}
    		.form-control, .btn{border-radius:0; box-shadow:none;}
    		.pr0 {padding-right: 0}
    		.pl0 {padding-left: 0}
    		#btn-reset, #btn-ok{width: 49.9%}
    		#btn-ok {margin-left: -1px}
    		.modal-backdrop {z-index: 900;}
    		.modal {z-index: 901;}
    		.pop_map .city-wrapper {position: absolute; background: #fff; border: 1px solid #e2e2e2; top: 46px; z-index: 9; width: 400px;}
    		.pop_map .city-wrapper .hd {padding: 10px 10px 0; border-bottom: 1px solid #e5ebf3}
    		.pop_map .city-wrapper .close {position: absolute; right: 0px; top: 0px; padding: 10px; font-size: 14px}
    		.pop_map .city-wrapper .bd{padding: 10px; height: 300px; overflow-y: auto}
    		.pop_map .city-wrapper .search{position: relative;}
    		.pop_map .city-wrapper .search i {position: absolute; right: 10px; top: 10px;}
    		.pop_map .form-control{box-shadow: none; border-radius:0;}
    		.pop_map textarea{height: 48px;}
    		.pop_map .keywords p {margin-bottom:0}
    		.pop_map a, .pop_map a:hover {color: #166abe;}
    		.pop_map a{line-height: 24px; margin-right: 10px; white-space:nowrap; text-decoration: none; outline:0}
    		.pop_map .keywords {border-bottom: 1px solid #e5ebf3}
    		.pop_map .cities li{padding: 4px 0; border-bottom: 1px solid #e5ebf3}
    		.pop_map .cities .col1{width: 40px; margin-right: 12px;}
    		.pop_map .cities .col2{width: 310px;}
    		.pop_map .cities .col2 a {margin-right: 10px;}		
    	</style>
    </head>
    <body>
    <div class="page-content container">
    	<div class='page-body'>
    	<div class='panel panel-default'>
    		<div class="panel-heading"><h3 class='panel-title'>腾讯地图:城市切换、搜索关键字演示</h3></div>
    		<table class='table table-bordered'>
    			<thead>
    				<tr>
    					<th width=35>No.</th>
    					<th width="40%">描述</th>
    					<th width="60%"><button type="button" class="btn btn-primary" id="btn-call">调用地图</button></th>
    				</tr>
    			</thead>
    			<tbody>
    				<tr>
    				<td>1</td>
    				<td>省-市-区</td>
    				<td id="td-city"></td></tr>
    				<tr>
    				<td>2</td>
    				<td>街道</td>
    				<td id="td-street"></td></tr>
    				<tr>
    				<td>3</td>
    				<td>详细地址</td>
    				<td id="td-address"></td></tr>
    				<tr>
    				<td>4</td>
    				<td>经纬度</td>
    				<td id="td-jwd"></td></tr>
    				<tr>
    				<td>5</td>
    				<td>联系人</td>
    				<td id="td-contact"></td></tr>
    				<tr>
    				<td>6</td>
    				<td>联系方式</td>
    				<td id="td-tel"></td></tr>																		
    			</tbody>
    		</table>
    	</div>
    </div>
    <div id="pop-map" class="modal fade modal-primary pop_map" tabindex="-1">
    <div class="modal-dialog" style="width:760px; margin-top:20px; min-height: 420px;">
    	<div class="modal-content">
    		<div class="modal-header">
    			<button type="button" class="close" data-dismiss="modal" aria-hidden="true" id="refresh">×</button>
    			<h4 class="modal-title" id="title">新增/修改</h4>
    		</div>
    		<div class="modal-body form-horizontal clearfix ">
    			<div class="form-group">
    				<div class="input-group">
    					<span class="input-group-btn">
    						<button type="button" class="btn btn-default" id="btn-city"><span id="btn-city-text" style="margin-right: 5px">全国</span><i class="fa fa-caret-down"></i></button>
    					</span>
    					<input id="pop-map_ap" class="form-control"></input>
    					<span class="input-group-btn">
    						<button type="button" id="btn-search" class="btn btn-primary">搜索</button>
    					</span>
    				</div>
    			</div>
    			<div class="clearfix">
    				<div id="pop-map_map" class="col-xs-9" style="height:480px"></div>
    				<div class="col-xs-3 pr0">
    				<div class="form-group">
    					<label>省-市-区</label><input class="form-control input-sm" id="txt-city" readonly></input>
    				</div>
    				<div class="form-group">
    					<label>街道门牌号</label><textarea class="form-control input-sm" id="txt-street"></textarea>
    				</div>
    				<div class="form-group">
    					<label>经纬度</label><input class="form-control input-sm" id="txt-jwd" readonly></input>
    				</div>
    				<div class="form-group">
    					<label>联系人</label><input class="form-control input-sm" id="txt-contact"></input>
    				</div>
    				<div class="form-group">
    					<label>移动电话</label><input class="form-control input-sm" id="txt-mobile"></input>
    				</div>
    				<div class="form-group">
    					<label>固话</label><input class="form-control input-sm" id="txt-tel"></input>
    				</div>
    				<div class="form-group" style='margin-bottom:0'>
    					<button class="btn btn-sm btn-default" id="btn-reset">重置</button><button class="btn btn-sm btn-primary ml-1" id="btn-ok">确定</button>
    				</div>	
    			</div>
    		</div> <!-- /.modal-body -->
    	</div><!-- /.modal-content -->
    </div><!-- /.modal-dialog -->
    </div><!-- /.modal -->
    
    <script charset="utf-8" src="https://map.qq.com/api/js?v=2.exp&key=VEQBZ-2NIRW-3AARP-OAXJ3-2SFQ7-RFBNL&libraries=place&callback=initMap"></script>
    <script type="text/javascript">
    	var LyPop = {
    		id: "pop-map",
    		poi: {},
    		show: function(poi) {
    			$("#" + this.id).modal({backdrop: 'static', keyboard: false});
    			this.initPoi(poi);
    		},
    		hide: function() {
    			$("#" + this.id).modal('hide');
    		},
    		onOk: function(poi) {
    			console.log(poi);
    			poi = poi || {};
    			$("#td-city").text(poi.province ? poi.province + "-" + poi.city + "-" + poi.district : "");
    			$("#td-street").text(poi.street || '');
    			$("#td-address").text(poi.address || '');
    			$("#td-jwd").text(poi.pos_jd ? poi.pos_jd + ", " + poi.pos_wd : "");
    			$("#td-contact").text(poi.contact || "");
    			$("#td-mobile").text(poi.mobile || "");
    			$("#td-tel").text(poi.tel || "");
    			this.hide();
    		},
    		initPoi: function(poi) {
    			console.log("p: ", poi)
    			poi = poi || {};
    			$("#txt-city").val(poi.province ? poi.province + "-" + poi.city + "-" + poi.district : "");
    			$("#txt-street").val(poi.street || '');
    			$("#txt-jwd").val(poi.pos_jd ? poi.pos_jd + ", " + poi.pos_wd : "");
    			$("#txt-contact").val(poi.contact || "");
    			$("#txt-mobile").val(poi.mobile || "");
    			$("#txt-tel").val(poi.tel || "");
    			this.poi = poi;
    			if(poi.pos_jd && poi.pos_wd) {	// 设置地图center
    				map.panTo(new qq.maps.LatLng(poi.pos_wd, poi.pos_jd));
    			}
    		}
    	}
    	var StringUtil = {
    			format: function() {
    				if(arguments.length == 0) return null;
    				var str = arguments[0], a = arguments.length > 1 ? arguments[1] : null;
    				if (! a || typeof a != 'object') {
    					for(var i=1;i<arguments.length;i++) {
    						var re = new RegExp('\\{' + (i-1) + '\\}','gm');
    						str = str.replace(re, arguments[i]);
    					}
    				} else {	//对象格式化.
    					var r = new RegExp('\\{([\\s\\S]+?)\\}','gm'), b = null, _str = str;
    					while((b = r.exec(_str)) !== null) {
    						str = str.replace(b[0], a[b[1]]);
    					}
    				}
    				return str;
    			}
    	}
    	var map = null, geocoder = null, cityservice = null, searchService = null, keyword = "";
    	
    	function initMap() {
    		//init map
    		map = new qq.maps.Map(document.getElementById("pop-map_map"), {
    			// 地图的中心地理坐标。
    			center: new qq.maps.LatLng(39.916527,116.397128),
    			zoom: 13,				//缩放级别,4-17
    			mapTypeControl: false,	//地图、卫星类型选择开关
    			panControl: true		//东南西北旋转按钮
    		});
    	    geocoder = new qq.maps.Geocoder({
    	        complete : function(result){
    	        	var addrComponents = result.detail && result.detail.addressComponents;
    	        	if (addrComponents) {
    	        		var strCity = addrComponents.province + "-" + addrComponents.city + "-" + addrComponents.district;
    	        		if(strCity != $("#txt-city").val()) {
    	        			$("#txt-city").val(strCity);
    	        			$("#txt-street").val(addrComponents.street);
    	        		}
    	        		$("#txt-jwd").val(result.detail.location.lng + ", " + result.detail.location.lat);
    	        		LyPop.curPoi = {
    	        				province: addrComponents.province, city: addrComponents.city, district: addrComponents.district, 
    	        				pos_jd: result.detail.location.lng, pos_wd: result.detail.location.lat
    	        			}
    	        	}
    	        }
    	    });
    		
    	    //设置城市信息查询服务
    		cityservice = new qq.maps.CityService();
    	    //请求成功回调函数
    		cityservice.setComplete(function(result) {
    			console.log("sss: ", result)
    	        map.setCenter(result.detail.latLng);
    	    });
    		cityservice.setError(function(result) {
    			console.log("error: ", result, arguments)
    	        // map.setCenter(result.detail.latLng);
    	    });
    	    //调用Poi检索类。用于进行本地检索、周边检索等服务。
    	    searchService = new qq.maps.SearchService({
    	        complete : function(results){
    	        	if(results.type === "CITY_LIST") {
    	        		var cityName = results.detail.cities[0].cityName;
    	        		searchService.setLocation(cityName);
    	        		$("#" + LyPop.id + " .btn-city-text").text(cityName).data("city", cityName);
    	        		searchService.search(keyword);
    	        		return;
    	            }
    	            var pois = results.detail.pois;
    	            var latlngBounds = new qq.maps.LatLngBounds();
    	            for(var i = 0,l = pois.length;i < l; i++){
    	                var poi = pois[i];
    	                latlngBounds.extend(poi.latLng);  
    	                var marker = new qq.maps.Marker({
    	                    map:map,
    	                    position: poi.latLng
    	                });
    
    	                marker.setTitle(poi.name);
    	            }
    	            map.fitBounds(latlngBounds);
    	        }
    	    });
    	    
    	    //添加监听事件
    	    var ap = new qq.maps.place.Autocomplete(document.getElementById("pop-map_ap"));
    	    qq.maps.event.addListener(ap, "confirm", function(res){
    	        keyword = res.value;
    	        searchService.search(keyword);
    	    });
    		qq.maps.event.addListener(map, 'click', function(event) {
    			geocoder.getAddress(event.latLng);
    		});
    	}
    	
    	$(function() {
    		//
    		var hotcities = ['北京','上海','广州','天津', '重庆', '深圳','杭州', '成都', '南京'];
    		var provincePys = ['A','F','G','H', 'J', 'L','N', 'Q', 'S', 'T', 'X', 'Y', 'Z'];
    		var provinceList = [
    		                    {province: "安徽", py: "A", fullname: "安徽省", cities: ["合肥", "芜湖", "蚌埠", "淮南", "马鞍山", "淮北", "铜陵", "安庆", "黄山", "滁州", "阜阳", "宿州", "六安", "亳州", "池州", "宣城"]},
    		                    {province: "福建", py: "F", fullname: "福建省", cities: ["福州", "厦门", "莆田", "三明", "泉州", "漳州", "南平", "龙岩", "宁德"]},
    		                    {province: "广东", py: "G", fullname: "广东省", cities: ["广州", "韶关", "深圳", "珠海", "汕头", "佛山", "江门", "湛江", "茂名", "肇庆", "惠州", "梅州", "汕尾", "河源", "阳江", "清远", "东莞", "中山", "潮州", "揭阳", "云浮"]},
    		                    {province: "广西", fullname: "广西壮族自治区", cities: ["南宁", "柳州", "桂林", "梧州", "北海", "防城港", "钦州", "贵港", "玉林", "百色", "贺州", "河池", "来宾", "崇左"]},
    		                    {province: "贵州", fullname: "贵州省", cities: ["贵阳", "六盘水", "遵义", "安顺", "毕节", "铜仁", "黔西南", "黔东南", "黔南"]},
    		                    {province: "甘肃", fullname: "甘肃省", cities: ["兰州", "嘉峪关", "金昌", "白银", "天水", "武威", "张掖", "平凉", "酒泉", "庆阳", "定西", "陇南", "临夏", "甘南"]},
    		                    {province: "河北", py: "H", fullname: "河北省", cities: ["石家庄", "唐山","秦皇岛","邯郸","邢台","保定","张家口","承德","沧州", "廊坊", "衡水"]},
    		                    {province: "河南", fullname: "河南省", cities: ["郑州", "开封", "洛阳", "平顶山", "安阳", "鹤壁", "新乡", "焦作", "濮阳", "许昌", "漯河", "三门峡", "南阳", "商丘", "信阳", "周口", "驻马店"]},
    		                    {province: "湖北", fullname: "湖北省", cities: ["武汉", "黄石", "十堰", "宜昌", "襄阳", "鄂州", "荆门", "孝感", "荆州", "黄冈", "咸宁", "随州", "恩施"]},
    		                    {province: "湖南", fullname: "湖南省", cities: ["长沙", "株洲", "湘潭", "衡阳", "邵阳", "岳阳", "常德", "张家界", "益阳", "郴州", "永州", "怀化", "娄底", "湘西"]},
    		                    {province: "黑龙江", fullname: "黑龙江省", cities: ["哈尔滨", "齐齐哈尔", "鸡西", "鹤岗", "双鸭山", "大庆", "伊春", "佳木斯", "七台河", "牡丹江", "黑河", "绥化", "大兴安岭"]},
    		                    {province: "海南", fullname: "海南省", cities: ["海口", "三亚", "三沙", "儋州"]},
    		                    {province: "江苏", py: "J", fullname: "江苏省", cities: ["南京", "无锡", "徐州", "常州", "苏州", "南通", "连云港", "淮安", "盐城", "扬州", "镇江", "泰州", "宿迁"]},
    		                    {province: "江西", fullname: "江西省", cities: ["南昌", "景德镇", "萍乡", "九江", "新余", "鹰潭", "赣州", "吉安", "宜春", "抚州", "上饶"]},
    		                    {province: "吉林", fullname: "吉林省", cities: ["长春", "吉林", "四平", "辽源", "通化", "白山", "松原", "白城", "延边"]},
    		                    {province: "辽宁", py: "L", fullname: "辽宁省", cities: ["沈阳", "大连", "鞍山", "抚顺", "本溪", "丹东", "锦州", "营口", "阜新", "辽阳", "盘锦", "铁岭", "朝阳", "葫芦岛"]},
    		                    {province: "宁夏", py: "N", fullname: "宁夏回族自治区", cities: ["银川", "石嘴山", "吴忠", "固原", "中卫"]},
    		                    {province: "内蒙古", fullname: "内蒙古自治区", cities: ["呼和浩特", "包头", "乌海", "赤峰", "通辽", "鄂尔多斯", "呼伦贝尔", "巴彦淖尔", "乌兰察布", "兴安", "锡林郭勒", "阿拉善"]},
    		                    {province: "青海", py: "Q", fullname: "青海省", cities: ["西宁", "海东", "海北", "黄南", "海南", "果洛", "玉树", "海西"]},
    		                    {province: "山东", py: "S", fullname: "山东省", cities: ["济南", "青岛", "淄博", "枣庄", "东营", "烟台", "潍坊", "济宁", "泰安", "威海", "日照", "莱芜", "临沂", "德州", "聊城", "滨州", "菏泽"]},
    		                    {province: "山西", fullname: "山西省", cities: ["太原", "大同", "阳泉", "长治", "晋城", "朔州", "晋中", "运城", "忻州", "临汾", "吕梁"]},
    		                    {province: "陕西", fullname: "陕西省", cities: ["西安", "铜川", "宝鸡", "咸阳", "渭南", "延安", "汉中", "榆林", "安康", "商洛"]},
    		                    {province: "四川", fullname: "四川省", cities: ["成都", "自贡", "攀枝花", "泸州", "德阳", "绵阳", "广元", "遂宁", "内江", "乐山", "南充", "眉山", "宜宾", "广安", "达州", "雅安", "巴中", "资阳", "阿坝", "甘孜", "凉山"]},
    		                    {province: "台湾", py: "T", fullname: "台湾省", cities: ["台北", "高雄", "台南", "台中", "南投", "基隆", "新竹", "嘉义", "新北", "宜兰", "桃园", "苗栗", "彰化", "云林", "屏东", "台东", "花莲", "澎湖"]},
    		                    {province: "西藏", py: "X", fullname: "西藏自治区", cities: ["拉萨", "日喀则", "昌都", "林芝", "山南", "那曲", "阿里"]},
    		                    {province: "新疆", fullname: "新疆维吾尔自治区", cities: ["乌鲁木齐", "克拉玛依", "吐鲁番", "哈密", "昌吉", "博州", "巴州", "阿克苏", "克州", "喀什", "和田", "伊犁", "塔城", "阿勒泰"]},
    		                    {province: "云南", py: "Y", fullname: "云南省", cities: ["昆明", "曲靖", "玉溪", "保山", "昭通", "丽江", "普洱", "临沧", "楚雄", "红河", "文山", "西双版纳", "大理", "德宏", "怒江", "迪庆"]},
    		                    {province: "浙江", py: "Z", fullname: "浙江省", cities: ["杭州", "宁波", "温州", "嘉兴", "湖州", "绍兴", "金华", "衢州", "舟山", "台州", "丽水"]},
    		                    {province: "其它", fullname: "", cities: ["香港", "澳门"]}
    		                    ];
    		var cities = [];
    		for(var i in provinceList) {
    			var _cities = provinceList[i]['cities'];
    			for(var ii in _cities) {
    				cities.push({name: _cities[ii], fullname: (provinceList[i]['province'] == '其它' ? '' : provinceList[i]['province'] + "/") + _cities[ii]});
    			}
    		}		
    		var mapCity = '<div id="city-wrapper" class="city-wrapper" style="display:none;">'
    			+ "<div class='hd'>"
    			+	"<p>请选择城市</p>"
    			+	"<div class='close'><i class='fa fa-close'></i></div>"
    			+	"<p>当前城市: <span id='cur-city'></span></p>"
    			+ "</div>"
    			+ "<div class='bd'><div class='search'>";
    		// 热门城市
    		mapCity += "<div class='keywords'><p><a href='javascript:void(0);' fullname='全国'>全国</a>";
    		for(var i in hotcities) {
    			mapCity += StringUtil.format("<a href='javascript:void(0);' fullname='{0}'>{1}</a>", hotcities[i] + '市', hotcities[i]);
    		}
    		mapCity +=	"</p></p>";
    		for(var i in provincePys) {
    			mapCity += StringUtil.format("<a href='{0}'>{1}</a>", "#py_" + provincePys[i], provincePys[i]);
    		}
    		mapCity += "</p></div>";
    		mapCity +=	"</div>" // search-end
    			
    		mapCity += "<ul class='cities'>";
    		for(var i in provinceList) {
    			var province = provinceList[i];
    			mapCity += "<li class='clearfix'>";
    			mapCity += StringUtil.format("<div class='pull-left col1'><a href='javascript:void(0);' {0}>{1}</a></div>", province.py ? "name=py_" + province.py: "", province.province);
    			mapCity += "<div class='pull-left col2'>";
    			for(var ii in province.cities) {
    				mapCity += StringUtil.format("<a href='javascript:void(0);' fullname='{0}'>{1}</a>", province.province + "/" + province.cities[ii], province.cities[ii]);
    			}
    			mapCity += "</div>"
    			mapCity += "</li>"
    		}
    		mapCity += "</ul>";
    		mapCity += "</div></div>";
    		//
    		$("#btn-call").click(function(e){
    			LyPop.show(LyPop.curPoi || {});
    		});
    		$("#btn-ok").on("click", function(e) {
    			var curPoi = LyPop.curPoi || {};
    			if (LyPop.onOk) {
    				var result = $.extend({}, LyPop.poi, LyPop.curPoi);
    				result.street = $("#txt-street").val();
    				result.contact = $("#txt-contact").val();
    				result.tel = $("#txt-tel").val();
    				result.mobile = $("#txt-mobile").val();
    				if(result.province && result.city) 
    					result.address = (result.province == result.city ? "" : result.province) + result.city + result.district + ' ' + result.street;
    				if(!result.province || !result.city || !result.district || !result.street) {
    					alert('省市区、详细地址不能为空'); return
    				}
    				LyPop.curPoi = result;
    				LyPop.onOk(result);
    			}
    		});
    		$("#btn-reset").on("click", function(e) { LyPop.initPoi(LyPop.poi || {}); });
    		$("#btn-search").on("click", function(e) {
    			var keyword = $("#pop-map_ap").val();
    			if(keyword) searchService.search(keyword);
    		})
    		$('#btn-city').on('click', function(e) {
    			$("#city-wrapper").toggle();
    		})
    		$(".close").on('click', function(e) {
    			$("#city-wrapper").hide();
    		})
    		$("#pop-map .modal-body").append(mapCity);
    		$("#pop-map a[fullname]").on('click', function(e) {
            	$("#cur-city").text($(this).attr('fullname'));
            	$("#btn-city-text").text($(this).attr('fullname')).data('city', $(this).text());
            	$("#pop-map_ap").val('');
            	cityservice.searchCityByName( $(this).text() + "市");
            	$("#city-wrapper").hide();
    		});
    	})
    </script>
    </body>
    </html>
    

    代码说明:
    中文整理的代码,结构有点乱,勉强可以工作,仅供参考。

    3、进一步优化

    建议大家封装成一个弹出框组件,可以:
    1)根据poi数据,初始化地图;
    2)可以显示、隐藏弹出框组件;
    3)可以有返回结果回调;

    展开全文
  •  首先我们要做的是一个带有LBS定位服务(比如高德地图、百度地图等)AR功能,在这个场景中,会有一些地图上的”点“(如派出所、学校)是我们需要显示在我们的AR镜头的,如下图: 图片摘自wuyt2008的博客:...

    这篇文章的应用场景是这样子的:

      首先我们要做的是一个带有LBS定位服务(比如高德地图、百度地图等)AR功能,在这个场景中,会有一些地图上的”点“(如派出所、学校)是我们需要显示在我们的AR镜头上的,如下图:

    图片摘自wuyt2008的博客:《unity3d 尝试 基于地理定位的 增强现实

      本文要解决的问题就是,如何判断这些Point的东南西北,即坐标。

        博主采用的开发环境是

    1. Unity3D: 5.3.5;
    2. EazyAR: SKD v1.3.0;
    3. GyroDroid :这个Unity3D 的传感器插件包上网搜一下就有了。

        要应用本博客的内容之前,必须先看过wuyt2008的博客《unity3d 尝试 基于地理定位的 增强现实》。

        开坑:

      实际上我们要实现功能的原理就是根据定位返回的自身(Location)坐标(XL,ZL),跟我们需要标注显示出来的Marker的坐标(XM,ZM)进行坐标系的运算,很简单,

    X=XL-XM

    Z=ZL-ZM

      然后我们再把我们的主摄像机的Position的x、z轴(Y是控制高的,与物体平面定位没有关系)设置为(0,0),这样呢,Marker在Unity中得坐标,就是(X,Z),并且经过我的测试,Unity中在使用ARCamera的情况下,+X轴指的方向是东90°,+Z轴指的方向是北90°。我们根本不需要做任何其他判断,只需要根据这个特性,再根据经纬度的数据特性,如果X的值为负,则表示Marker位于东边(相对自身),如果Z的值为负,则表示Marker位于北边(相对自身),所以只需要按照(-X,-Z)设置Marker的(X,Z)坐标,即可准确的安放Marker的位置。

      首先,我们使用EazyAR SDK 中提供的AR摄像机,为什么说它是AR摄像机呢,因为它本身已经根据AR应用的特性,进行了一些优化,还有添加了一些C# Script,所以直接拿来用,你会发现比你自己写一大堆乱七八糟的代码好多了。然后呢,再将GyroDroid插件包中的“MinimalSensorCamera”脚本,绑定到摄像机上,让AR摄像机镜头随着手机的旋转而旋转。

      然后就是最重要的一个环节,这里要结合wuyt2008博主的博客中得代码来介绍,我把代码贴一下,并且我自己加了一些注释,助于观看:

     1 using UnityEngine;
     2 using System.Collections;
     3 using System.Collections.Generic;
     4 using UnityEngine.UI;
     5 
     6 public class ARMange : MonoBehaviour {
     7 
     8     public List<PlaceInfo> places = new List<PlaceInfo>();//Marker的集合(Marker是什么,请学习一下高德地图api的应用,简单的说,就是你想要标记在地图上的点,比如一些餐厅或景点之类,甚至可以是自定义的点)
     9     public GameObject perfab;
    10     public PlaceInfo location = new PlaceInfo ();//根据高德API定位后传递过来的自身坐标信息
    11 
    12     public void ShowPlaces(){
    13         ClearPlace ();
    14 
    15         for (int i = 0; i < places.Count; i++) {
    16 
    17             GameObject newPlace = Instantiate<GameObject> (perfab);
    18             newPlace.transform.parent = this.transform;
    19 
    20             double posZ = places [i].Latitude - location.Latitude;//计算相对距离,z轴(Unity中的坐标系)
    21             double posX = places [i].Longitude - location.Longitude;//计算相对距离,x轴(Unity中的坐标系)
    22 
    23             float z = 0;
    24             float x = 0;
    25             float y = 0;
    26 
    27             if (posZ > 0) {
    28                 z = 500f;
    29             } else {
    30                 z = -500f;
    31             }
    32 
    33             if (posX > 0) {
    34                 x = 500f;
    35             } else {
    36                 x = -500f;
    37             }
    38 
    39             z = z + (float)(posZ * 1000);
    40             x = x + (float)(posX * 1000);
    41             y = y + i * 20;
    42 
    43             newPlace.transform.position = new Vector3 (x, y, z);//设置Marker
    44             newPlace.transform.LookAt (this.transform);
    45             newPlace.transform.Rotate (new Vector3 (0f, 180f, 0f));
    46 
    47             newPlace.gameObject.GetComponentInChildren<Text> ().text = places [i].Name;
    48         }
    49     }
    50 
    51     private void ClearPlace(){
    52         GameObject[] oldPlaces = GameObject.FindGameObjectsWithTag ("Place");
    53         for (int i = 0; i < oldPlaces.Length; i++) {
    54             Destroy (oldPlaces [i].gameObject);
    55         }
    56     }
    57 }

      然后我们把Unity3D中,ARCamera(AR摄像机)的Position,设置为(0,0,0)这么做呢,是方便等会儿设定Marker的坐标,只有相机坐标设置为这样子,X和Z的值才是Marker的直接坐标,否则还得进行一些运算。不过这里值得注意的是,坐标系的设定,应该在CameraDevice对象上,否则是无效的。

      然后我们修改上述的代码,修改起来,并不会太难,只需要修改第43行,改成:

    20 double posZ = places [i].Latitude - location.Latitude;//计算相对距离,z轴(Unity中的坐标系)
    21 double posX = places [i].Longitude - location.Longitude;//计算相对距离,x轴(Unity中的坐标系)
    43 newPlace.transform.position = new Vector3 (-x, y, -z);//设置Marker

      这样就完事儿了。。。wuyt2008的博客《unity3d 尝试 基于地理定位的 增强现实》最后所提及的偏移问题,貌似没有这种情况,可能是跟EazyAR提供的ARCamera有关,以及镜头自动会有东南西北的方向感。最后感谢wuyt2008,最近在做AR的项目CityHunter,一直在研究如何将高德定位整合进Unity3D来,虽然应用方面与其所描述的不太相干(实际上我要运用的是高德API的电子围栏的功能),但是在操作中可举一反三,果断是学习到了。

    转载于:https://www.cnblogs.com/wuxinzhe/p/5700553.html

    展开全文
  • 前阵子做在线地图应用的时候,有个...近几年移动端浏览器流行的图标字体(icon font)就派用场了,最重要是IE6都支持它。下图是使用图标字体后的地图渲染效果,是不是很不错呢? 使用icon font来生成图标相对于

    前阵子做在线地图应用的时候,有个需求,就是地点标注出来要按区间分段渲染颜色。当然,可以用标签模拟正方形,三角形,再填充颜色,用css3还可以模拟一些圆形出来,但是一来要兼容万恶的IE6+,二来又得要好看。

    然后我来谈谈我的解决方案吧,近几年移动端浏览器上流行的图标字体(icon font)就派上用场了,最重要是IE6都支持它。下图是使用图标字体后的地图渲染效果,是不是很不错呢?


    使用icon font来生成图标相对于基于图片的图标来说,有如下的好处:
    1.自由的变化大小
    2.自由的修改颜色
    3.添加阴影效果
    4.IE6也可以支持
    5.支持图片图标的其它属性,例如,透明度和旋转等等
    6.可以添加text-stroke和background-clip:text等属性,只要浏览器支持


    如何获取图标字体呢?在这里我比较推荐IconMoon这个网站,使用它你可以通过上传SVG或者字体来生成你需要的icon字体,或者直接下载它已有的icon字体,iconMoon内置了相当多的实用图标,最方便的地方在于一旦选择你想要的图标字体下载之后,它已经帮你生成了兼容所有浏览器的css文件和字体文件了,甚至连demo页面都帮你生成了,如下图所示:



    然后使用的时候只需要动态创建具有指定样式的span标签就行了


    颜色怎么样,都由你来定~!

    字体文件有如下这些:


    最后再补充一点,在chrome上有一个小小的问题需要处理一下,因为chrome默认是读取woff字体文件,而它在渲染woff字体文件时会出现边缘锯齿的现象!

    怎么解决这个问题呢?chrome对svg字体文件的渲染非常平滑,很完美。所以我们只要利用css3的hack方式来让chrome只读取svg字体文件就可以了~!

    @font-face {
    	font-family: 'icomoon';
    	src:url('icomoon.eot?74r1vd');
    	src:url('icomoon.eot?#iefix74r1vd') format('embedded-opentype'),
    		url('icomoon.woff?74r1vd') format('woff'),
    		url('icomoon.ttf?74r1vd') format('truetype'),
    		url('icomoon.svg?74r1vd#icomoon') format('svg');
    	font-weight: normal;
    	font-style: normal;
    }
    
    @media screen and (-webkit-min-device-pixel-ratio:0){
    	@font-face {
    	font-family: 'icomoon';
    	src:url('icomoon.svg?74r1vd#icomoon') format('svg');
    	font-weight: normal;
    	font-style: normal;
    	}
    }

    加上如下这段@media screen and (-webkit-min-device-pixel-ratio:0)的Css就行了,因为这段代码只有支持css3特性的浏览器能识别。

    好了,该说的都说完啦,本人原创文章转载还请注明出处哦,谢谢各位!^_^~


    展开全文
  • 高德地图apk

    2013-12-09 14:18:38
    高德地图apk,最新版,从此不再迷路,不再路痴,东南西北分的清,呵呵。
  • Google 地图- 基本地图类型

    千次阅读 2017-09-18 14:49:24
    中提供了以下地图类型: MapTypeId.ROADMAP,用于显示默认的道路地图视图 MapTypeId.SATELLITE,用于显示 Google 地球卫星图片 MapTypeId.HYBRID,用于同时显示普通视图和卫星视图 MapTypeId.TERRAIN,用于根据...
  • 百度地图的植入流程介绍

    千次阅读 2016-08-20 01:23:20
    最近公司要把百度地图集成的项目中,于是我就研究了一天百度地图的SDK,当前的版本:Android SDK v3.0.0 。 虽然百度地图网上相关代码比较多,大多可能都是比较旧的版本,且百度地图API的改动感觉也比较大,所以再此...
  • Android 百度地图 SDK v3.0.0 (一)

    万次阅读 多人点赞 2014-07-12 22:13:37
    最近公司要把百度地图集成的项目中,于是我就研究了一天百度地图的SDK,当前的版本:Android SDK v3.0.0 。 虽然百度地图网上相关代码比较多,大多可能都是比较旧的版本,且百度地图API的改动感觉也比较大,所以再此...
  • 下载就不多说了,直接点击官网的相关下载就行选择就可,后面我也会贴源码。 配置: 第一步:在工程里新建libs文件夹,将开发包里的baidumapapi_vX_X_X.jar拷贝到libs根目录下,将libBaiduMapSDK_vX_X_X.so拷贝到...
  • Android 通过百度地图SDK 实现地图显示和定位(一) 请点击链接查看完整的 Android 通过百度地图SDK 实现地图显示和定位(一)。 访问百度地图API 网站,查看流程。 ... 获取密匙(AK) 要使用百度地图的sdk 首先先...
  • 今天我们来谈下百度地图的定位功能,在此之前我已经将百度地图的基本地图大概说了下,其实百度地图的基本功能还有很多的内容。感兴趣的可以到百度地图的开发者的官网看看。今天就开始来讲下百度地图中的定位功能。 ...
  • G7的谷歌地图5.0.01

    2011-03-11 06:05:32
    点击罗盘图标之后,就会从平面地图视图进入3D视图,以你所朝向的方向显示3D视图(因为数字罗盘知道你冲东南西北中发白哪个方向站着呢) 离线模式!给力了,让凯利德之流见鬼去吧!比如你要到山区旅游,或者出一趟国...
  • 1. Google 地图- 基本地图类型 Google Maps API 中提供了以下地图类型: MapTypeId.ROADMAP,用于显示默认的道路地图视图 MapTypeId.SATELLITE,用于显示 Google 地球卫星图片 MapTypeId.HYBRID,用于同时显示...
  • Android加载百度地图

    千次阅读 2014-10-09 12:54:40
    // 地图按钮事件---------------------------------------------------------------------------- MapButton.setOnClickListener(new ImageView.OnClickListener() { public void onClick(View v) { // ...
  • mapView的xml ...map控制器似乎是控制地图移动的,缩放和中心位置都通过他设定 放大: mapController.zoomIn(); 缩小: mapController.zoomOut(); 向北: GeoPoint point = new GeoPoint(mapView.get...
  • 百度地图api只显示某个省市的行政区域

    万次阅读 热门讨论 2019-06-03 11:29:54
     有些时候我们只需要某个省份的行政区域,那么运用百度地图如何实现呢?  我们先效果图:    步骤:   创建map实例 var map;... map = new BMap.Map('main');... // 将地图在水平位置移动x像...
  • 需求:领导需要在年会展示我们的用户ip实时数据,做一个网页版的地图,仅仅显示中国区域。 技术分析:echart,hchart等网站都有地图版的,百度地图有热点实例,经过对比,我选用了百度地图,但是百度地图无法只...
  • function getBoundary(map,city){ var bdary = new BMap.Boundary(); bdary.get(city, function(rs){//获取行政区域 ... //思路:利用行政区划点的集合与外围自定义东南西北形成一个环形遮罩层 ...
  • (1) 通过百度地图或者高德地图只展示某一个行政区域,例如整个地图只展示郑州市金水区,其他区域不显示。 (2) 整个地图只显示自定义的区域,并显示区域的自定义名称。 百度地图的JSAPI有关于显示行政区域边界的...
  • 话不多说直接代码: 一、建立地图 创建地图对象;设立中心点以及地图级别。 var map = new BMap.Map("container"); map.centerAndZoom(new BMap.Point(116.403765, 39.914850), 12); 二、添加地...
  • echarts地图

    2019-09-04 08:40:24
    思路: 首先在中国地图最外画一圈,圈住理论所有的中国领土,然后再将每个闭合区域合并进来,并全部连到西北角。 * 这样就做出了一个经过多次西北角的闭合多边形 / //定义中国东南西北端点,作为第一层 var pNW ...
  • 1.第一个示例: 注:此示例有一个缺点,总有一个指向西北方向的线有点碍眼,待优化 <div class="visual_...// 百度地图API功能 var blist = []; //自定义图层 setTimeout(function(){ mapInit(); },2000)...
  • 凯利德 地图

    2011-12-10 13:37:16
    凯利德
  • Android—调用高德地图显示定位蓝点

    千次阅读 2018-06-26 16:20:40
    注意: 1个KEY只能用于一个应用(多渠道安装包属于多个应用),1个Key在多个应用使用会出现服务调用失败。 这里我没注意,弄了好久都定位不到,一直显示北京…… PS:申请key时要输入输入发布版安全码 SHA1,...
  • Google map 地图类型

    千次阅读 2013-05-14 16:36:24
    地图类型 基本地图类型 45° 图像 启用和停用 45° 图像 旋转 45° 图像 修改地图类型注册表 样式化地图 自定义地图类型 地图坐标 世界坐标 像素坐标 图块坐标 MapType 接口 基本地图类型 ...
  • 关于Leaflet 地图 遮罩反选

    千次阅读 2019-02-13 16:17:19
    关于Leaflet 地图 遮罩反选 最近项目用到leaflet作为地图开发插件,需要将某个区域突出显示,其余部分隐藏,之前做过百度地图的开发,有过类似的经验,就简单写一下作为记录。 leaflet 地图插件 leaflet:...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 691
精华内容 276
关键字:

地图上的东南西北