8

我正在尝试保护我的 KML 文件不被下载或轻松提取其数据。我想要的只是要在谷歌地图或谷歌地球中查看的文件,但不允许任何人“轻松”下载或提取数据(kml 文件不会公开提供)。我的 kml 文件是深度和独家分析的结果,这是我想对竞争对手隐藏的签名。

还有任何替代方法可以将 kml 转换为无法轻松获取数据的格式。我的 KML 文件具有 3D 多边形。

我理解可以以某种方式下载或提取的所有内容的概念,

4

4 回答 4

2

我有 4 个答案或 0 个答案,具体取决于您的项目。

  1. 使用 Google Maps Api for Business(每年约 10.000 美元),您可以生成一个客户端 ID 并使用它来保护一个 Fusion Table(可以在 Google Drive 中创建),您可以在其中导入您的 KML,然后您可以使用 Google Maps 显示它阿皮。这将是一个完美的解决方案,但如果没有 Google Maps Api for Business,您的 Fusion Table 将不受保护,因此任何人都可以在 Google Drive 中访问它并查看和复制粘贴多边形的 Kml 表示。

  2. 使用谷歌地图引擎(/Lite)您也可以将 Kml 导入 Google(如果您使用 Lite,则首先需要导入 Google“我的地图”,然后从 Google Maps Engine Lite 中导入“我的地图”)。我不知道非精简版的定价。可以共享 Google Maps Engine 地图,因此它是唯一可见的,在这个唯一可见的版本中,我还没有找到下载或查看我们想要的原始 kml 数据的方法。听起来不错,但在 Maps Engine Lite 中您只能使用 3 个图层,而且我还没有找到一种方法将我的所有多边形(在我的情况下为区域)一次导入一个图层。我只能像看起来那样一点一点地导入它们(设法将总共 353 个点的 10 个多边形导入一层)。每次导入都会产生一层,可以 编辑
    我可以导入所有多边形,一个多边形(由于我的多边形的算法简化)得到了一个交叉点(线交叉),一旦我修复了那个部分,导入就不再抛出任何错误,但我现在看到我只能使用包含图例的 iframe 嵌入该地图,所以这个解决方案对我来说毫无意义。

  3. 仅使用可能会请求您的 KML 的 Google 地图服务器白名单将您服务器上的 KML 访问限制为 Google 服务器。问题:在网上找不到这样的清单……必须先以某种方式收集。

  4. 还有一些博客条目 保护 KML 文件免受 Google 地图中的一般公众访问使用密码术保护 KML / KMZ 文件免受未经授权的访问

于 2013-05-10T11:48:02.323 回答
0

您的问题是基于称为“通过默默无闻的安全”的计算机安全谬误。谬误是这样的。您说您不想“轻松”下载它。你可以让它变得困难,但只要有可能,一旦有人弄清楚,他们就会编写一个脚本来自动完成它,然后它就“容易”了。你的问题没有答案,因为这是不可能的。您提供的任何内容都是可盗版的,任何数据都是可重构的。

于 2012-05-17T12:08:26.717 回答
0

为什么不直接保存 kml 文件并将其剪切/粘贴到密码加密的 USB 驱动器上,例如金士顿或 Kanguru 防御者。然后只需从您的 USB 磁盘打开 kml。

于 2014-12-04T23:57:57.537 回答
0

您可以检查$_SERVER["HTTP_USER_AGENT"]变量,如果来自谷歌,然后从 php 生成 kml。

$agent = "Kml-Google";
$google = strpos($_SERVER["HTTP_USER_AGENT"], $agent);
($google !== FALSE) or die;
header('Content-Type: application/vnd.google-earth.kml+xml kml');
header('Content-Disposition: attachment; filename="otras.kml"');
?>
<?xml version="1.0" encoding="UTF-8"?>
<kml xml ...
于 2017-01-31T21:04:46.480 回答