谷歌地图 - 保护LatLng的价值

时间:2013-02-05 12:58:01

标签: c# google-maps google-maps-api-3

我需要保护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
                                });
                            }
                        });
                    });
                });
            }
        });

因为它是在客户端绘制的,所以可复制的点是什么?

2 个答案:

答案 0 :(得分:1)

只要在clientSide上渲染线条,就无法保护点数。一旦创建折线,就可以访问此折线,并且可以检索路径(无论您是否以某种方式加密JSON)。

到目前为止,我看到的唯一方法是服务器端渲染,例如包含作为叠加的行的图像或FusionTableLayer(从具有私有访问权限的fusionTable创建)

答案 1 :(得分:0)

是的,客户端代码本质上是不安全和可复制的。例如,您为特定URL发出AJAX请求,该URL将返回一些带有一系列点的JSON。如果其他人直接访问了该URL,他们就能从相同的JSON中获取点数。