web获取gps_创建支持GPS的Web应用程序

web获取gps

支持GPS的Web应用程序

根据您的地理位置提供服务的网站在Internet上非常流行。 Foursquare,Yelp和Google Maps等网站都利用您要在的位置为您提供与您相关的信息。 您可以轻松获取某人的位置,并根据该语言环境向他们提供信息。

在本文中,您将构建使用GPS位置向用户提供新闻内容的应用程序的后端和前端。 后端用PHP编写,并使用MySQL来保存文章列表及其相关位置及其坐标。 前端网页使用Webkit浏览器支持的定位服务来获取用户的GPS坐标。 然后,它将这些坐标在Ajax请求中发送到后端。 PHP后端系统以文章的XML列表作为响应,然后由前端动态呈现。

您可以通过两种不同的方式使用位置。 第一种是将新文章添加到数据库时。 您给PHP后端指定一个位置(例如,加利福尼亚州弗里蒙特或华盛顿特区),并且该页面使用Yahoo!提供的地理位置服务。 将该位置转换为GPS坐标。 使用位置的第二种方法是当网页向浏览器发出请求以获取用户位置,然后使用该信息通过Ajax查询数据库。

建立后端

后端代码从数据库开始,在这种情况下为MySQL。 清单1显示了单表数据库的模式。

清单1. db.sql
DROP TABLE IF EXISTS articles;
CREATE TABLE articles(
     lon FLOAT,
     lat FLOAT,
     address TEXT,
     title TEXT,
     url TEXT,
     summary TEXT );

该表有六列,从纬度和经度值以及为文章提供的原始地址(例如,加利福尼亚州弗里蒙特)开始。 然后,有关于该文章的一些传记信息,包括标题,URL和摘要。

要构建数据库,请首先使用mysqladmin创建数据库,然后使用mysql命令运行db.sql脚本:

% mysqladmin --user=root --password=foo create articles
% mysql --user=root --password=foo articles < db.sql

创建数据库后,您可以构建PHP页面,该页面将用于向数据库添加记录。 清单2显示了insert.php页面的代码。 (注意:第5行和第6行中$ url的值应显示为单个字符串。它仅显示为两个较短的字符串,仅用于格式化目的。)

清单2. insert.php
<?php
$dd = new PDO('mysql:host=localhost;dbname=articles', 'root', '');
if ( isset( $_POST['url'] ) ) {
// You need a Yahoo! PlaceFinder application key
// Go to: http://developer.yahoo.com/geo/placefinder/
  $url = "http://where.yahooapis.com/geocode?q=".urlencode($_POST['address']).
         "&appid=[yourappid] ";

  $ch = curl_init(); 
  curl_setopt($ch, CURLOPT_URL, $url); 
  curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); 
  $body = curl_exec($ch); 

  preg_match( "/\<latitude\>(.*?)\<\/latitude\>/", $body, $lat );
  preg_match( "/\<longitude\>(.*?)\<\/longitude\>/", $body, $lon );

  $sql = 'INSERT INTO articles VALUES ( ?, ?, ?, ?, ?, ? )';
  $sth = $dd->prepare($sql);
  $sth->execute( array( 
    $lon[1],
    $lat[1],
    $_POST['address'],
    $_POST['title'],
    $_POST['url'],
    $_POST['summary']
    ) );
}
?>
<html>
<body>
<form method="post">
<table>
<tr><th>Title</td><th><input type="text" name="title" /></td></tr>
<tr><th>Summary</th><td><input type="text" name="summary" /></td></tr>
<tr><th>Address</th><td><input type="text" name="address" /></td></tr>
<tr><th>URL</th><td><input type="text" name="url" /></td></tr>
</table>
<input type=
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值