Geolocation help


(Oren Cohen) #1

The json that is being fed to elastic looks like this:

{
    "type": "event",
    "timestamp": "2018-06-18 18:22:59.848",
    "event": "FlightStats",
    "params": {
      "deviceID": "e347afe90c65c19e12789c4e297ed865b4ab0db7",
      "flightID": "411fc194-f09d-428a-b804-640705033561",
      "appVersion": "1.0.28",
      "buildNumber": "61",
      "deviceModel": "System Product Name (System manufacturer)",
      "operatingSystem": "Windows 10  (10.0.0) 64bit",
      "droneModel": "Mavic Pro",
      "cameraModel": "Mavic Pro Camera",
      "flightDuration": "1.2106282",
      "batteryLevelStart": "96",
      "batteryLevel": "96",
      "altitude": "164.9",
      "maxAltitude": "164.9",
      "distance": "0.08320932",
      "maxDistance": "0.08320932",
      "homeLatitude": "32.4941035124032",
      "homeLongitude": "34.9063095064591"
    }

This JSON is independent and neither created nor modified on my end. Is it possible to map a "homeLocation" property (that includes the params.homeLatitude and params.homeLongitude) into the index that receives those jsons in order to support geolocation queries, without actually modifying the JSON that is being received?

Thanks,
Oren


(David Pilato) #2

without actually modifying the JSON that is being received?

Yes but you need to transform that document before it gets indexed in elasticsearch.
You can do that with Ingest Node feature.

Basically go from:

{
    "type": "event",
    "timestamp": "2018-06-18 18:22:59.848",
    "event": "FlightStats",
    "params": {
      "deviceID": "e347afe90c65c19e12789c4e297ed865b4ab0db7",
      "flightID": "411fc194-f09d-428a-b804-640705033561",
      "appVersion": "1.0.28",
      "buildNumber": "61",
      "deviceModel": "System Product Name (System manufacturer)",
      "operatingSystem": "Windows 10  (10.0.0) 64bit",
      "droneModel": "Mavic Pro",
      "cameraModel": "Mavic Pro Camera",
      "flightDuration": "1.2106282",
      "batteryLevelStart": "96",
      "batteryLevel": "96",
      "altitude": "164.9",
      "maxAltitude": "164.9",
      "distance": "0.08320932",
      "maxDistance": "0.08320932",
      "homeLatitude": "32.4941035124032",
      "homeLongitude": "34.9063095064591"
}

to

{
    "type": "event",
    "timestamp": "2018-06-18 18:22:59.848",
    "event": "FlightStats",
    "params": {
      "deviceID": "e347afe90c65c19e12789c4e297ed865b4ab0db7",
      "flightID": "411fc194-f09d-428a-b804-640705033561",
      "appVersion": "1.0.28",
      "buildNumber": "61",
      "deviceModel": "System Product Name (System manufacturer)",
      "operatingSystem": "Windows 10  (10.0.0) 64bit",
      "droneModel": "Mavic Pro",
      "cameraModel": "Mavic Pro Camera",
      "flightDuration": "1.2106282",
      "batteryLevelStart": "96",
      "batteryLevel": "96",
      "altitude": "164.9",
      "maxAltitude": "164.9",
      "distance": "0.08320932",
      "maxDistance": "0.08320932",
      "home": {
          "lat": 32.4941035124032,
          "lon": 34.9063095064591
      }
}

(Oren Cohen) #3

I didn't know about the ingest feature and this opened a whole new world of possibilities!

Thank you!
Oren


(system) #4

This topic was automatically closed 28 days after the last reply. New replies are no longer allowed.