javascripttypescriptangular7angular-routingangular-resource

How can I create service return values of longitude and latitude from json?


How to create service return values of longitude and latitude from JSON?

I have the following URL:

http://192.168.7.xxx:9200/location/_doc/27737

This URL JSON below:

    {"_index":"location","_type":"_doc","_id":"27737","_version":1,"_seq_no":5577,"_primary_term":1,"found":true,"_source":{"Locid":27737,"GPS1":"25.0173, 121.462","GPS2":"25°01'02.2\"N 121°27'44.8\"E","CompanyID":1005070,"ads":"142 Sec. 1, HsIn Nan Rd cung Ko Dšst, New Taipei City, Taiwan","Crid":75,"con":"Taiwan","Ctid":5894,"Cn":"Zhonghe District","pushdate":"2019-12-26T03:38:20.883"}}  

I need to create service return two values from GPS1:

longitude: 25.0173,
latitude: 121.462

Based on Location Id parameter 27737.

So that I need to create service take location id parameters and return two values of GPS1 25.0173 and 25.0173

getDataService(locationid): Observable<any> {    
     const url = "http://192.168.7.xxx:9200/location/_doc/27737";    
       return this.httpClient.get(`${url} + locationid`);    
   }  

on ngOinInit Event

ngOnInit  
{  
call service here  
}  

Solution

  • Let's say you have the json returned in a variable called response. You could simply do

    getDataService(locationid): Observable<any> {    
         const url = "http://192.168.7.xxx:9200/location/_doc/27737";    
           return this.httpClient.get(`${url} + locationid`)
              .then(response => {
                 const [latitude, longitude] = response._source.GPS1.trim().split(",");
                 return {latitude, longitude};
               });
       }