Quadcopter App with Flight Restrictions (JQA)

This is an article serving as documentation for my first ever app on the Android Operating System. For tablets and phones. The app in a nutshell displays flight restrictions in a given area

As a quadcopter flier myself, I wanted an app to show me a map of the area I was going to film or fly. I wanted it to display the flight restrictions of the area and any other hazards I might need to take into account. Other apps I found only covered the USA, this one I wrote covers the world and can be added to really easily.

It works by reading the weather data from api.openweathermap.org and the flight restriction details from api.joellipman.com (my own personal website). This allows me to continually add data to the api of my own website without needing to redistribute or update this app.

jqa splash screen
jqa profile screen
jqa help screen
jqa news screen
jqa hangar screen
jqa map screen

For location, type a city name, post code, zip code or any value that is understood by the api.openweathermap.org website. There are plans to shift this to using Google Services as they are more likely to find locations that openweathermap.org cannot.

Add a comma and the two letter country code (preferably "iso-3166-1 alpha-2") to the name if the location of the same name exists in multiple countries of the world.

Zones (circles on map):
Static Zones are created based on a listed airport, airfield, military, private or listed building.
Dynamic Zones are created using data fed for extreme weather conditions, earthquakes (by earthquake.usgs.gov) and at some point temporary flight restrictions.

Currently Listed Zones:
  • Worldwide airports as listed by IATA.org
  • Worldwide airfields for private/commercial use (treated as airports - source: Wikipedia)
  • Known UK military bases (Royal Marines, Royal Navy Air Service, Royal Air Force, Remote Radar Heads)
  • Some "disused" airfields (former military)
  • Specified nuclear power plants
  • Specified historical buildings

  • Yellow: Restricted Area: Avoid flying in this area at all.
  • Red: Prohibited Area: Do NOT fly in this zone at all!
  • Blue: Location Marker: Represents the area you will be flying in.
  • Green: Model Aircraft Club (the only places you're supposed to be flying).
  • Black: Earthquakes & Extreme Weather: To avoid, or search & rescue (note there are laws about getting involved).


Flight regulations are fed from api.joellipman.com and currently default to the principal global rules set out by the Federal Aviation Administration (FAA), UK Civil Aviation Authority (CAA) and European Air Transport Command (EATC). These are:
  • 400ft altitude limit
  • Line-of-Sight (LoS) required
  • Stay away from built-up areas
Note: There are slightly different regulations for a small unmanned aerial system (less than 20kg) and a small unmanned aerial surveillance system (less than 20kg equipped with a camera).

Regulations different to the UK and US are still being reviewed prior to being added to the database but each country's aviation authority has been added.

Earthquake Feed for the past day: earthquake.usgs.gov/earthquakes/feed/geojsonp/2.5/day

Flight Regulations API v0.9
  • version 0.9: Last Modified 2014-11-05 12:08:42
  • ccTLD is assigned from an entry within searched location (db must return at least 1 zone to know what country it is in - future development will be separate: convert lat/lng to country)
  • rules are currently based on country. Future development will associate these with governing bodies rather.
  • Airports/airfields added: 2014-10-26
  • Military zones lost due to 9 decimal place degrees: 2014-11-05: DB changed to DECIMAL(12,9)
  • World wide stadiums of more than 40,000 capacity added: 2014-11-05
  • City Centres added: 2014-11-06
Flight Regulations API v1.0
  • version 1.0: Last Modified 2014-11-06 19:04
  • Return up to 100 zones
  • Explore area within 0.15 degrees latitude & longitude
  • UK military bases added
  • Australian RAAF bases added
  • Canadian military bases added
  • Chinese military air bases added
  • Known Greek and French air bases added

News Feed
The news feed is a search on Google News for the words "Quadcopter" and "Drones". I use this to keep up-to-date with new legislation and developments on "drones".

Tap once to see a brief description, click on the button to view the full article in your browser.

New to the app I thought it would be really cool if I could change the equipment by virtual means. Tap on any equipment, photo or detail to change it. I have pre-loaded it with my own Quadcopter's details but feel free to change them to match your configuration.
  • Tap on a photo to change it's picture.
  • Tap on equipment photo to change its weight. (A future development will allow you to change name and photo)
  • Tap on the Manufacturer or Model name under "Specification" to change the details (lots of numbers!).
  • Tap on Quick Reference image to change image. (if you have a different led, you can take a picture or use a screenshot
  • Tap on the "Save" icon to save all changes (this also lets you change the name of the aircraft & configuration)
  • Uninstall and re-install app to restore with original data (My DJI Phantom FC40)
Currently you can only have 1 aircraft; but the next version of this app is expected to hold a lot more.

Hangar Tip:
Both the free and paid version of this app are being developed to write to a mounted external SD card so they can share data but for the time being they are on the internal storage (like most apps). If you want to backup the files for the hangar, they are stored in this apps files folder: /sdcard/Android/data/com.joellipman.quadcopterapp/files/hangar/ (For the FREE version they are in: /sdcard/Android/data/com.joellipman.quadcopterappfree/files/hangar/).

Fly Responsibly!
There is a growing concern by government officials regarding multicopters or more specifically their owners and use. Far from what the governments do with their drones, here are some socially beneficial applications I found:
  • Search & Rescue: Earthquake: Drone Adventures: Haiti 2013
  • Search & Rescue: Hurricane Haiyan: Drone Adventures: Philippines 2014
  • Search & Rescue: Night Hawk for Firefighters: Dubai Civil Defence UAE 2014
  • Landmines Detector: CAT UAV Bosnia/Herzegovina 2014
  • Environment: Studying Wildlife: Pygmy Rabbits USA 2014
  • Environment: Deforestation: Crowdsource forest monitoring: Imazon Brazil 2014
  • Agriculture: Livestock Monitoring: Baa Baa Robot UK 2014
  • Corporate: Skyscraper Construction Workers: Coca-Cola Singapore 2014
Check out the News Feed of the app to see a lot more articles.

This app only serves as a reference and not a definitive tool to check flight regulations in your area. The restricted zone data is based on content found in Wikipedia.org.

By using this app you agree to the following:
JoelLipman.com shall not be responsible for any special, incidental, or consequential damages, including but not limited to personal injuries, damage to property, injury to others, including that to life and health, resulting from any application and use of any of JoelLipman.com products. The Purchaser and any Pilot in Command (PIC) assumes full and unlimited responsibility for all applications and uses of any products sold by JoelLipman.com.

JoelLipman.com agents, representatives and employees are to be held harmless from any and all claims, liabilities, damages, and expenses (including attorneys’ fees actually incurred) on account of death or injury to any person or damage to any property or product arising from or in connection with any products sold or supplied by JoelLipman.com.

This indemnity shall apply without regard to whether the claim, damage, liability or expense is based on breach of contract, breach of warranty, negligence, strict liability, or other tort.

Privacy Policy
What other members know about you:
• If shared, your public name (not unique and only the first name)
• Your selected aircraft (by public name or \"anonymous\")

What joellipman.com stores about you:
• Your login/username (for account management)
• Your password to my website (password reset only)
• Your public name (full Name)
• Your membership type
• Your app preferences
• Any user-specified shared item

What is stored on your device about you:
• Your public name
• Your email address
• Your aircraft details and equipment
• Your photos/pictures
• Your preferences/settings
• A private key to use JoelLipman.com data
Note: You should delete/uninstall this app or clear its data before giving your device to someone else as it can login to your online account automatically.

• Do not share security or personal details.
• By default, every item is private.

Account Management:
Visit www.joellipman.com/account/member-access and login with your username or email and the password you chose when registering for username reminders, password resets, or e-mail changes.

The key stored on the device expires after 30 days and requires you to login again if you have not used this app in that time.

v1.8.x  [25 Nov 2014]
- [1.8.5] Hangar: prepared for aircraft data
- [1.8.5] App: theme adjustments
- [1.8.5] App: compatibility & stability fixes
- [1.8.4] Hangar: factory returns photos as well
- [1.8.4] App: theme and style fixes
- [1.8.4] App: code improvements
- [1.8.3] App: fix to previous fix
- [1.8.3] App: code improvements
- [1.8.2] App: fix theme for certain devices
- [1.8.1] Map: disabled if location services is unavailable 
- [1.8.1] Pilot: prompts to login if email not specified
- [1.8.0] Factory: 7 random aircraft
- [1.8.0] Factory: disabled if offline
- [1.8.0] Pilot: join/login auto-selects email
- [1.8.0] Pilot: profile page with preferences
- [1.8.0] Start: fetches current lat/lng
- [1.8.0] Start: launch section enabled
- [1.8.0] Help: re-categorized law, how-to, ToS
- [1.8.0] News: include search words SUA, RPAs and UAVs
- [1.8.0] News: disabled if offline
- [1.8.0] Map: builds on request
- [1.8.0] Map: disabled if offline
- [1.8.0] Map: moved from app start
- [1.8.0] App: actionbar changed to sidebar
- [1.8.0] App: footer removed
- [1.8.0] App: code optimization
- [1.8.0] App: left sidebar menu 
- [1.8.0] App: interace theme "HighBlue"
- [1.8.0] App: improved navigation
- [1.8.0] App: fluid layout

v1.7.x  [16 Nov 2014]
- [1.7.3] Map: toggle zoom in/out
- [1.7.3] Map: toggle animations
- [1.7.3] Pilot: preferred weight unit (grams / pounds)
- [1.7.3] Pilot: preferred dimension unit (cm / inch)
- [1.7.3] Pilot: preferred distance unit (m+km / ft+mi)
- [1.7.3] Pilot: profile preferences/settings
- [1.7.3] Hangar: backwards compatibility
- [1.7.2] News: Fix for duplicate feeds
- [1.7.1] Hangar: backwards compatibility for this app
- [1.7.0] Map: toggle city centres 
- [1.7.0] Map: toggle map type
- [1.7.0] Map: change blue zone range
- [1.7.0] Map: tap the "located" infotip to scan current
- [1.7.0] Map: tap and Hold anywhere on the map to scan
- [1.7.0] Map: offline redirects to help page
- [1.7.0] Map: interface layout over map
- [1.7.0] Map: latitude/longitude in tooltip data
- [1.7.0] Map: default settings from profile file
- [1.7.0] News: offline redirects to help page
- [1.7.0] Hangar: interactive quick reference image 
- [1.7.0] Hangar: offline can view aircraft #1
- [1.7.0] Hangar: tap on specification text to edit
- [1.7.0] Pilot: login, register, authenticate
- [1.7.0] Pilot: map preferences/settings
- [1.7.0] Help: details on what the app will store and where
- [1.7.0] Help: details on what data is shared with other users
- [1.7.0] Help: details on what joellipman.com stores
- [1.7.0] All: internet connection status

v1.6.x  [5 Nov 2014]
- [1.6.2] Map: return zones within 15km radius (was 111km)
- [1.6.2] Map: return up to 100 zones (was 20)
- [1.6.2] Map: tooltip with categorized zones
- [1.6.2] Map: tooltip scroll on small screens
- [1.6.2] Map: city centres (built-up / congested areas) added
- [1.6.2] Map: worldwide stadiums > 40,000 capacity added
- [1.6.2] Map: worldwide nuclear power plants added
- [1.6.1] Map: display local governing body
- [1.6.1] Map: tooltip for nearby places details 
- [1.6.1] Help: boring stuff moved 
- [1.6.0] News: expand for descriptions
- [1.6.0] Map: tweaks (tap on icons for details)
- [1.6.0] Hangar: section enabled
- [1.6.0] Hangar: tap on aircraft photo to change it
- [1.6.0] Hangar: tap on quick reference photo to change it
- [1.6.0] Hangar: tap on equipment to change weight
- [1.6.0] Hangar: tap on model to edit spec
- [1.6.0] Hangar: save aircraft configuration
- [1.6.0] Map: progress spinner 

v1.5.x  [28 Oct 2014]
- [1.5.2] Map: link android key to google maps API
- [1.5.2] Map: regulations replaced with icons
- [1.5.1] Help: moved about to Help
- [1.5.1] Map: restored blue range
- [1.5.0] Map: tooltip changed to icons 
- [1.5.0] Help: add legislation

v1.4  [27 Oct 2014]
- [1.4.2] Improved compatibility for Android OS 4.4.2
- [1.4.1] Improved compatibility with more devices
- [1.4.1] Ads resized to full width (smart_banner)
- [1.4.0] Map: re-fix locations with spaces

v1.3  [27 Oct 2014]
- [1.3.0] Pilot: fix links in benefits.

v1.2  [27 Oct 2014] 
- [1.2.0] All: reduced size for smartphones
- [1.2.0] Map: Fix OWM API returns country name instead of code
- [1.2.0] Map: city centres

v1.1  [26 Oct 2014]
- [1.1.0] Map: correction to map data key
- [1.1.0] Map: tweak to regulations displayed
- [1.1.0] Map: zone ranges adjusted per legislation
- [1.1.0] News: black to white design

v1.0  [24 Oct 2014]
- [0.8] Released to Google Play Store as version 1.0 

v0.x beta
- [0.8] Pilot: signup button (link to website)
- [0.7] Map: API codes and db requests
- [0.6] Map: database restructure tweaks
- [0.6] Map: add check button
- [0.5] Map: connect to database for zones/restricted area
- [0.4] Map: include wind and weather data 
- [0.3] Help: disclaimer
- [0.2] News: feed from Google.com 
- [0.1] Map: camera animation and tilt 
- [0.1] Map: location search 
- [0.1] Map: tap twice to zoom in
- [0.1] Map: wind and weather data 

In Development:
- Map: specify weather forecasts for a day
- Map: current location response issues
- Map: screenshot for offline use
- Map: enable news feed on HUD
- Map: enable hangar on HUD
- Map: nearest hazard (7 or 30 day)
- Map: toggle airspace borders
- Map: toggle aviation map
- Map: toggle flight routes
- Map: toggle atmosphere (openGL chrome experiment)
- Map: lock map orientation to device compass
- Map: replace map compass
- Map: tap once to start a waypoint
- Map: tap a second time to end waypoint
- Map: drag markers for precision
- Map: horizontal sensor level
- Map: display gallery of screenshots (+offline mode)
- Map: populate nearest cities for lat/lng to more accurate city names
- Map: use map touch listeners
- Map: timeout requests on idle
- News: localized on map (use API)
- News: cache for map (+offline mode)
- News: cache for later reading
- Pilot: view top configurations for best distance/duration
- Pilot: view top rated equipment
- Pilot: rate other configurations (looks and performance)
- Pilot: report a location as restricted or recommended for flying
- Pilot: know a flight club? send us the details.
- Pilot: start stop log notes
- Pilot: talking timer
- Pilot: profile photos need to be admin approved
- Pilot: usernames may be changed by admin if deemed inappropriate
- Pilot: display/public names may be changed by admin 
- Pilot: logged-in mode
- Pilot: post questions
- Pilot: backup app data to cloud
- Pilot: delete/reset profile
- Hangar: configure your own
- Hangar: build your own tutorial [last]
- Hangar: multiple aircrafts and configurations
- Hangar: view cached data on device  (offline mode)
- Hangar: battery last use/recharge date, current voltage/max
- Hangar: share this aircraft data
- Factory: enable section
- Factory: add your own component
- Factory: download equipment data
- Factory: rate equipment / quality
- Factory: view photos (cached for session only)
- Factory: item specification
- Factory: - name, weight, dimensions, power consumption, 
- Factory: - cost, features, photo, modifications, link to buy
- Factory: - configure specification for type aircraft
- Factory: - configure specification for type camera
- Factory: - configure specification for type battery
- Factory: - configure specification for type gimbal
- Factory: - configure specification for type propellers
- Factory: - configure specification for type onboard
- Factory: share database mismatched equipment
- Factory: advanced mode (motors, 
- Help: choose which governing bodies to include
- Help: download for offline use (further countries to be added)
- Help: how to use pilot, hangar and factory
- Help: how to port, share, backup app data

Donate & Support

If you like my content, and would like to support this sharing site, feel free to donate using a method below:

Donate to Joel Lipman via PayPal

Donate to Joel Lipman with Bitcoin - Valid till 8 May 2022 3QnhmaBX7LQSRsC9hh6Je9rGQKEGNQNfPb
© 2021 Joel Lipman .com. All Rights Reserved.