【AICon】探索RAG 技术在实际应用中遇到的挑战及应对策略!AICon精华内容已上线73%>>> 了解详情
写点什么

搜狗地图 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:119112
用户头像

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

关注

评论

发布
暂无评论
发现更多内容

文件上传绕过思路拓展

网络安全学海

黑客 网络安全 信息安全 渗透测试 安全漏洞

软件测试框架之——Postman参数化(超详细小白教程)

程序员阿沐

软件测试 自动化测试 接口测试

论坛接口测试——Postman数据驱动(超详细小白教程)

程序员阿沐

编程 程序员 软件测试 自动化测试 接口测试

立于山巅!他,凭什么抗住万亿级流量冲击!

博文视点Broadview

❤️专科出身拿到阿里offer,我直呼666!【付硬核面试】❤️

编程susu

Java 编程 程序员 面试 计算机

入职京东:成功拿到offer薪资30K「面试经历+面试真题」

今晚早点睡

Java 秋招

终于有大牛把Spring微服务架构设计第2版文档给整理完毕了

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

石油行业数据采集中的 MQTT 协议

EMQ映云科技

数据 mqtt emq 远程监控 实时数据

GraphQL设计思想

Ryan Zheng

graphql

【虚拟机专栏】智能合约执行引擎的前世今生

趣链科技

一文带你掌握 OceanBase 社区版部署细节及原理

OceanBase 数据库

数据库 分布式数据库 oceanbase OceanBase 开源 OceanBase 社区版

影像篡改与识别(一):胶片时代

腾讯安全云鼎实验室

影像 暗房技术 篡改识别

没有7年经验你真学不会这份SpringCloud实战演练文档

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

摩尔时代如何押注AI算力?英特尔战术大揭秘

科技新消息

解密优酷智能生产技术,看 AI 赋能内容数字化

阿里云视频云

音视频 短视频 视频处理 视频制作 视频云

由阿里三位专家撰写:数据库高效优化:架构、规范SQL技巧文档

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

MySQL 不完全入门指南

Java 编程 架构 面试 架构师

DEX去中心化交易所自动刷量机器人开发|去中心化做市机器人

量化系统19942438797

去中心化 做市机器人

堡垒机和跳板机的三大区别分析-行云管家

行云管家

运维 堡垒机 IT运维 跳板机

如何优雅的在业务中使用设计模式(代码如诗)

小呆呆666

flutter android 大前端 设计模式

webrtc BitrateAllocator 带宽分配器

webrtc developer

WebRTC

微服务的痛:你的微服务还好吗?

我爱娃哈哈😍

架构设计 架构设计实战

华为高级技术专家多年经验分享微服务治理体系、架构及实践文档

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

【等保测评】黑龙江等保测评机构详细信息说明

行云管家

网络安全 等保 等级保护 等保测评

模块一作业

小智

架构实战营

DEX去中心化交易所自动刷量机器人开发|去中心化做市机器人

Geek_23f0c3

去中心化交易所系统开发 量化交易机器人系统开发 量化机器人 做市机器人 自动刷量机器人

20年IT老民工苦心编撰成超大流量分布式系统架构解决方案文档

公众号_愿天堂没有BUG

Java 编程 程序员 架构 面试

简单、快捷、低成本的超写实虚拟人平台来了……

百度开发者中心

人工智能 AI 最佳实践 虚拟人 前沿技术

短视频询盘获客系统开发案例解析

获客I3O6O643Z97

抖音、快手获客系统 抖音矩阵拓客

译文 | 四张画布教你判断「产品开发优先级」

LigaAI

产品经理 产品开发 画布 产品优先级

简述 Linux I/O 原理及零拷贝(上)— 磁盘 I/O

Qunar技术沙龙

Linux 缓存 Mmap 磁盘 I/O

搜狗地图API正式发布_Java_崔康_InfoQ精选文章