写点什么

搜狗地图 API 正式发布

  • 2011-06-17
  • 本文字数:5476 字

    阅读完需:约 18 分钟

最近,搜狗地图 API 正式发布,至此,几乎所有主流互联网地图服务商都对外发布了接口,供第三方使用。本文介绍了搜狗地图 API 的基本情况,并盘点了其他主要互联网地图服务商的特点。

搜狗地图 API 是一套由 JavaScript 语言编写的应用程序接口,它支持用户在自己的网站中构建操作简单、功能丰富的地图应用,里面包含构建地图基本功能的各种接口,提供了诸如位置搜索、周边查询、出行路线规划等功能服务。该地图 API 免费提供,适用于各种网站。随着 Web 2.0 的发展,互联网地图的应用越来越广泛,很多商家都喜欢在自己的网站上嵌入一些地图信息,比如:连锁机构网站可以用地图展示遍布各地的分支机构;团购网站可以给商家团购信息中加入地图说明位置,并支持用户能在地图上查找身边的团购信息;房产中介,可以在网站上提供地图找房功能,不管是买房还是租房,用地图方式查找最实用;更多的像旅游、酒店、餐饮等垂直型网站,凡是与地理位置相关的,都可以嵌入地图应用,以更好地服务用户。

搜狗地图 API 简单易用,比如要创建一个 800*600 的地图区域,并显示地图,基本代码如下所示:

Sogou maps api v1.0

代码说明

  • 载入地图 API

    http://api.go2map.com/maps/js/api_v1.0.js 网址指向 Javascript 文件所在的位置。该文件会载入使用 Sogou Maps API 所需的全部符号和定义。用户的网页必须包含指向该网址的 script 标签。

  • 地图 DOM 元素

    要在网页上显示地图,我们必须为其留出一个位置。通常,我们的做法是创建一个名为 div 的元素,然后在浏览器的文档对象模型 (DOM) 中获取此元素的引用。
  • 为地图 DOM 元素设置样式

    用户可以通过样式表自行指定地图 DOM 元素的大小。

  • 其它设置

    兼容 IE8 为绘制线面对象指定命名空间 在 css 中加入 v\\:\* {behavior:url(#default#VML);} 用于矢量绘图
  • 初始化地图
    // 创建地图对象
    var _m = new sogou.maps.MapClient(document.getElementById(“map”));
    // 初始化地图
    _m.init();
    上面的都加好后,添加创建地图区域并显示初始化的地图的代码。因为所有的操作都是基于地图的,只有地图初始化成功之后,很多类的属性与方法才可以被调用。

  • 事件侦听
    地图客户端的大部分接口是事件驱动的,所以事件侦听在地图客户端中很重要:
    // 创建地图对象
    var _m = new sogou.maps.MapClient(document.getElementById(“map”));
    // 添加初始化完毕的事件侦听
    sogou.maps.SEvent.addListener(_m,“inited”,function(a)
    {
    alert(“初始化完毕触发事件!”)
    });
    // 初始化地图
    _m.init();
    // 添加点击地图区的事件侦听
    sogou.maps.SEvent.addListener(_m.map,“click”,function(a,b)
    {
    alert(“坐标为:[”+b.x+","+b.y+"]")
    });
    以上例子是当发生 inited 事件时,弹出一个信息对话框;当点击地图时,弹出坐标信息。 注意:事件侦听是要在该事件发生前绑定,不能等事件已经发生了才绑定侦听。如:inited 事件一定要在 init() 方法调用前侦听。而 _m.map 的 click 事件,由于是在 init 之后才创建 _m.map 对象,所以要放在 init() 方法之后,但还是在点击地图的 click 事件发生之前侦听的。

搜狗地图 API 支持的浏览器包括:

  • IE 6.0+ (Windows) 以及 ie 内核的其他浏览器,如:搜狗高速浏览器、遨游浏览器、360 浏览器、世界之窗浏览器等。
  • Firefox 2.0+ (Windows|Mac|Linux)
  • Safari 3.1+ (Mac|Windows)
  • Chrome 谷歌浏览器 (Windows)
  • Opera 10+ (Windows)

另外,Web 开发人员如果不想使用地图 API,也可以使用搜狗地图名片的功能。目前,搜狗地图规定,使用地图 API 的用户所提供的服务必须是免费的,如果有商业用途,必须获得搜狗地图书面授权。

报道,国内互联网地图服务市场的争夺日趋白热化。据不完全统计,当前我国从事互联网地图服务的网站约 4.2 万个。但随着国家对互联网测绘资质严格管理,互联网地图市场服务逐渐规范。

不过,目前搜狗地图仍然处于不盈利的状态,搜狗地图副总经理庞欣透露:

搜狗地图通过广告等形式有一小部分收入,但不成规模。其中,主要的原因是,地图的展示空间有限,形式有待创新。拥有 100 多人的搜狐地图每年投入上千万元,进行持续开发。

搜狗地图曾经靠“点坐标”(即在地图上标出商家信息)的方式一年能获取两三千万元收入,但搜狐最终将这种盈利模式撤销,这其实挺影响网民使用体验,而且对搜狐来说,也只是较小规模的收入。因此,搜狐就终止这项商业开发。

目前互联网地图的商业还处于初级阶段,LBS 也还停留在概念阶段,没有真正成熟的应用。对于用户来说,LBS 只是一扇门,敲开这扇门后,用户需要看到更加精彩的应用。

​除了搜狗,其他主流互联网地图服务商都对外开放了 API,我们来简要盘点一下​各个地图 API 的特点。

谷歌地图 API

谷歌地图 API 包含的种类很多,包括:

  • Google Maps JavaScript API ——使用 JavaScript 在网页中嵌入 Google Map,还可以通过多种服务操作地图并添加内容。
  • Google Maps API for Flash ——使用此 ActionScript API 在基于 Flash 的网页或应用程序中嵌入 Google Map,还可以通过多种服务在三维模式下操作地图并添加内容。
  • Google Earth API ——在网页中嵌入真实的 3D 数字地球仪。访问者无需离开网页便可游览世界,甚至身临其境感受深邃广袤的海洋。
  • Google Static Maps API ——在网页或移动网站上嵌入快捷、简单的 Google Maps 图片,而无需使用 JavaScript 或载入任何动态网页。
  • 网络服务——使用网址请求访问客户端应用程序的地址解析、路线、海拔和商家信息,并在 JSON 或 XML 中处理结果。

Google Maps JavaScript API 为例,其第 3 版专为移动设备设计,速度更快,更适用,而且不再需要申请 API 访问密钥。它同时也适用于传统的桌面浏览器应用程序。​谷歌地图 API 的功能很强大,其中包括:

地理定位

地理定位指通过各种数据收集机制识别用户或计算设备的地理位置。通常而言,大多数地理定位服务使用网络路由地址或内部 GPS 设备来确定该位置。请注意,地理定位是特定于设备的 API。某些浏览器 / 设备支持地理定位,但某些则不支持(或无法支持),因此开发人员不能始终假定网络应用程序具备该功能。

目前,在浏览器中可通过以下几种方式检测用户的位置。这些方法都不属于 Google Maps API,而是公用的行业标准。一些较新版本的浏览器正开始支持 W3C Geolocation 标准。此标准是 HTML5 的一部分,以后很可能会成为真正的标准。所有希望执行地理定位的应用程序都应当支持此标准。某些带 Google Gears 的浏览器可以使用 Google Gears Geolocation API。由于即将实现对 W3C 标准的广泛支持,因此,检查 Gears 不失为一项好的后备方案。某些浏览器使用 IP 地址来检测用户的位置,不过这种方式只能提供很粗略的估计。由于用户的 IP 地址只能提供对用户位置的粗略估计,因此我们不建议使用这种地理定位方法。W3C 是最简单且支持最广泛的方法,应优先采用此方法,然后再考虑其他方法。如果 Web 开发人员决定使用 Google Gears,那么首先应检查浏览器是否支持 W3C 标准。(请注意,如果要使用 Google Gears,则需要载入 Gears 初始化 JavaScript。)

语言本地化

Google Maps API 在显示文本信息(如控件名称、版权声明、行车路线和地图上的标签)时,使用浏览器的首选语言设置。大多数情况下,这是可取的做法,通常开发人员不会想覆盖用户的首选语言设置。不过,如果希望更改 Google Maps API 以忽略浏览器的语言设置,并强制浏览器采用特定语言显示信息,那么可以将可选的 language 参数添加到包含 Maps API JavaScript 代码的

2011-06-17 03:118893
用户头像

发布了 501 篇内容, 共 233.2 次阅读, 收获喜欢 54 次。

关注

评论

发布
暂无评论
发现更多内容
搜狗地图API正式发布_Java_崔康_InfoQ精选文章