#!/usr/bin/env python

# -*- coding: utf-8 -*-

import os 
import urllib
import urllib2
import json
import sys

stepsizex = 100.0
stepsizey = 100.0

vanx = 3.3 * stepsizex
totx = 7.22 * stepsizex
vany = 50.73 * stepsizey
toty = 53.59 * stepsizey

step = 5

id         = 70;
url        = 'http://gisserver1.agro.nl/arcgis/rest/services/topografie/MapServer/%d/query?text=&geometryType=esriGeometryEnvelope&inSR=4326&spatialRel=esriSpatialRelIntersects&where=&returnGeometry=true&outSR=&outFields=*&f=pjson&geometry='%(id)
user_agent = 'openstreetmap_lnvmirror/0.1'
headers    = { 'User-Agent' : user_agent }

for dirname, dirnames, filenames in os.walk(sys.argv[1]):
	for filename in filenames:
		fp = open(sys.argv[1]+'/'+filename)
		JSON = json.load(fp)
		features = len(JSON.items()[3][1])

		if (features >= 500):
			print '%s: Te lang'%(filename)
			[vanxs, vanys, totxs, totys] = filename.replace('.json','').split(',')
			
			vanx = float(vanxs) * stepsizex
			vany = float(vanys) * stepsizey
			totx = float(totxs) * stepsizex
			toty = float(totys) * stepsizey

			if ((totx - vanx) >= 100) or ((toty - vany) >= 100):
				continue

			for x in range(int(vanx), int(totx), step):
				for y in range(int(vany), int(toty), step):
					new_filename = "%f,%f,%f,%f" % (x/stepsizex, y/stepsizey, (x+step)/stepsizex, (y+step)/stepsizey)

					if (not os.path.isfile('%s/%s.json'%(sys.argv[1],new_filename))):
						print new_filename
						req      = urllib2.Request(url+new_filename)
						response = urllib2.urlopen(req)
						doc      = response.read()
			
						w = open('%s/%s.json'%(sys.argv[1],new_filename) ,"w")
						w.writelines(''.join(doc))
						w.close
					else:
						print new_filename+': EXIST'
		else:
			print '%s: OK'%(filename)
				
