如果在 iPad (使用iOS 4.2或5.0.1)上安装了 Google地球应用程序,则链接指向 comgoogleearth:// 来自Safari中的HTML文档或GoodReader中的PDF将打开该应用程序。
有没有办法提供参数来指定位置作为搜索或.kml或.kmz中的文件?到目前为止,我已经尝试了各种语法而没有任何运气。
我已经知道如何在Google 地图应用中打开该位置 - 使用http://maps.google.com/链接以及“地图”应用而不是网站“劫持”的相应搜索参数
如果可能的话,我想与谷歌地球做同样的事情。
答案 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脚本的服务器(不会脱机工作)