A mobile computing device comprising: one or more processors; a user interface; a network interface to couple the mobile computing device to a map data server via a wireless communication network; a non-transitory computer-readable medium storing thereon instructions for determining whether a certain geographic location, corresponding to a current location of the mobile computing device, is within a virtual perimeter (301, 302, 305) of a geographic place (203, 204, 206, 401, 505), wherein the instructions, when executed on the one or more processors, cause the mobile computing device to: receive, from the map data server, a single complex shape that describes a geometry of the geographic place (203, 204, 206, 401, 505), determine a plurality of component shapes that approximately make up a geometry of the geographic place (203, 204, 206, 401, 505), wherein each of the plurality of component shapes is selected from a limited set of scalable basic shapes, determine whether the certain geographic location is within at least one of the plurality of component shapes, generate an indication that the geographic location is within the virtual perimeter (301, 302, 305) if the geographic location is within at least one of the plurality of component shapes, and provide the indication via the user interface. one or more processors; a user interface; a network interface to couple the mobile computing device to a map data server via a wireless communication network; a non-transitory computer-readable medium storing thereon instructions for determining whether a certain geographic location, corresponding to a current location of the mobile computing device, is within a virtual perimeter (301, 302, 305) of a geographic place (203, 204, 206, 401, 505), wherein the instructions, when executed on the one or more processors, cause the mobile computing device to: receive, from the map data server, a single complex shape that describes a geometry of the geographic place (203, 204, 206, 401, 505), determine a plurality of component shapes that approximately make up a geometry of the geographic place (203, 204, 206, 401, 505), wherein each of the plurality of component shapes is selected from a limited set of scalable basic shapes, determine whether the certain geographic location is within at least one of the plurality of component shapes, generate an indication that the geographic location is within the virtual perimeter (301, 302, 305) if the geographic location is within at least one of the plurality of component shapes, and provide the indication via the user interface. receive, from the map data server, a single complex shape that describes a geometry of the geographic place (203, 204, 206, 401, 505), determine a plurality of component shapes that approximately make up a geometry of the geographic place (203, 204, 206, 401, 505), wherein each of the plurality of component shapes is selected from a limited set of scalable basic shapes, determine whether the certain geographic location is within at least one of the plurality of component shapes, generate an indication that the geographic location is within the virtual perimeter (301, 302, 305) if the geographic location is within at least one of the plurality of component shapes, and provide the indication via the user interface.