在OracleXE构建GoogleEarth接口(3)
文章作者 100test 发表时间 2007:03:14 13:51:16
来源 100Test.Com百考试题网
最后一步是设置浏览器代理。在 Firefox 中,选择 Preferences->General->Connection。将您的 Socks 主机设置为端口 1080 上的本地主机,选择 Socks v4,确保其针对远程 127.0.0.1 和本地主机为 no proxy for。
这样,就可以使用 Web 界面来执行几乎所有可以通过数据库完成的操作了。因为业务数据(通常)是空间数据,所以来看一个向地址添加纬度和经度的示例。
通过 Web 界面的 SQL 部分创建一个地址表。
create table address (name varchar(128),
address1 varchar(128), address2 varchar(128),
city varchar(128), state char(2), zip char(9),
latitude number(7,5), longitude number(8,5)) |
加载几个地址:
insert into address (name, address1, city, state, zip)
values ( Oracle , 500 Oracle Parkway , Redwood Shores , CA , 94065 )
insert into address (name, address1, city, state, zip)
values ( OReilly Media , 1005 Gravenstein Highway North ,
Sebastopol , CA , 95472 ) |
向其他数据添加经度和纬度的过程称为地理编码 (geocoding)。Oracle Spatial 的完整版包括支持地理编码的 SDO_GCDR 程序包。通过 Oracle 数据库 XE,您可以使用 Geocoder.us Web 服务为地址添加地理编码。如果只有两个地址,可能只需查看坐标并手动进行更新即可,但绝对不会只有两个地址!
Geocoder.us 提供了数个 Web 服务接口,用于获取地址并返回坐标。最简单的是逗号分隔 (Comma Separated Values,CSV) 接口。您可以在浏览器中输入一个 URL 并获取坐标。该地址是:
http://rpc.geocoder.us/service/csv?address=500 Oracle Parkway,Redwood Shores,CA,94065
返回:
37.529526,-122.263969,500 Oracle Pky,Redwood City,CA,94065
还可以从 PHP 进行调用。该代码将从命令行获取地址,调用 geocoder.us,然后返回坐标:
包括地址并从命令行进行调用。(在从命令行调用 PHP 时,可以添加 –q 开关以取消普通 http 内容类型标题):
php -q ./php_work.php 1600 pennsylvania ave, washington, dc |
这将返回如下结果:
query address: 1600 pennsylvania ave, washington, dc latitude 38.898748 longitude -
77.037684 |
这是与 Geocoder.us 连接最简单的情况。