def getAdminData(self, **params): """ Deliver admin content of module maps (ajax) :return: rendered template as string or json dict """ if request.args.get('action') == 'checkpath': if os.path.exists(request.args.get('path')): return '1' return '0' elif request.args.get('action') == 'loadmap': # load tiles tile_path = request.args.get('path') def calcSubItems((pos)): return [(2 * int(pos[0]), 2 * int(pos[1])), (2 * int(pos[0]) + 1, 2 * int(pos[1])), (2 * int(pos[0]), 2 * int(pos[1]) + 1), (2 * int(pos[0]) + 1, 2 * int(pos[1]) + 1)] #def getTile(zoom, pos): # global tile_path # response = urllib2.urlopen('http://a.tile.openstreetmap.org/%s/%s/%s.png' % (zoom, pos[0], pos[1])) # #fout = open(tile_path + str(zoom)+'/'+str(pos[0])+'-'+str(pos[1])+'.png', 'wb') # fout = open("%s%s/%s-%s.png" % (tile_path, zoom, pos[0], pos[1]), 'wb') # fout.write(response.read()) # fout.close() _items = {12: [], 13: [], 14: [], 15: [], 16: [], 17: [], 18: []} for t in request.args.get('tiles').split("-"): if t != '': _items[12].append(t.split(",")) for zoom in range(13, 19): for i in _items[zoom - 1]: _items[zoom] += calcSubItems(i) result = map_utils.loadTiles('%s%s' % (current_app.config.get('PATH_TILES'), request.args.get('path')), _items) if result == 0: return babel.gettext('settings.map.loadinginprogress') # loading still active elif result == 1: return babel.gettext('settings.map.loadingstarted') # loading started return "" elif request.args.get('action') == 'stoptileload': # stop tile download for i in map_utils.LOADTILES: signal.send('map', 'tiledownloaddone', tiles=i) map_utils.LOADTILES = [] map_utils.CURRENTLOADING = [] return {} elif request.args.get('action') == 'maptiles': _map = Map.getMaps(id=request.args.get('id')) if _map: return Map.getMapBox(tilepath=current_app.config.get('PATH_TILES'), mappath=_map.path) return Map.getMapBox() elif request.args.get('action') == 'loadosmdata': # load all data from openstreetmap from emonitor.extensions import scheduler from emonitor.lib.osm.loaddata import parseOsmData #import time, datetime mapdata = Map.getMaps()[0].getMapBox(tilepath=current_app.config.get('PATH_TILES')) lat = [mapdata['min_latdeg']] while lat[-1] + .05 < mapdata['max_latdeg']: lat.append(lat[-1] + .05) lat.append(mapdata['max_latdeg']) lng = [mapdata['min_lngdeg']] while lng[-1] + .05 < mapdata['max_lngdeg']: lng.append(lng[-1] + .05) lng.append(mapdata['max_lngdeg']) scheduler.add_job(parseOsmData, kwargs={'lat': lat, 'lng': lng, 'path': current_app.config.get('PATH_DATA')}) return {'job': 'started'} elif request.args.get('action') == 'findcity': # search citystring and deliver position return map_utils.loadPositionOfCity(request.args.get('cityname')) return ""
def getAdminData(self, **params): """ Deliver admin content of module maps (ajax) :return: rendered template as string or json dict """ if request.args.get('action') == 'checkpath': if os.path.exists(request.args.get('path')): return '1' return '0' elif request.args.get('action') == 'loadmap': # load tiles tile_path = request.args.get('path') def calcSubItems((pos)): return [(2 * int(pos[0]), 2 * int(pos[1])), (2 * int(pos[0]) + 1, 2 * int(pos[1])), (2 * int(pos[0]), 2 * int(pos[1]) + 1), (2 * int(pos[0]) + 1, 2 * int(pos[1]) + 1)] #def getTile(zoom, pos): # global tile_path # response = urllib2.urlopen('http://a.tile.openstreetmap.org/%s/%s/%s.png' % (zoom, pos[0], pos[1])) # #fout = open(tile_path + str(zoom)+'/'+str(pos[0])+'-'+str(pos[1])+'.png', 'wb') # fout = open("%s%s/%s-%s.png" % (tile_path, zoom, pos[0], pos[1]), 'wb') # fout.write(response.read()) # fout.close() _items = {12: [], 13: [], 14: [], 15: [], 16: [], 17: [], 18: []} for t in request.args.get('tiles').split("-"): if t != '': _items[12].append(t.split(",")) for zoom in range(13, 19): for i in _items[zoom - 1]: _items[zoom] += calcSubItems(i) result = map_utils.loadTiles( '%s%s' % (current_app.config.get('PATH_TILES'), request.args.get('path')), _items) if result == 0: return babel.gettext( 'settings.map.loadinginprogress') # loading still active elif result == 1: return babel.gettext( 'settings.map.loadingstarted') # loading started return "" elif request.args.get('action') == 'stoptileload': # stop tile download for i in map_utils.LOADTILES: signal.send('map', 'tiledownloaddone', tiles=i) map_utils.LOADTILES = [] map_utils.CURRENTLOADING = [] return {} elif request.args.get('action') == 'maptiles': _map = Map.getMaps(id=request.args.get('id')) if _map: return Map.getMapBox(tilepath=current_app.config.get('PATH_TILES'), mappath=_map.path) return Map.getMapBox() elif request.args.get( 'action') == 'loadosmdata': # load all data from openstreetmap from emonitor.extensions import scheduler from emonitor.lib.osm.loaddata import parseOsmData #import time, datetime mapdata = Map.getMaps()[0].getMapBox( tilepath=current_app.config.get('PATH_TILES')) lat = [mapdata['min_latdeg']] while lat[-1] + .05 < mapdata['max_latdeg']: lat.append(lat[-1] + .05) lat.append(mapdata['max_latdeg']) lng = [mapdata['min_lngdeg']] while lng[-1] + .05 < mapdata['max_lngdeg']: lng.append(lng[-1] + .05) lng.append(mapdata['max_lngdeg']) scheduler.add_job(parseOsmData, kwargs={ 'lat': lat, 'lng': lng, 'path': current_app.config.get('PATH_DATA') }) return {'job': 'started'} elif request.args.get( 'action') == 'findcity': # search citystring and deliver position return map_utils.loadPositionOfCity(request.args.get('cityname')) return ""