1. A non-transitory machine readable medium storing a program for sampling data points in a map region, the program executable by at least one processor of a device, the program comprising sets of instructions for: receiving, over a network connection, a request for data points from a first device; determining a first region of a map to be rendered based on the request received over the network connection; identifying a first plurality of data points associated with the first region; indexing the first plurality of data points by assigning a random number to each data point in the first plurality of data points; determining a set of second regions in a neighborhood of the first region; identifying a second plurality of data points associated with the set of second regions; applying a weight to each data point in the second plurality of data points, wherein more weight is applied to data points in a region that is closer to the first region than a region that is farther from the first region; identifying a regional density of data points by: analyzing the first plurality of data points and the second plurality of data points and determining a weighted total area of the neighborhood and a weighted total number of data points in the neighborhood based in part on the weights applied to the second plurality of data points and multiplying a desired density by the weighted total area of the neighborhood and dividing by the weighted total number of data points in the neighborhood; selecting a subset of the first plurality of data points associated with the first region to be rendered based on the identified regional density of data points and the random number assigned to each data point in the first plurality of data points; and transmitting the subset of the first plurality of data points over the network connection to the first device.