Chinaunix首页 | 论坛 | 博客
  • 博客访问: 103753171
  • 博文数量: 19283
  • 博客积分: 9968
  • 博客等级: 上将
  • 技术积分: 196062
  • 用 户 组: 普通用户
  • 注册时间: 2007-02-07 14:28
文章分类

全部博文(19283)

文章存档

2011年(1)

2009年(125)

2008年(19094)

2007年(63)

分类: Oracle

2008-04-11 21:07:11

  来源:Oracle    作者:Rich Gibson

Google Earth 可从 获得。这是一个免费版本,但对于 Google Earth Plus,您每年需支付 20 美元,对于 Google Earth Pro,您每年需支付 400 美元。付费版本增加了诸如全球定位系统 (GPS) 集成之类的功能。(单击此处了解各个版本的不同之处。)网站说明非常简单,请立即下载使用吧!刚开始,您会看到一个从太空视角拍摄的地球视图。然后,可将视图放大来搜索位置、探索世界,就像 Lewis 和 Clark(当今探险军团的成员)一样。

活跃的 Google Earth 社区会发布一些空间信息文件。例如,单击此处阅读并下载有关 Lewis 和 Clark 探险之旅的 Google Earth 文件:29917-lewis_and_clark_expedition.kmz。您会注意到,Google Earth 文件的扩展名为 KML(即 Keyhole 标记语言,Google Earth 在以前称为 Keyhole)或 KMZ(通过 gzip 压缩的 Keyhole 标记语言)。KMZ 文件可通过 WinZip 或 Stuffit Expander 进行解压缩。

我喜欢我的 GUI,除非要尝试进行脚本编写,因此从 OSX 终端命令行,您可以输入以下命令:

gunzip -S ".kmz" 29917-lewis_and_clark_expedition.kmz

打开该文件后,您将发现它只不过是一个 XML 文件。好吧,或许并不是十分简单,但易于阅读。请深入阅读 Google Earth KML 文档!

例如,以下是描述 Camp Disappointment 的地标。


 

 Click to read entry]]>
  17: Camp Disappointment
  
 -112.820632
 48.716670
 1000.000
 0
 0
 
 root://styles#khStyle929
 
 -112.820632,48.716670,0
 
 
  
当您调出 Lewis and Clark 文件后,您将看到 Google Earth 是如何呈现该 Camp Disappointment 描述的。
元素以点元素的 元素中指定的 X, Y, Z 坐标形式显示在地图上(经度 = X,纬度 = Y,海拔 = Z,在本例中为 0)。单击该点时,会弹出一个描述球,其中显示了名称和描述元素的内容,以及到此处去或从此点出发的选项。
请特别注意,描述可以包含 URL。因此,如果该地标描述了您的一个客户,那么就可以在调出中包含有关该客户的其他属性,然后在您的 CRM 系统中嵌入一个指向客户页面的链接。

元素包含一个指向标记该位置的“图钉”URL 的链接。在本例中,该样式包含在本地文件系统上。样式描述还可以包含在 KML 文档内或外部 URL 中。
最后,看一下 元素。双击地标,您会到达 元素中指定的经度和纬度,并看到由 、 以及 元素描述的视图点。这允许您在指定视图点的地方创建地标。例如,以下是一个完整的 KML 文件,其内容为“前往旧金山的 Crissy Field 观赏金门大桥”:
  


 crissy field
 
 -122.4592370657115
 37.8050682478946
 0
 1000.275193579794
 90
 315
 
 root://styles#default
 
 -122.4592370657115,37.8050682478946,0
  

为了简单起见,您可以除去其中一些属性。以下是这两个明确地点的最简单、有用的 KML 描述:





 First Place
 
 -122.5,37.8,0
 


 Random Place
 
 -122.6,37.9,0
 


以下是抓取地理编码地址并生成 KML 文件的 PHP 程序:

' . "\n";
print '' . "\n";print '' . "\n";
while ( $row = oci_fetch_assoc($stmt) ) { 
  $address = $row["ADDRESS1"] . "," . $row["CITY"] . "," . $row["STATE"] . " " . $row["ZIP"]; 
  $name = $row["NAME"]; 
  $latitude = $row["LATITUDE"];
  $longitude = $row["LONGITUDE"];
  print "\n";
  print " $name\n"; 
  print " $address\n";
  print " \n"; 
  print " $longitude,$latitude,0\n"; 
  print " \n"; 
  print "\n";
}
print '' . "\n";
print '' . "\n";
?>

这是 caveman coder 版本,使用了专门用于显示所有细节的打印语句。在实际操作中,您可能需要使用 XML 库。请参阅以下位置的 Pear/XML/sql2xml 类说明文档:。此外,通过使用动态 URL 参数和变量,我们可以轻松地在该查询(或其他查询)中添加所需内容,这样我们的空间分析用途将更为广泛。

保持关注

现在,您已经能够创建地址数据库,通过地理编码向该数据添加经度和纬度,然后将数据导出以便可以在 Google Earth 上查看数据(假设您仍未阅读 Lewis 与 Clark 以及探险之旅的定期发布信息,并且沉迷于愉快的探险中)。

Rich Gibson () 是一位地图绘制、地理空间和地理编码方面的顾问,与人合著了 Mapping Hacks:Tips & Tools for Electronic Cartography (O’Reilly, 2005) 和 Google Maps Hacks (O'Reilly, 2006)。

阅读(284) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~