Take the 2-minute tour ×
Geographic Information Systems Stack Exchange is a question and answer site for cartographers, geographers and GIS professionals. It's 100% free, no registration required.

What techniques do people use when protecting data (e.g., preventing a user downloading the whole dataset) they are overlaying on top of Google/Yahoo/Bing etc.?

share|improve this question
    
You should ask this question on StackOverflow.com instead. –  Jonas Jul 23 '10 at 9:38
3  
I don't think so. It envolves spatial applications and context that the people on SO know little about. They can give super useful hints/solutions, but here we have a context. –  George Jul 28 '10 at 12:17

5 Answers 5

Use WMS instead of WFS - then all you are sending is a picture of your data instead of your actual data.

share|improve this answer
1  
+1 for simple solution! –  George Aug 4 '10 at 13:06

You can restrict number of request/retrived features/etc per second/hour per ip. Annother approch would be converting it to harldy readable format (i.e. custom projection) or rasterizing vector data (as Google/MS does). You may also try to encrypt it, but I think, as cipy said, the best way is not to show it ;)

share|improve this answer

Keep the source off the Internet. Implement a proxy webpage and check the parameters/urls. Only allow certain parameters etc, if they don't match the proper ones reject. This could allow you to limit usage by IPs etc..

If your users login. You can add token handling.

If you use ArcGIS Server here is esri's page with sample proxy code: http://resources.esri.com/help/9.3/arcgisserver/apis/javascript/arcgis/help/jshelp_start.htm#jshelp/ags_proxy.htm

share|improve this answer

For Google Maps or any Web Accessible Mapping platform is a good idea to hold your data on your own server and use php (or asp - et al) to control whom has access. This a good method for doing this in Google Maps API - using a MySQL Database and PHP http://code.google.com/apis/maps/articles/phpsqlsearch.html#outputxml

*First, you should put your database connection information in a separate file. This is generally a good idea whenever you're using PHP to access a database, as it keeps your confidential information in a file that you won't be tempted to share. In the Maps API forum, we've occasionally had people accidentally publish their database connection information when they were just trying to debug their XML-outputting code. The file should look like this, but with your own database information filled in. phpsqlsearch_dbinfo.php*:

I use this route with data held in postgres - only admin has control. Some other methods can be used (ip restrictions etc)

share|improve this answer

It is very difficult to restrict a Users to reproduce the layers (i am assuming you are talking about GIS data). That is why I will suggest you protect data using Cryptography or Digital Watermarking.

For more info see How can we protect GIS data?

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.