67 Location Privacy: Boundaries and Patterns
67.1 Overview
This first route follows location data through its boundaries and applies privacy-preserving design and consent controls.
This is part 1 of 2. Continue with Location Privacy: Failures and Trade-offs for the second focused route.
67.2 Start Simple
Share a Place Only for a Clear Job
Picture a school app that tells a parent when a bus is near the next stop. The family needs a useful arrival alert. They do not need a permanent map of every child and driver.
The service designer should begin with the job. Name whose place is used, who may see it, and when the alert should stop. Ask whether a rough area will work instead of an exact point. Set a short life for the record and give the person a clear way to pause or end the sharing.
Then test the whole path. Check the phone, the service, each saved copy, and every person who can open it. Make a missing signal visible so silence is not mistaken for safety.
Write the promise in words a family can check. “Show the bus within ten minutes of this stop” is clearer than “improve travel.” It limits both the place and the time. Let the family see when sharing is on. Let them remove an old record without hunting through several screens.
Run the test with a child, a driver, a parent, and a support worker. Give each role only the view needed for its task. Try a late bus, a lost phone, and an account used by the wrong person. The result should protect people even when the day does not go to plan.
Keep a short review card beside the feature. It should state the job, people, place detail, start time, stop time, saved copies, and help route. A new team member can then see why each fact exists. If no one can explain a field, remove it from the plan.
Check the card when the service adds a map, report, partner, or new use. Ask the same family question again: would a reasonable person expect this? Give notice before the change, not after. Keep the old choice until the person makes a new one.
At the end of the bus trip, verify that live sharing stopped. At the end of the saved period, verify that old records are gone from the main service and its planned copies. Record the check so the promise is more than text on a screen.
Use five short questions during review. What job needs the place? Who needs to see it? How much detail is enough? When should sharing stop? What can the person do?
Answer with a real case. The bus alert needs a route area. It may need the next stop. It does not need every shop passed on the way. The driver needs traffic guidance. A parent needs the arrival window. A school worker may need a late-bus warning. Those are different views.
Now test control. Turn sharing on. Check the visible sign. Pause it. Check that new facts stop. Start it again. End the trip. Check that live access closes. Ask a support worker to repeat these steps.
Test an error next. Give the phone a wrong time. Remove its network link. Move it outside the route. Let its battery die. The screen must show doubt. It must not show an old place as current. Help must stay reachable.
Finally, inspect the record. Use a random trip name. Follow it through each planned store and copy. Check each access role. Remove the trip. Confirm the stated end state. Record any copy that needs more time and why.
These checks keep the design tied to a human promise. They also expose broad collection early. If the alert still works without an exact point, use less detail. If an old copy has no job, do not keep it. If a new partner needs data, run the review again before sharing.
This simple rule has a limit. Several harmless facts can reveal more when they are joined. Practitioner shows how to record consent and access. Under the Hood explains how time, radio clues, and combined records can expose a person again.
Location privacy starts before the first coordinate is stored. Begin with who can be located, who can infer something from that location, what purpose justifies it, how long it remains useful, and how the user can understand, limit, or withdraw the tracking.
- First, define the product boundary for location data before choosing sensors or maps.
- Then, minimize raw coordinates into purpose-bound events, consent states, and role-limited views.
- Next, connect privacy patterns to regulation, emergency accuracy, and public failure cases.
- Finally, test tradeoffs with fleet tracking, re-identification risk, quizzes, and calculators.
Checkpoint callouts pause after major design decisions; Deep-dive material holds optional examples, calculations, or extended practice.
67.3 Learning Objectives
By the end of this chapter, you will be able to:
- Assess Privacy Risks: Evaluate the sensitivity of location data and potential for re-identification
- Apply Privacy-Preserving Patterns: Implement tiered disclosure, anonymous aggregation, and on-device geofencing
- Explain E911 Requirements: Describe regulatory mandates for emergency location services and accuracy thresholds
- Design Ethically: Justify design decisions that balance safety, functionality, and user autonomy in location-aware IoT systems
Key Concepts
GPS: Global Positioning System providing 3-10 metre outdoor accuracy using triangulation from 4+ satellites, consuming 20-100 mA active current. Indoor Positioning: Techniques (BLE beacons, UWB, Wi-Fi RSSI, IMU dead-reckoning) achieving 0.1-5 metre accuracy where GPS signals are unavailable. Geofencing: Virtual geographic boundary triggering automated actions when a tracked asset enters or exits the defined area. Dead Reckoning: Position estimation using last known location plus measured movement (speed, heading) when GPS signal is lost. RSSI-Based Positioning: Location estimation from signal strength of known beacon nodes, achieving 2-5 metre accuracy in calibrated environments. Ultra-Wideband (UWB): Radio technology providing 10-30 cm indoor positioning accuracy using time-of-flight measurements between anchor nodes. Location Privacy: User right to control who can access their location history and how granular that location data is stored.
67.4 Prerequisites
- Location Awareness Fundamentals: Understanding of positioning technologies
- Privacy Foundations: Basic privacy principles
67.5 Location Privacy Boundaries
Location privacy starts with the question a feature is allowed to answer. “Is someone home?”, “did the driver reach stop 17?”, “which room contains the pump?”, and “where is the caller during an emergency?” require different precision, timing, retention, and audiences. A design that stores a continuous coordinate trail for all four questions has crossed the product boundary.
Privacy-preserving location design makes the boundary visible. Users should know when tracking is off, paused, active, coarse, precise, emergency-only, or shared with another person. The interface should also show what happens when operating-system permission changes, such as Android approximate location, iOS Precise Location being disabled, background location being denied, or Bluetooth scanning permission being revoked.
The permission prompt is only one point in a much longer location-data path. Figure 67.1 exposes what a feature can infer and where the resulting evidence travels, so the team can minimize the whole boundary rather than its first screen.
Begin Figure 67.1 with Signals: precise position, approximate place, and Wi-Fi, beacon, or cell evidence. The Feature column narrows those inputs to purposes such as nearby setup, an arrival action, or route recording, but Inferences shows the extra knowledge created—routine places, dwell patterns, Co-presence, and destinations. Network then reveals storage, logs, SDKs, and exports beyond the handset. The final Fix Decision reduces detail, retention, or collection frequency, carrying the chapter’s purpose and control principles into an auditable privacy choice.
Purpose: connect each location event to a named feature, not a generic analytics bucket. Precision: choose presence, named zone, coarse radius, floor/room, or coordinates according to the task. Control: give users pause, delete, export, selective sharing, emergency override, and permission-repair paths they can understand.
That boundary should be stated in product language before the team chooses a sensor. A family safety app might need “arrived at school” and “SOS location now,” not a minute-by-minute route. A workplace comfort system might need “zone occupied” and “zone recently empty,” not a named employee trail. A fleet system might need “stop confirmed,” “break mode active,” and “emergency assistance requested,” not every off-route errand. The privacy design is stronger when the feature can still be explained without showing a raw map.
The user experience should also reveal uncertainty. Approximate permission, stale fixes, indoor drift, multipath, low battery, disabled Bluetooth, revoked background access, and missing network connectivity can all change what the system knows. Instead of quietly escalating collection, the interface can show “using coarse arrival zone,” “waiting for local geofence,” “precise location shared for emergency only,” or “tracking paused until the next shift.” Those visible states help users understand the tradeoff and help operators avoid over-trusting a location claim.
Finally, location privacy includes people who are not the account owner. Children, guests, employees, delivery drivers, patients, bystanders, and nearby device owners can appear in location-derived data. The design record should name who is sensed, who controls the setting, who can see the result, and how a person can challenge or delete a record. Without that record, later analytics, support tooling, or partner integrations can turn a narrow feature into broader surveillance.
67.6 Data Flow Before Maps
Start by drawing where raw location appears and where it disappears. A phone can evaluate a geofence locally through Android Geofencing API, Google Fused Location Provider, Apple Core Location region monitoring, or the browser Geolocation API. A wearable can convert GNSS, BLE proximity, UWB room state, or Wi-Fi BSSID observations into a zone event before upload. A building system can store occupancy counts from PIR, CO2, or mmWave presence sensors without naming individuals.
The server should receive the least precise event that still runs the feature. For many automations, that means “entered home geofence,” “asset near dock 3,” “room occupied,” or “driver arrived at stop 17” rather than raw latitude/longitude. When precise location is justified, such as SOS, fall detection, E911-like emergency escalation, or turn-by-turn navigation, shorten retention and mark the event with the reason precision was used.
- Define the event schema: include purpose, precision tier, source, timestamp, freshness, consent version, retention expiry, and sharing audience.
- Separate modes: handle off-duty, break, guest, child, caregiver, employee, emergency, and support states with different defaults.
- Test the controls: verify denied permission, approximate permission, pause, deletion, export, background tracking, emergency sharing, and retention expiry.
Design the permission flow as a recovery path, not only an onboarding step. The app should explain why foreground location, background location, Bluetooth scanning, nearby-device access, notification permission, or motion activity is requested, and it should still offer a degraded feature when the user declines. For example, a thermostat can accept manual “away” status, a child tracker can show the last known zone with staleness, and a delivery app can request a one-time precise fix only at delivery confirmation. A privacy review should include screenshots or test notes for each denied, approximate, paused, and restored state.
Then align operational dashboards with the same precision tiers. Dispatchers, caregivers, supervisors, support agents, and analytics users rarely need identical views. A dispatcher may need live location for an active incident, a caregiver may need a safe-zone alert, a supervisor may need aggregate on-shift progress, and support may only need permission state and error logs. If every role receives a full coordinate history because it was convenient to build one map component, the product has failed the minimization design.
Before release, walk one event through the system. Take “entered delivery stop” from GNSS or fused provider, through local geofence evaluation, event creation, upload, API validation, database storage, dashboard display, export, retention expiry, and deletion. Confirm that the record keeps the purpose id, precision tier, consent version, and expiry date, and confirm that raw coordinates are absent when the feature promised zone-only processing. This walkthrough catches privacy regressions that a UI review alone misses.
67.7 Minimize Before Persisting
Location systems need minimization at the edge, in transit, and at rest. On the device, convert coordinates to geofence transitions or room/zone labels when possible. In transit, use TLS and avoid query-string coordinates. At rest, separate identity from location events, apply role-based access control, encrypt sensitive fields, set retention TTLs, and log access to live or historical location.
Be careful with identifiers that look harmless. Bluetooth LE identifiers, Wi-Fi BSSID lists, device ids, advertising ids, installation ids, and repeated timestamps can re-identify a person even when a name is removed. Aggregation needs suppression thresholds or differential privacy noise when outputs are shared beyond the immediate operational team. Support tools should show only the precision needed for the support task.
- Derived event: prefer zone_enter, zone_exit, near_beacon, room_occupied, stop_confirmed, or emergency_location over raw coordinate streams.
- Access boundary: separate user view, caregiver view, dispatcher view, support view, and analytics view so one role does not inherit every location detail.
- Failure mode: when permission is denied, sensors disagree, or the event is stale, explain the degraded behavior without pushing users into unnecessary tracking.
Implementation should treat privacy as data-plane behavior. A mobile client can keep raw latitude and longitude in memory long enough to evaluate a geofence, then upload only a signed zone transition with a monotonic event id. A gateway can translate room-level UWB or BLE observations into an occupancy topic before publishing to MQTT. An API can reject coordinate fields on endpoints that accept only zone events. A database can place precise emergency records in a short-retention table instead of the same table used for routine analytics.
Schema design matters. Useful fields include event_id, user_or_device pseudonym, purpose_id, precision_tier, source_family, zone_id, timestamp, observed_at, received_at, stale_after, consent_version, retention_until, emergency_flag, and sharing_scope. Store quality and policy metadata alongside the derived event so later services do not infer permission from missing fields. If the product supports export or deletion, keep enough indexing to find all records for the user without joining through a raw coordinate trail.
Security controls should match the sensitivity of location history. Enforce authorization on both live and historical reads, protect admin dashboards with least-privilege roles, log access to precise or emergency events, and alert on bulk exports or unusual support lookups. Encrypting a coordinate column is helpful, but it does not solve purpose creep if analytics jobs, feature stores, or partner webhooks receive the same precise data. The safer pattern is to minimize first, then encrypt, audit, and expire the records that remain.
Automated tests can keep the contract honest. Add fixtures for denied permission, approximate permission, background revocation, emergency escalation, retention expiry, support access, and deletion. The assertions should check not only that the feature works, but that forbidden data is absent: no coordinates in zone-only events, no user id in aggregate occupancy, no retained emergency fix after the retention window, and no support view of precise history without an authorized purpose.
Checkpoint: Boundary and Data Flow
- You now know how to state the location question a feature is allowed to answer.
- You now know why raw coordinates should disappear into zone, room, stop, or emergency events as early as possible.
- You now know how purpose ids, precision tiers, retention expiry, and role views keep minimization enforceable.
We have bounded what the product is allowed to know. The next question is how a release review turns those boundaries into practical privacy patterns and user controls.
67.8 Location Privacy for IoT Design
Location data is among the most sensitive information IoT systems collect. This section provides practical guidance for privacy-preserving location-aware design.
Before deploying location-aware IoT, evaluate these privacy dimensions:
67.8.1 Data Collection
[ ] Minimal precision: Collect only precision needed (zone vs. coordinates). [ ] Temporal limits: Limit how often location is recorded. [ ] Contextual necessity: Location only collected when feature requires it. [ ] On-device processing: Process location locally when possible, not cloud.
Precision Guidelines:
| Use Case | Precision Needed | Privacy-Preserving Approach |
|---|---|---|
| Presence detection | Room-level | PIR sensors (anonymous), zone-based (no coordinates) |
| Home automation | Geofence (100m radius) | Coarse location API, on-device geofence detection |
| Asset tracking | Building-level | BLE proximity (which beacon, not coordinates) |
| Navigation | Meter-level | Ephemeral (don’t store history) |
| Emergency/Safety | Precise coordinates | Only transmitted on SOS trigger |
67.8.2 Data Storage
[ ] Retention limits: Auto-delete old location data (24-48 hours default). [ ] Local-first: Store on device, not cloud, when possible. [ ] Anonymization: Hash/encrypt identifiers if centralized storage required. [ ] Aggregation: Store zones/patterns, not coordinate trails.
67.8.3 Data Sharing
[ ] User control: Granular on/off for location sharing per feature. [ ] Purpose limitation: Location used only for stated purpose. [ ] Third-party audits: No location sharing with advertisers/data brokers. [ ] Consent transparency: Clear disclosure of who sees location and why.
67.8.4 User Controls
[ ] Pause tracking: Temporary disable without uninstalling app. [ ] History access: Users can view/export their own location data. [ ] Selective sharing: Choose who sees location (family vs. public). [ ] Deletion: One-click delete all location history.
67.8.5 Technical Safeguards
[ ] Encryption in transit: HTTPS/TLS for location transmission. [ ] Encryption at rest: Location data encrypted in database. [ ] Access controls: Strict authentication for location queries. [ ] Audit logs: Track who accessed location data and when. [ ] Differential privacy: Add noise to aggregated location statistics.
67.8.6 Pattern 1: Tiered Disclosure
Don’t share precise location by default. Escalate precision based on need:
| Tier | Precision | When to Use | Example |
|---|---|---|---|
| 0: Offline | No location shared | Normal operation | Smart thermostat doesn’t need location |
| 1: Status | Boolean (home/away) | Automation triggers | “Someone is home” (lights on) |
| 2: Zone | Named area | Notifications | “Package delivered to porch” |
| 3: Coarse | ~100m radius | Geofencing | “Arrived in neighborhood” (start preheating) |
| 4: Precise | GPS coordinates | Emergency only | 911 call, fall detection alert |
Implementation:
Normal: No location tracking
Geofence trigger: "Device entered 'Home' zone" (no coordinates)
Emergency: "Fall detected at 37.7749 N, 122.4194 W"
67.8.7 Pattern 2: Anonymous Aggregation
For space utilization, collect presence counts, not identities:
Bad (invasive):
Track “John’s phone is in Conference Room A”. Store: {user_id: “john@company”, location: “Room_A”, timestamp: “2026-01-15 14:32”}.
Good (anonymous):
Detect: “4 people in Conference Room A”. Store: {room: “A”, occupancy: 4, timestamp: “2026-01-15 14:30”} (15-min buckets).
67.8.8 Pattern 3: On-Device Geofencing
Detect zone entry/exit on device, not server:
Privacy-Preserving:
App downloads geofence zones (coordinates of home, office). Phone continuously checks GPS against local zones. On zone transition, sends trigger: “Entered zone ‘Home’” (no coordinates). Server never sees GPS coordinates, only zone events.
Invasive Alternative:
Phone streams GPS to server continuously. Server checks against zones. Creates coordinate trail revealing everywhere user went.
67.8.9 Differential Privacy Analytics
Add mathematical noise to aggregated location data:
Use Case: Building management wants foot traffic heatmap
Without differential privacy:
Store exact coordinates of every person. Risk: Re-identification possible, especially for rare paths.
With differential privacy:
Add calibrated noise to aggregated counts. Publish: “~42 people passed this hallway today” (±5). Preserves general patterns while preventing individual tracking.
Before deciding how EDGE / LOCAL shapes differential privacy analytics, inspect Figure 67.2 beside PII and. Together, EDGE / LOCAL and PII and frame the differential privacy analytics claim: privacy-preserving smart city data flow where raw sensor data is minimized at the edge before anonymous aggregates reach cloud analytics.
Trace Figure 67.2 from EDGE / LOCAL toward PII and; that hand-off expresses privacy-preserving smart city data flow where raw sensor data is minimized at the edge before anonymous aggregates reach cloud analytics. For differential privacy analytics, EDGE / LOCAL supplies visible evidence; PII and constrains the decision. In Figure 67.2, retain EDGE / LOCAL beside PII and so differential privacy analytics remains explicit.
Run this review before any release that changes location collection, precision, retention, sharing, or default visibility:
Purpose: Name the user-visible feature that requires location data and remove any collection not needed for that feature. Precision: Record the lowest useful level: presence, named zone, coarse radius, or precise coordinate. Timing: State when tracking starts, pauses, resumes, and stops, including break, off-duty, and emergency states. Audience: List every role that can see the data and whether they see live location, zone events, history, or aggregate counts. Control: Confirm the user can pause tracking, view recent events, delete history, and understand any safety exception. Evidence: Keep one test case for opt-in, pause, deletion, denied permission, emergency escalation, and retention expiry.
If the change cannot pass this review, the design is asking for more location authority than the feature justifies.
Checkpoint: Privacy Patterns
- You now know how tiered disclosure escalates from offline status to precise emergency location only when justified.
- You now know why anonymous aggregation, on-device geofencing, and differential privacy reduce both risk and stored data.
- You now know how consent change reviews catch precision, timing, audience, control, and retention changes before release.
The design patterns reduce routine collection. Emergency systems are different because regulation can require precise, timely location under constrained conditions.
Be aware of legal requirements in your jurisdiction:
| Regulation | Key Requirements | Penalties |
|---|---|---|
| GDPR (EU) | Explicit consent, purpose limitation, right to deletion | Up to 20M EUR or 4% revenue |
| CCPA (California) | Disclosure, opt-out, no sale without consent | $2,500-$7,500 per violation |
| COPPA (US, children) | Parental consent for <13 location tracking | $46,000+ per violation |
| Location Privacy Laws | Various US states restrict tracking without consent | Varies |
Best Practices:
Consent-first: Don’t track location until user explicitly enables. Continuous indication: Show icon/LED when location is active. Easy opt-out: One-tap disable, not buried in settings. Data minimization: GDPR Article 5 requires collecting only necessary data. Breach notification: Must report location data leaks within 72 hours (GDPR).
67.9 Regulatory Requirements: E911 Mandates
One of the most significant regulatory drivers for mobile location technology in the United States has been the Enhanced 911 (E911) mandates from the Federal Communications Commission (FCC). These regulations established mandatory location accuracy requirements for wireless emergency calls.
The Problem: When you call 911 from a landline, emergency responders know exactly where you are—the phone is physically connected to your address. But what happens when you call from a mobile phone while driving or from an unfamiliar location?
The Solution: The FCC created E911 rules requiring mobile carriers to automatically transmit your location to 911 call centers. This drove massive investment in mobile location technology, making GPS and network-based positioning standard features in every phone—technology that IoT devices now use for tracking, geofencing, and safety applications.
Why IoT designers care: E911 accuracy requirements (50-300 meters) define what “good enough” location accuracy means for emergency applications, and the handset-based vs. network-based distinction maps directly to IoT design choices.
67.9.1 E911 Phase I and Phase II Requirements
The FCC implemented E911 in two phases:
| Phase | Effective Date | Requirements |
|---|---|---|
| Phase I | April 1998 | All 911 calls must complete even without active subscription; report cell tower location and callback number |
| Phase II | December 2005 | 95% penetration of Automatic Location Identification (ALI) with specific accuracy requirements |
Before deciding how REQUIREMENTS shapes e911 phase i and phase ii requirements, inspect Figure 67.3 beside Phase I. Together, REQUIREMENTS and Phase I frame the e911 phase i and phase ii requirements claim: timeline showing e911 evolution from basic requirements to enhanced accuracy to next-generation capabilities.
Read REQUIREMENTS alongside Phase I in Figure 67.3; their named relationship makes timeline showing e911 evolution from basic requirements to enhanced accuracy to next-generation capabilities concrete. For e911 phase i and phase ii requirements, REQUIREMENTS supplies visible evidence; Phase I constrains the decision. In Figure 67.3, retain REQUIREMENTS beside Phase I so e911 phase i and phase ii requirements remains explicit.
67.9.2 E911 Handset vs Network Tiers
Before deciding how METHOD shapes e911 handset vs network tiers, inspect Figure 67.4 beside 150 m. Together, METHOD and 150 m frame the e911 handset vs network tiers claim: comparison of e911 accuracy requirements for handset-based and network-based positioning.
In the diagram, compare METHOD with 150 m in Figure 67.4; their contrast makes comparison of e911 accuracy requirements for handset-based and network-based positioning explicit. For e911 handset vs network tiers, METHOD supplies visible evidence; 150 m constrains the decision. In Figure 67.4, retain METHOD beside 150 m so e911 handset vs network tiers remains explicit.
| Technology | 67% of Calls | 95% of Calls | Method | Advantages | Limitations |
|---|---|---|---|---|---|
| Handset-Based (A-GPS) | ≤ 50 meters | ≤ 150 meters | GPS receiver in phone + network assistance | Higher accuracy, works in rural areas | Requires GPS hardware, longer initial fix time, poor indoors |
| Network-Based | ≤ 100 meters | ≤ 300 meters | Cell tower triangulation (TDoA, AoA, signal strength) | No phone hardware required, faster response | Lower accuracy, depends on tower density, very poor in rural areas |
The 67%/95% structure acknowledges that location accuracy varies even with the same technology:
- 67% (typical case): Most calls achieve this accuracy under normal conditions
- 95% (worst case): Almost all calls achieve at least this accuracy, accounting for challenging environments (urban canyons, buildings, interference)
IoT Design Implication: When specifying location accuracy for safety-critical IoT applications, use the 95% threshold (worst-case) rather than typical accuracy. If your asset tracker advertises “5 meter accuracy,” expect 15-20 meters in difficult environments.
67.9.3 Implications for IoT Location Design
The E911 framework provides valuable benchmarks for IoT location system design:
| Application | E911 Comparison | Recommended Accuracy |
|---|---|---|
| Personal safety devices (elderly trackers, child watches) | Similar to E911 emergency use | 50-100m (handset-level) |
| Fleet management | Less critical than 911 | 100-300m (network-level sufficient) |
| Asset tracking (shipping, equipment) | Non-emergency | 300m+ acceptable |
| Precision applications (agriculture, surveying) | Exceeds E911 requirements | 1-10 cm (RTK/PPP) |
Indoor limitations: E911 accuracy requirements were designed for outdoor mobile calls. Achieving 50-150 meter accuracy indoors or in urban canyons remains challenging—a critical gap for IoT devices deployed in buildings.
Vertical location gap: Traditional E911 provides horizontal position only. For high-rise buildings, knowing you’re at “100 Main Street” doesn’t tell responders whether you’re on floor 3 or floor 30. The FCC’s z-axis requirements (effective 2022) now mandate vertical accuracy within 3 meters for 80% of indoor calls—driving development of barometric altimeter integration in phones and IoT devices.
IoT lesson: For indoor safety applications (hospital patient tracking, emergency evacuation), rely on BLE beacons or Wi-Fi fingerprinting rather than GPS/cellular location to meet accuracy needs.
Checkpoint: Emergency Accuracy
- You now know how E911 separates typical and worst-case accuracy expectations.
- You now know why horizontal, vertical, indoor, and rural conditions need different technology choices.
- You now know when emergency use justifies precision that routine automation should avoid.
Emergency rules show when precision is justified. The failure cases below show what happens when routine products keep more location history than their purpose requires.
67.10 Continue to Part 2
Continue with Location Privacy: Failures and Trade-offs.
