我需要保护LatLng的值,这些值用于在Google地图上绘制线条,因为我做了一些工作,我不想让任何人复制它。
用于绘制线条的点是否可供任何人看到并复制或最终得到保护?
我在ajax调用的成功函数中绘制了行:
var position = new google.maps.LatLng(x, y);
var myOptions = {
zoom: 11,
center: position,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(
document.getElementById("googlemap"),
myOptions);
$.ajax({
type: "GET",
dataType: "json",
url: url,
success: function (data) {
$.each(data, function () {
$.each(this, function (index, Segment) {
$.each(Segment, function () {
for (var i = 0; i < Segment.X.length - 1; i++) {
var line = new google.maps.Polyline({
path: [new google.maps.LatLng(Segment.Y[i], Segment.X[i]), new google.maps.LatLng(Segment.Y[i + 1], Segment.X[i + 1])],
strokeColor: color,
strokeOpacity: 1.0,
strokeWeight: 2,
map: map
});
}
});
});
});
}
});
因为它是在客户端绘制的,所以可复制的点是什么?
答案 0 :(得分:1)
只要在clientSide上渲染线条,就无法保护点数。一旦创建折线,就可以访问此折线,并且可以检索路径(无论您是否以某种方式加密JSON)。
到目前为止,我看到的唯一方法是服务器端渲染,例如包含作为叠加的行的图像或FusionTableLayer(从具有私有访问权限的fusionTable创建)
答案 1 :(得分:0)
是的,客户端代码本质上是不安全和可复制的。例如,您为特定URL发出AJAX请求,该URL将返回一些带有一系列点的JSON。如果其他人直接访问了该URL,他们就能从相同的JSON中获取点数。