We have a specific endpoint that allows a drone to update its position ( PUT /drone/{id} ). The response of this endpoint is simply the drone object returned. We recently added some No Fly Zone endpoints that allow you to pass in a point, polygon, or polyline and return an array of No Fly Zones your point, polygon, or polyline(mission) have violated. In other words if you pass in a point you will get an array of no flys zones that the point is inside of. Now we would like to combine the functionality of these two features and add some of this intelligent response to the drone location update. Once this is done we can add some intelligence to the drone client i.e. send an audible alarm or even land if it has violated a NFZ. See the NFZ postman collection for more details in how to use the NFZ calls. For this challenge you only care about "Search NFZ with point". The primary objective of this challenge is to tell a drone (during its location update) that it has violated a no fly zone. The secondary objective of this challenge is to tell the drone the distance to the nearest drone so it can react accordingly.
Requirements
Objective 1:
Modify the existing PUT /drone/{id} location update, so it also returns an array of no fly zones just like the search NFZ with Point ( /nfz/search ) endpoint does. Here is an example of the NFZ search call that should return 5 no fly zones.
You may choose to simplify this response, for example all the drone cares about is the total count if items in the array. If the count is zero the drone has nothing to worry about. If it a non zero number the the drone needs to take an action (outside of the scope of this challenge). If you think it makes sense to create a new endpoint for this 'enhanced' response or use a parameter ( something like ?returnnfz=true) to requested the 'enhanced' return result that is fine. Please create a section in the readme called Smart Location Updates to describe your approach.
Objective 2.
The requirement for this objective are much looser since we don't know the cost of this query but here is the general idea: When a drone does its location update we would like to return the distance in meters to the next nearest drone. The purpose of this features is to notify the two drone pilots as well as the DSP that they are near each other. You can take any approach you like: (1) a dynamic NFZ around each drone or (2) a geo near query both seem like acceptable approaches. However a geo near query seems to have some advantages, because the client can throttle its updates based on distance to the nearest drone, but this also may be a more expensive backend call. Please create a section in the Readme called Nearest Drone Updates that describes your approach.
Project Background
For this series we are creating a Drone Service Platform (DSP) which consist of a marketplace where customers can request drone services for providers/operators. Examples of the services would be drone delivery, mapping, monitoring and many other tasks. In addition to delivering drone services we will also provide a level of traffic management.
Intro
We have a specific endpoint that allows a drone to update its position ( PUT /drone/{id} ). The response of this endpoint is simply the drone object returned. We recently added some No Fly Zone endpoints that allow you to pass in a point, polygon, or polyline and return an array of No Fly Zones your point, polygon, or polyline(mission) have violated. In other words if you pass in a point you will get an array of no flys zones that the point is inside of. Now we would like to combine the functionality of these two features and add some of this intelligent response to the drone location update. Once this is done we can add some intelligence to the drone client i.e. send an audible alarm or even land if it has violated a NFZ. See the NFZ postman collection for more details in how to use the NFZ calls. For this challenge you only care about "Search NFZ with point". The primary objective of this challenge is to tell a drone (during its location update) that it has violated a no fly zone. The secondary objective of this challenge is to tell the drone the distance to the nearest drone so it can react accordingly.
Requirements
Objective 1:
Modify the existing PUT /drone/{id} location update, so it also returns an array of no fly zones just like the search NFZ with Point ( /nfz/search ) endpoint does. Here is an example of the NFZ search call that should return 5 no fly zones.
You may choose to simplify this response, for example all the drone cares about is the total count if items in the array. If the count is zero the drone has nothing to worry about. If it a non zero number the the drone needs to take an action (outside of the scope of this challenge). If you think it makes sense to create a new endpoint for this 'enhanced' response or use a parameter ( something like ?returnnfz=true) to requested the 'enhanced' return result that is fine. Please create a section in the readme called Smart Location Updates to describe your approach.
Objective 2.
The requirement for this objective are much looser since we don't know the cost of this query but here is the general idea: When a drone does its location update we would like to return the distance in meters to the next nearest drone. The purpose of this features is to notify the two drone pilots as well as the DSP that they are near each other. You can take any approach you like: (1) a dynamic NFZ around each drone or (2) a geo near query both seem like acceptable approaches. However a geo near query seems to have some advantages, because the client can throttle its updates based on distance to the nearest drone, but this also may be a more expensive backend call. Please create a section in the Readme called Nearest Drone Updates that describes your approach.
Project Background
For this series we are creating a Drone Service Platform (DSP) which consist of a marketplace where customers can request drone services for providers/operators. Examples of the services would be drone delivery, mapping, monitoring and many other tasks. In addition to delivering drone services we will also provide a level of traffic management.
Other notable challenges in this series
Links
front end src: topcoderinc/dsp-frontend back end src: topcoderinc/dsp-server Live Heroku Dev backend: http://kb-dsp-server-dev.herokuapp.com/api/v1
Submission Guidelines