Web 地理定位(Geo-Location)知识大全

react好租客项目Day02-轮播图&导航栏&百度地图 首页模块 目标 能够使用Carousel组件完成轮播图功能 能够安装axios,并且使用axios进行网络请求 能够使用Flex组件完成TabBar功能 能够知道轮播图与TabBar出现的bug,并且解决 能够安装Sass,编写Sass代码 能够使用Grid组件完成租房小组功能 能够利用H5 API获取当前的定位信息 能够使用百度地图API展示地图页面,获取对应城市信息 轮播图(★★★) 组件... 阅读详情

在线地图已经是很平常的应用,Google Map 甚至可以用作驾驶导航仪,然而,这些应用的实现涉及到千丝万缕的艰辛工作,仅仅是定位你现在的位置,就有很多技术,有幸的是,如今在你的 Web 站点中,你可以通过短短的几行代码,获得一个用户的地理位置,本文介绍的是用在 Web 中的各种地理定位技术。

通过 IP 地址获得用户的地理位置信息

互联网不过是一个巨大的网络,上面的每一台电脑对应一个 IP 地址,通过这个 IP 地址,可以知道这个用户在什么位置,我们可以通过查询 Maxmind GeoIP 数据库 获得,Maxmind 还提供了一个 JavaScript 接口 让 你在网站上实现这一功能。

 

这个方法(演示 )有一个问 题,就是说,你获得的 IP 地理位置信息未必非常准确,因为这个 IP 是你的 ISP 分配给你的,你获得的事实上是 ISP 的地理位置,另外,如果你使用 VPN,你实际的得到可能是十万八千里之外的地方了。

通过 W3C Geo API 获得用户地理位置

通过 IP 地址获取用户地理位置还有一个棘手的问题,就是安全和隐私问题,毕竟,并不是每个用户都愿意自己的地理位置信息被别人知道,鉴于此,人们开发了很多技术,Google Gears 拥有一个 Geo-Location 服务 ,Plazes 帮助你保存你的位置 ,而 Yahoo Fire Eagle 算得上这类技术中最顺手的一个。然而这些技术共同的问题是,它们要求用户要么安装一个插件,要么需要访问特定的 Web 服务,这有些麻烦。

W3C 有一个 Geo-Location API 可以帮助浏览器制造商,在浏览器中集成地理信息功能。Firefox 3.5 以上的浏览器支持 W3C Geo-LocationAPI ,同样支持该 API 的还有 iPhone 上的 Safari 浏览器 (需要 OS3.0 以上)。需要通过浏览器查询自己地理位置的用户,在浏览器中,会显示一个对话条,请求你的授权。如下图所示:

以下是请求使用该功能的代码:

下面的演示 ,可以很好地 演示上面两种地理信息获取技术的不同,可以看到,他们在测量用户地理位 置 方面有很多不同。

将经度/维度转换为地名

将经度/维度信息转换为地位,称为 “反 Geo-Location ”, 网络上有很多这类服务可以使用,其中最著名的是 the geo-names Web service , 但它仍有几个问题,比如,它的结果是以美国为中心的。另一个可免费使用,且支持全球信息,但知道的人并不多的服务来自一个让人有点意外的地方,Flickr 。Flickr 的 flickr.places.findByLatLon 服务可以根据经纬度信息返回地名,你可以在 app explorer 做下体验,但目前最简单的方法是使用 Yahoo Query Language ( Yahoo 查询语言,简称 YQL). YQL 的样子如下:

使用 YQL 查询语言,你可以得到 XML 或 JSon 格式的数据,下图是在 JavaScript 中是使用该查询语言的例子:

结合上面的例子,在反 Geo-Location 查询的帮助下,我们得到了详细的地名 信息 :

经纬度的问题

 

经纬度虽然可以定位地球上的一个位置,但经纬度有时候容易引起歧义,为了解决这个问题,Yahoo 和 Flickr (Twitter 很快也会支持)支持另一种定位方法,叫 Where On Earth Identifier (简称 WOEID) 。使用该方法,我们可以很容易获取来自某个区域的 Flickr 图片。

这样几句 JavaScript 代码就可以显示来自指定地理位置的图片:

这些代码还可以打包成函数,下面的代码,将显示来自巴黎的10幅照片,你可以自己在 YQL console 中体验:

在文字内容中自动挖掘地理信息

假如你想获得一段文字,或者一个网页内容所提到的地名的地理位置的信息,Yahoo 提供了一个很好的服务,叫 Placemaker 。从 Yahoo 那里获取一个 developer key 就可以使用该服务了。只需创建一个发布表单发布到 http://wherein.yahooapis.com/v1/document , 将 Developer Key 以 appid 发布,需要查询的文字以 documentContent 发布,将文字类型以 documentType 发布,同时用 outputType 定义返回数据类型,如下:

你也可以在这里亲自体 验一下 ,使用 PHP 调用该 API ,甚至可以对输出数据的格式进行设置 。 这里还有一个使用 PlaceMaker 设计 GeoMaker 服务,简单输入文字或 URL,选择位置,就可以返回地图。

因为还可以在 JavaScript 中通过 YQL 使用 PlaceMaker,我们可以通过几段客户端脚本使用同样的功能:

你需要三样东西,一段位于某个 HTML 对象中的,包含地理位置的文字,一个 Google Maps API Key (申请 ) 以及以下代码:

在网页中插入地图

在线地图有很多,Google Map 是其中的领先者,除了 Google,Yahoo, 微软都提供地图服务,还有一个叫做 Open Street Maps 的开放地图服务,在 上次海地地震救援中被派上用场 。在网页中插入交互地图最简单的方法是使用 Mapstraction ,它提供一个 JavaScript 库,24ways 曾发表过一篇很好的介绍文章 。如果你只想在网页上放上你的地图,指示你的位置,而不想使用太多 JavaScript, Google static maps API 是最好的选择,它会生成静态地图,以下代码可以将这个静态地图插入你的网页(Google 还提供了一个创建静态地图的工具 ):

 

本文国际来源:http://www.smashingmagazine.com/2010/03/08/entering-the-wonderful-world-of-geo-location/

中文编译来源:锐商企业CMS 网站内容管理系统 官方网站

Geo Location 地理位置信息小结 一、通过 IP 地址获得用户的地理位置信息 二、通过 W3C Geo API 获得用户地理位置 三、移动领域 阅读详情

相关推荐

HTML 地理位置定位实现及应用

使用 Geolocation API,我们可以获取用户设备的地理位置信息,并将其应用在许多不同的应用场景中,比如位置服务、天气预报等。你可以根据具体的需求,进一步扩展和优化这些示例代码,以满足你的应用需求。本文将介绍如何使用 HTML 和 JavaScript 来实现地理位置定位,并提供相应的源代码示例。这里只是一个示例,实际情况下,你需要使用天气数据提供商的 API 来获取真实的天气数据。在这个示例中,我们假设已经获取到了天气数据,并将其存储在。通过获取用户的地理位置信息,可以向用户提供实时的天气情况。

TechPulseZ的博客 783

探索全球:IPGeoLocation —— 轻松获取 IP 地理位置信息

探索全球:IPGeoLocation —— 轻松获取 IP 地理位置信息 项目地址:https://gitcode.com/gh_mirrors/ip/IPGeoLocation 1、项目介绍 IPGeoLocation 是一个基于 Python 的轻量级工具,专门设计用于获取 IP 地址或域名的地理定位信息。它依赖于 ip-api 提供的服务,以简洁而高效的方式向用户提供 IP 地理位置的数据。...

gitblog_00086的博客 1168

IPGeoLocation:检索IP地理位置信息

IPGeo位置 ==== 检索IP地理位置信息的工具 由提供支持 要求 Python 3.x 术语颜色 科罗拉多州 下载/安装 git clone pip3 install -r requirements.txt --user 如果缺少pip3: apt-get安装python3-setuptools easy_install3点 pip3 install -r requirements.txt 特征 检索IP或域地理位置。 检索您自己的IP地理位置。 检索从文件加载的IP或域的地理位置。 新行中的每个目标。 定义您自己的自定义用户代理字符串。 从文件中选择随机的User-Agent字符串。 每行中的每个用户代理字符串。 代理支持。 从文件中选择随机代理。 每个代理URL在新行中。 使用默认浏览器在Google地图中打开IP地理位置。 将结果导出为csv,xm

IP Geolocation三篇论文笔记

第一次接触IP Geolocation,花了两天时间粗略了解了一下他们之前的工作在解决什么问题,接下来几天是细读IP Geolocation的实现过程(结合着Ensemble Learning)

我的技术栈碎碎念空间 687

Linux之SUSE系统SAP-HANA经常系统内存不足使得SAP应用不能使用解决方案

问题描述 Linux内存使用量超过阈值,使得sap应用程序无可用内存,最终导致程序崩溃。 问题原因 自己查阅了一些资料,也基于zabbix的可用内存和实际不太一样入手去找原因发现问题出现于Cached的值过大,导致系统没有可以再分配的内存空间。Cached只要用来缓存文件的,经常读写的文件会被缓存到Cached中,可以增加读写效率,该功能是Linux系统内核提供的,而SAP-HANA的日志文件很大...

liuxiangyang_的博客 6712

BioEmu:微软黑科技炸场!生成式AI重构蛋白质模拟:千倍效率碾压传统计算,新药研发周期砍半

BioEmu 是微软推出的生成式深度学习系统,可在单个 GPU 上每小时生成数千种蛋白质结构样本,支持模拟动态变化、预测热力学性质,并显著降低计算成本。

士多啤梨先生の博客 1100
上一篇: Mozilla 被指抄袭 Web 设计公司的网站设计
下一篇: Indexed DB:未来一切 Web 应用的基石
comsharp
博客等级 码龄20年 1475粉丝 41原创
评论 14
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值