我为个人项目创建了一个API,该API返回了一些GeoJSON数据。
[目前,此数据基本上已返回给客户端以显示在地图上。但是,客户端(显然)具有对返回数据的完全访问权限,并且它必须自己实现必要的Javascript才能显示它。
类似:
$.ajax({
url: "url/to/my/api",
type: "POST",
data: JSON.stringify({ /* some parameters */ }),
contentType: 'application/json',
}).done(function(data) {
data.addTo(map);
//data contains all the geo-coordinates, visible in browser console, that I'd like to hide
});
问题:是否有任何方法可以“模糊处理”数据,以使客户端在地图上显示数据,但拒绝他查看数据的权利?
例如,Google Maps API实现了一些traffic layer,我们无法查看构成地铁线路的数据,只需显示它即可:
var transitLayer = new google.maps.TransitLayer();
transitLayer.setMap(map);
如何实现类似的功能,以将返回的数据“隐藏”给客户端,并让他有可能在地图上显示它?
谢谢
Gmaps不会将任何运输数据“返回”给客户端-一旦将transitLayer
设置为地图实例,它就会[[重新生成图像图块:
vs。
atob
进行解码。示例:atob
b64编码为{"type":"FeatureCollection","features":[]}
。但是请注意,周围的每个人都可以通过此页面看到...
甚至在考虑混淆之前,请确保您的API端点是安全的并且具有正确的CORS标头。其次,您可能想要跟踪谁访问了您的API以及何时访问。
此后,这成为一个密码问题,而不是geojson问题!
可能唯一可靠的方法是使您的API能够提供客户将在其地图上放置的预制图像叠加层。如果是GMap,则可以使用eyJ0eXBlIjoiRmVhdHVyZUNvbGxlY3Rpb24iLCJmZWF0dXJlcyI6W119
。