zoukankan      html  css  js  c++  java
  • Google Map API使用详解(十一)——使用JavaScript创建地图详解(下)

    还需要关心的几个问题:

    上面的示例代码仅仅是为了显示一个试验性质的简单地图,所以把很多暂时不是很必要的代码都去掉了,如果你需要创建具有很好的兼容性、并且能够发布到你自己的网站上的地图,还需要注意这几个问题:

    为了保证有足够的兼容性,谷歌建议使用XHTML来定义显示地图的html页面,所以,你需要在这个页面的顶部声明XHTML的DOCTYPE,并且在html中声明XHTML的命名空间

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"

    "http://www.w3.org/TR/xhtmll/DTD/xhtmll-strict.dtd">

    <html xmlns="http://www.w3.org/1999/xhtml">

    当然,最好你自己的页面代码也能够符合XHTML的语法规则。相对我们现在的最新HTML版本来说,可以把XHTML语法规则简单的归纳如下:

    html、head、title、body元素一个都不能少,并且只能有html一个root元素;

    不要使用简化的属性,必须使用“name='value'”的形式;

    标签名和属性名都用小写字母,属性值要用引号括起来;

    标签必须是闭合的,并且不能交叉嵌套;

    使用id属性而不是name属性来获取元素;

    为了兼容最新版本IE浏览器,以便能够在IE中也正确显示地图中的折线,需要在html标签中增加对VML命名空间的声明

    <html xmlns="http://www.w3.org/1999/xhtml" xmlns:v="urn:schemas-microsoft-com:vml">

    这个很容易忽略,导致你在IE里的折线不能正常显示,所以把这一点单列出来加以强调。

    对于通用的浏览器兼容性检查,地图API提供了一个全局方法GBrowserIsCompatible()来保证地图API是在它所兼容的浏览器里运行的,这个兼容浏览器列表我也没找到最新的,谷歌文档里给出了一个远古时代的列表,所以不列也罢,对我们目前通用的FireFox、IE、Safari、Opera浏览器里运行地图API都没有问题。

    这里只说一下GBrowserIsCompatible()这个方法的使用:

    从名字也可以看出,GBrowserIsCompatible()方法返回一个boolean类型的值,所以,把我们对地图操作的起点放在对这个方法返回值的判断块中,形如:

    if(GBrowserIsCompatible()){

    //开始创建和操作地图

    } else {

    //如果有必要,就在这里定义你对这个异常的处理

    }

    当然,在你自己的代码中,针对不同的浏览器环境你还是需要自己实现兼容性的代码,这里的GBrowserIsCompatible()只是保证地图API类库是在它兼容的环境中运行的。

     

    4、注册你要发布页面所在网站的谷歌地图API密钥,替换掉示例代码里的YOUR_API_KEY。

     

    5、为了保证你的页面在任何可用的网络环境下都能快速加载并且正确显示,建议定义body元素的onload方法,在onload方法中开始你的JS动作。同时,把读入地图API的script标签放在head元素中,而把你自己的JavaScript代码块放到body标签的后面去定义。如果对浏览器的加载顺序比较熟悉的话,你就不必遵守我说的规则了,自由定义你认为应该的JavaScript声明顺序。

     

    6、为了避免JavaScript中引用页面的DOM元素可能存在的内存泄漏(尤其对于IE浏览器),你需要使用地图API中定义的GUnload()方法作为你的body元素的onunload方法,并且最好把这个作为一个必须的规则记住。但是GUnload()方法不是避免内存泄漏的万能钥匙,所以,你在自己的代码中还是需要注意避免内存泄漏这个问题。

     

    7、为了能够在页面上正常显示中文,需要把页面的字符集定义为utf-8

  • 相关阅读:
    BZOJ 3527: [Zjoi2014]力 [快速傅里叶变换]
    BZOJ 2194 [快速傅里叶变换 卷积]
    BZOJ 2179 [快速傅里叶变换 高精度乘法]
    [快速傅立叶变换&快速傅里叶变换]【旧 手写笔记】
    CF 235C. Cyclical Quest [后缀自动机]
    BZOJ 1396&&2865 识别子串[后缀自动机 线段树]
    BZOJ 2780: [Spoj]8093 Sevenk Love Oimaster [广义后缀自动机]
    BZOJ 3926: [Zjoi2015]诸神眷顾的幻想乡 [广义后缀自动机 Trie]
    BZOJ 2806: [Ctsc2012]Cheat [广义后缀自动机 单调队列优化DP 二分]
    BZOJ 3473: 字符串 [广义后缀自动机]
  • 原文地址:https://www.cnblogs.com/greywolf/p/2619614.html
Copyright © 2011-2022 走看看