可以将搜索参数的位置传递到iOS中的comgoogle earth://吗?

时间:2011-11-30 18:09:30

标签: ios google-earth

如果在 iPad (使用iOS 4.2或5.0.1)上安装了 Google地球应用程序,则链接指向 comgoogleearth:// 来自Safari中的HTML文档或GoodReader中的PDF将打开该应用程序。

有没有办法提供参数来指定位置作为搜索或.kml或.kmz中的文件?到目前为止,我已经尝试了各种语法而没有任何运气。

我已经知道如何在Google 地图应用中打开该位置 - 使用http://maps.google.com/链接以及“地图”应用而不是网站“劫持”的相应搜索参数

如果可能的话,我想与谷歌地球做同样的事情。

1 个答案:

答案 0 :(得分:2)

非直接否,迄今为止,Google地球的Apple应用程序协议不支持任何类型的查询。

NSString *stringURL = @"comgoogleearth://";
NSURL *url = [NSURL URLWithString:stringURL];
[[UIApplication sharedApplication] openURL:url]

但是,您可以非常轻松地在公共访问服务器上间接使用CGI脚本实现所需的功能。

1)创建一个CGI脚本,该脚本将接受给定的纬度和经度,并创建一个具有给定位置的简单KmlPlacemark。

例如,在PHP中:

<?php
// Get the latitude and longitude from the query
if(is_numeric($_GET["lng"]) && is_numeric($_GET["lat"])) {
  $lng = $_GET["lng"];
  $lat = $_GET["lat"];
} else {
  exit();
}

// Creates an array of strings to hold the lines of the KML file.
$kml = array('<?xml version="1.0" encoding="UTF-8"?>');
$kml[] = '<kml xmlns="http://earth.google.com/kml/2.1">';
$kml[] = ' <Document>';
$kml[] = '   <Placemark id="">';
$kml[] = '   <Point>';
$kml[] = '   <coordinates>' . $lng . ','  . $lat . '</coordinates>';
$kml[] = '   </Point>';
$kml[] = '   </Placemark>';
$kml[] = ' </Document>';
$kml[] = '</kml>';
$kmlOutput = join("\n", $kml);
header('Content-type: application/vnd.google-earth.kml+xml');
echo $kmlOutput;
?>

2)使用我们创建的提供所需坐标的CGI脚本的URL来调用Google Earth的Apple应用程序协议。 e.g。

comgoogleearth://www.yourserver.com/kmlScript.php?lng=53.2&lat=34.34

加载网址后,Google地球应用会飞到该位置。

此方法可用于从搜索(地理编码)生成位置,只需轻微修改即可。

唯一的限制是IOS设备必须能够访问持有CGI脚本的服务器(不会脱机工作)