背景:

公司作为车联网行业,少不了与地图打交道,之前一直依赖谷歌,百度等三方地图供应商来处理地图方面问题。但是随着客户量越来越大,谷歌的吃相变得越来越难看。自7月16日起,谷歌将限制API请求次数,超过限制将进行收费。谷歌大幅降低了免费请求次数的上限,由此前的每天2.5万次减少到每月 2.8 万次。平均下来,每天的展示请求次数下降到1000次以下。这样以来,对于全球性的车联网服务提供商来说是一场灾难。后来我们决定采用开源的wiki地图OpenStreetMap(简称OSM)提供的API来代替谷歌进行逆地理编译,目前暂时解决了逆地理服务问题了。

什么是OSM

百度百科是这样介绍的:

OpenStreetMap(简称OSM) 开源wiki地图,很多人们习以为常可以随便拿来用的地图,其实有很多法律和技术上的限制,这些限制使得像地图这类的地理资讯无法有创意、有效率地被再利用。开放街道地图成立动机在于希望能创造并且提供可以被自由地使用的地理资料(像街道地图)给每个想使用的人,就像自由软件所赋予使用者的自由一样。

OpenStreetMap(简称OSM)是一个网上地图协作计划,目标是创造一个内容自由且能让所有人编辑的世界地图。

OSM的地图由用户根据手持GPS设备、航空摄影照片、其他自由内容甚至单靠本地知识绘制。网站里的地图图像及矢量数据皆以Open Database License(ODbL)授权。

OSM网站的灵感来自维基百科等网站。这可从该网地图页的“编辑”按钮及其完整修订历史获知。经注册的用户可上载GPS路径及使用内置的编辑程式编辑数据。

目前包括苹果和微软在内都在使用OpenStreetMap。

下面就是OSM数据官网截图:

我们使用OSM做了什么

OSM作为开源的地图服务,自身本身也是带有相应的API来供开发者使用的。因为不是商业性质的,服务提供并不是那么稳定,而且接口的效率不是很高。我们目前使用OSM的API进行逆地理的时候经常会出现获取不到地址,请求超时等情况。这一系列的问题导致我们不得不另想办法。既然调用他们的API不行,那我们就做个大胆的决定,自己使用OSM数据搭建一台逆地理服务器。后面我会继续介绍

OSM学习之路(一):OSM介绍相关推荐

  1. SQLite学习之路② Pager模块介绍和Pager对象(2021SC@SDUSC)

    2021SC@SDUSC SQLite 学习之路 第二节 模块介绍和Pager对象 Pager介绍 Pager对象 Pager介绍 根据上图我们能够大致了解Pager模块在SQLite占据的地位,它是 ...

  2. NR学习之路——3GPP组织介绍

    目录 3GPP 组织介绍 成员 组织结构 TSG WG 标准制定模式 Release 输出 SI & WI TR & TS 信息检索 3GPP 组织介绍 3GPP:Third gene ...

  3. Axure学习之路01——元件介绍

    本系列博客的目的是记录Auxure软件使用的一些要点. 学习课程来自:Axure 9从入门到精通. 目录 一些设计资源 基本元件 图片 占位符 图像热区 动态面板 内联框架 中继器 表单元件 文本框 ...

  4. EF学习之路——1.EF介绍及架构搭建

    参考文档:What is Entity Framework? Entity Framework is an open-source ORM framework for .NET application ...

  5. Python学习之路:函数介绍

    编程:面向对象:华山派----->类---->class 面向过程:少林派----->过程--->def  一段段的函数和功能包含在过程中 函数式编程:逍遥派--->函数 ...

  6. STM32F103C8T6个人学习之路01-芯片介绍

    STM32F103C8T6 特性 主核:ARM 32-bit Cortex™-M3 CPU 主频:72MHz Flash:64K SRAM:20K 供电电压:2.0-3.6V ADC:2个12-bit ...

  7. mysql中常用动词_Mysql DBA 高级运维学习之路-sql语言介绍及分类

    1.什么是sql SQL英文全称是Structured Query Language,中文意思是结构化查询语言.它是一种对关系型数据库中的数据进行定义和操作的语言方法.是大多数关系数据库管理系统所支持 ...

  8. c# sbyte string转_C# 学习之路(八)

    枚举.结构与数组 本系列文章主要意在巩固笔者在学习过程中学到的有关 C# 特性的知识,分享 C# 中较为重要和突出的部分和有助养成良好编程习惯的提示. 并非旨在系统介绍 C#. 今天的文章主要介绍具有 ...

  9. [EntLib]微软企业库5.0 学习之路——第五步、介绍EntLib.Validation模块信息、验证器的实现层级及内置的各种验证器的使用方法——上篇...

    本文是为后面的学习之路做铺垫,简单介绍下企业库中的Validation模块的一些相关知识,包括Validation模块的简介.用途.使用方法.默认提供的多种验证器的介绍等. 一.简介及用途 在实际的项 ...

  10. 强化学习的学习之路(十)_2021-01-10:K臂老虎机介绍及其Python实现

    作为一个新手,写这个强化学习-基础知识专栏是想和大家分享一下自己学习强化学习的学习历程,希望对大家能有所帮助.这个系列后面会不断更新,希望自己在2021年能保证平均每日一更的更新速度,主要是介绍强化学 ...

最新文章

  1. iOS应用模块化的思考及落地方案(二)模块化自动构建工具的使用
  2. Redis中字符串string数据类型(保存(设置键值、过期时间、设置多个键值、追加值)、获取(获取单一键值、获取多个键值))
  3. python的位运算符
  4. Mobile 拨打电话 发送短信
  5. [Everyday Mathematics]20150221
  6. Mysql中的行级锁、表级锁、页级锁
  7. LeetCode 3. 无重复字符的最长子串(滑动窗口+哈希)
  8. pyecharts添加文字_超燃的文字云效果,用Python就能轻松get!
  9. ab plc编程软件_AB编程软件及所有组态软件授权及安装教程包含FTViewV11
  10. 【正则表达式】JavaScript的exec()和search()方法
  11. D3DXMatrixMultiply 函数
  12. pandas CSV读取编码问题记录
  13. Python 城市列表
  14. python爬虫爬取搜狗微信文章(代理池+re从跳转链接中找到真实URL问题)
  15. 移位和循环移位指令 shl, shr sal, sar, sol, sor, scl, scr, shld, shrd
  16. 10.13 写一个用矩形法求定积分的通用函数,分别求∫_0^1▒sinxdx 、∫_0^1▒cosxdx、∫_0^1▒〖e^x dx〗的值。
  17. Sutherland-Hodgeman 多边形裁剪算法
  18. cad lisp 二次抛物线_用Cad画二次抛物线.doc
  19. 默纳克调试说明书_默纳克NICE调试说明书修改版
  20. 图像处理——图像平滑

热门文章

  1. ios 图片居中裁剪_iOS 自定义裁剪相册照片
  2. python访问陌生人qq空间_用Python登录好友QQ空间点赞的示例代码
  3. V831基础-摄像头使用
  4. 作用域 (局部作用域和全局作用域) 详细介绍
  5. MongoDB 6 安装 基本操作
  6. 深度学习 音乐分类_一种基于深度学习的音乐个性化分类推荐方法与流程
  7. 从零开始学前端:查找替换+进度条+随机颜色+随机选择今日任务 --- 今天你学习了吗?(JS:Day18)
  8. 各省省际对外非金融类直接投资流量情况(2009-2018年)
  9. 罗格斯大学电子与计算机工程,罗格斯大学电子和计算机工程理学硕士研究生申请要求及申请材料要求清单...
  10. php u8t canonical,php – configure:error:utf8_mime2text()具有新的签名,但U8T_CANONICAL缺少...