When sensors are redundantly deployed, a subset of senors should be selected to actively monitor the field (referred to as a "cover"), while the rest of the sensors should be put to sleep to conserve their batteries. We consider networks in which all the nodes are not aware of their locations or the relative directions of neighbors. We develop several geometric and density-based tests for deciding whether a sensor should turn itself off without degrading the quality of field coverage. These tests rely on estimated neighbor distances and locally advertised two-hop neighborhood information. We design an algorithm (LUC) that exploits these tests for computing covers. Based on LUC, we propose two distributed protocols (LUC-I and LUC-P) that periodically select covers and switch between them to extend "coverage time" and tolerate unexpected failures. Our protocols are highly efficient in terms of message overhead and processing complexity. We implement LUC-I in TinyOS and evaluate it using the TOSSIM simulator. Experimental results indicate that our approach significantly prolongs coverage time.