A method of handling user queries and performing data management, the method comprising: receiving data sets from a plurality of user devices, wherein the data sets comprise geographical features associated with geographical information; storing each data set as a table associated with a respective user; inserting the geographical features into a spatial index; generating a composite table from a group of the tables associated with the respective users, the composite table including all rows from each table of the group and each entry of the composite table representing a row of a given one of the group of tables; receiving a plurality of user queries from one or more of the user devices, wherein at least one of the plurality of user queries comprises a spatial query and a structured query; and responding to the at least one of the plurality of user queries by: accessing the spatial index, wherein the spatial index uses a space filling curve to map points on the Earth's surface to a one dimensional curve by projecting the Earth into the six faces of a cube, each face being recursively divided into cells, the cells being mapped from two-dimensions to one dimension using the space filling curve; identifying a cell of the index associated with the spatial query; looking up features contained inside the identified cell in the spatial index; looking up the set of features matching the structured query in the composite table and obtaining an intersection of results between the features inside the identified cell and the features from the composite table; and providing the results to the user. receiving data sets from a plurality of user devices, wherein the data sets comprise geographical features associated with geographical information; storing each data set as a table associated with a respective user; inserting the geographical features into a spatial index; generating a composite table from a group of the tables associated with the respective users, the composite table including all rows from each table of the group and each entry of the composite table representing a row of a given one of the group of tables; receiving a plurality of user queries from one or more of the user devices, wherein at least one of the plurality of user queries comprises a spatial query and a structured query; and responding to the at least one of the plurality of user queries by: accessing the spatial index, wherein the spatial index uses a space filling curve to map points on the Earth's surface to a one dimensional curve by projecting the Earth into the six faces of a cube, each face being recursively divided into cells, the cells being mapped from two-dimensions to one dimension using the space filling curve; identifying a cell of the index associated with the spatial query; looking up features contained inside the identified cell in the spatial index; looking up the set of features matching the structured query in the composite table and obtaining an intersection of results between the features inside the identified cell and the features from the composite table; and providing the results to the user. accessing the spatial index, wherein the spatial index uses a space filling curve to map points on the Earth's surface to a one dimensional curve by projecting the Earth into the six faces of a cube, each face being recursively divided into cells, the cells being mapped from two-dimensions to one dimension using the space filling curve; identifying a cell of the index associated with the spatial query; looking up features contained inside the identified cell in the spatial index; looking up the set of features matching the structured query in the composite table and obtaining an intersection of results between the features inside the identified cell and the features from the composite table; and providing the results to the user.