A computer-implemented method for determining a user device location, comprising: obtaining, by one or more computing devices, an initial estimate of a location of a user device; obtaining, by the one or more computing devices, maps information corresponding to a geographic area at least partially surrounding the initial estimate of the location of the user device, the maps information including one or more physical boundaries (310; 410) located at least in part within the geographic area at least partially surrounding the initial estimate of the location of the user device; obtaining, by the one or more computing devices, sensor data from one or more sensors (114; 914) provided within the user device, wherein the sensor data comprises at least one of speed, acceleration, rotation, translation, orientation, and elevation of the user device; determining, by the one or more computing devices, a set of permissible areas that can potentially include the user device, wherein the set of permissible areas is determined based on the one or more physical boundaries and on the sensor data; determining, by the one or more computing devices, if any one or more portions of the initial estimate of the location of the user device conflict with the set of permissible areas that can potentially include the user device; and revising, by the one or more computing devices, the initial estimate to provide a revised estimate for the location of the user device based on the set of permissible areas, by excluding the one or more portions of the initial estimate that conflict with the set of permissible areas, the revised estimate corresponding to positional coordinates of the user device. obtaining, by one or more computing devices, an initial estimate of a location of a user device; obtaining, by the one or more computing devices, maps information corresponding to a geographic area at least partially surrounding the initial estimate of the location of the user device, the maps information including one or more physical boundaries (310; 410) located at least in part within the geographic area at least partially surrounding the initial estimate of the location of the user device; obtaining, by the one or more computing devices, sensor data from one or more sensors (114; 914) provided within the user device, wherein the sensor data comprises at least one of speed, acceleration, rotation, translation, orientation, and elevation of the user device; determining, by the one or more computing devices, a set of permissible areas that can potentially include the user device, wherein the set of permissible areas is determined based on the one or more physical boundaries and on the sensor data; determining, by the one or more computing devices, if any one or more portions of the initial estimate of the location of the user device conflict with the set of permissible areas that can potentially include the user device; and revising, by the one or more computing devices, the initial estimate to provide a revised estimate for the location of the user device based on the set of permissible areas, by excluding the one or more portions of the initial estimate that conflict with the set of permissible areas, the revised estimate corresponding to positional coordinates of the user device.