There are several works achieving privacy-preserving location query, which are based on k-anonymity model. The k-anonymity model has been widely used to protect data privacy. The basic idea is to remove some features such that each item is not distinguishable among other k items. The relevant techniques which achieve k-anonymity of data cannot be used in our case for the following four reasons: Those techniques protect the privacy of the data stored in servers. In our PLQP, we do not store the data at all. In LBS, location data is frequently updated, and this dynamic behaviour introduces huge overhead to keep the data k-anonymous. Achieving k- anonymity in location dataset significantly violate the utility of it even for small k, so it is not suitable for our location query protocol. k is generally a system-wide parameter which determines the privacy level of all data in the system, but our goal is to leave the decision of privacy level to each user. This paper proposes a fine-grained Privacy-preserving Location Query Protocol (PLQP) which enables queries to get location information (e.g., Searching a friend’s approximate location, Finding nearest friends) without violating users location privacy. This is not a trivial job since simple anonymization makes it impossible to utilize them for queries. Also, if one directly applies queries or functions on the raw location information, privacy leakage is inevitable. Main contributions of our work are three-fold. Our protocol allows users to specify a condition instead of a group and exert access control over the users who satisfy this condition. This is more scalable since users can simply add a new condition for new privacy setting instead of hand-picking hundreds of users to form a new group. Multi-leveled Access Control: The protocol also supports semi-functional encryption. That is, the protocol enables users to control to what extent (or level) others can learn his location. Privacy-Preserving Protocol: In our protocol, every location information is encrypted and queries are processed upon ciphertexts. A fine-grained Privacy-preserving Location Query Protocol (PLQP), which successfully solves the privacy issues in existing LBS applications and provides various location based queries. The PLQP uses our novel distance computation and comparison protocol to implement semi-functional encryption, which supports multi-levelled access control, and used CP-ABE as subsidiary encryption scheme to make access control be more fine-grained.