我正在尝试保护我的KML文件,免于下载或轻松提取其数据。我想要的只是在google maps或google earth中查看的文件,但不允许任何人下载它或“轻松”提取数据(kml文件不会公开发布)。我的kml文件是深度和独家分析的结果,这是我想要隐藏竞争对手的签名。
还有什么替代方法可以将kml转换为无法从中轻松获取数据的格式。我的KML文件有三维多边形。
我理解可以看到的所有内容的概念都可以以某种方式下载或提取,
答案 0 :(得分:2)
我有4个答案或0个答案,具体取决于您的项目。
使用Google Maps Api for Business(每年约10.000美元)即可 生成客户端ID并使用它来保护Fusion Table(可以 在Google云端硬盘中创建),您可以在其中导入KML以及您的KML 然后可以使用Google Maps Api进行显示。这将是一个完美的解决方案,但如果没有Google Maps Api for Business,您的Fusion Table不受保护,因此任何人都可以访问 它在Google云端硬盘中查看并复制粘贴Kml 多边形的表示。
使用Google Maps Engine (/Lite),您可以导入
Kml也适用于谷歌(如果您使用Lite,则首先需要导入Google
“我的地图”,您可以在Google Maps Engine精简版中使用
从“我的地图”导入)。我不知道非精简版的定价。一个
Google Maps Engine地图可以共享,因此只能在其中查看
这个唯一可见的版本我还没有找到下载或下载的方法
查看raw-kml-data,这将是我们想要的。听起来都不错,
但是你只能在Maps Engine Lite中使用3层,我还没有找到导入我所有多边形的方法
我的情况)一次进入一层。我只能一点一点地导入它们(设法导入10个多边形,总共353个点进入一个层)。每次导入都会导致一个图层,无法将图层从一个图层移动到另一个图层,并且由于某种原因,有一些我似乎无法导入的多边形。的修改:
我可以导入所有多边形,一个多边形(由于算法简化了我的多边形)得到了一个交叉点(线交叉),一旦我修复了那个部分,导入就不再抛出任何错误,但我现在看到我只能使用包含图例的iframe嵌入该地图,所以这个解决方案对我来说没什么。
仅使用可能会请求您的Google地图服务器的白名单,将您服务器上的KML限制权限限制在Google服务器上 KML。问题:在网上找不到这样的清单......必须收集一些 先行。
还有博客条目Protecting KML Files from general public access in Google Maps 和Protect KML / KMZ Files from Unauthorized Access Using Cryptography
答案 1 :(得分:0)
您的问题是基于计算机安全的谬误,称为“通过默默无闻的安全”。这个谬论就是这样。你说你不想“轻松”下载它。你可以把它变得很难,但是只要有人知道它就可以了,他们就会编写一个脚本来自动完成它然后“很容易”。你的问题没有答案,因为这是不可能的。您提供的任何内容都是可盗版的,任何数据都是可重建的。
答案 2 :(得分:0)
为什么不直接保存kml文件并剪切/粘贴到密码加密的USB驱动器上,如金士顿或Kanguru后卫。然后从你的USB磁盘上打开kml。
答案 3 :(得分:0)
您可以查看$_SERVER["HTTP_USER_AGENT"]
变量,如果是来自Google,则从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 ...