简体   繁体   中英

Yelp Search API no coordinate for a business

I am using the Search YELP API to develop a mobile application. I would like to display several businesses on a google map. But unfortunately, I dont receive everything the coordinate object in my business.

    "location":{  
      "neighborhoods":[  
         "West Ham",
         "Stratford"
      ],
      "state_code":"XGL",
      "display_address":[  
         "409 High Street",
         "West Ham",
         "London E15 4QZ",
         "UK"
      ],
      "coordinate":{  
         "longitude":-2.16E-4,
         "latitude":51.53907
      },
      "address":[  
         "409 High Street"
      ],
      "postal_code":"E15 4QZ",
      "geo_accuracy":5,
      "country_code":"GB",
      "city":"London"
   },

How should I face with this problem ? Is there any walkaround to display my business on the map anyway ?

I just found an answer to my problem.

In case if the coordinates are not provided, I can use geocoding provided by

google map API

in formatting my request like this :

// Replace the API key below with a valid API key.
GeoApiContext context = new GeoApiContext().setApiKey("AIza...");
GeocodingResult[] results =  GeocodingApi.geocode(context,
    "1600 Amphitheatre Parkway Mountain View, CA 94043").await();
System.out.println(results[0].formattedAddress);

which is similar to : https://maps.googleapis.com/maps/api/geocode/json?address=54+Frith+Street,+London,+GB

The API return me a JSON :

{
   "results" : [
      {
         "address_components" : [
            {
               "long_name" : "54",
               "short_name" : "54",
               "types" : [ "street_number" ]
            },
            {
               "long_name" : "Frith Street",
               "short_name" : "Frith St",
               "types" : [ "route" ]
            },
            {
               "long_name" : "Soho",
               "short_name" : "Soho",
               "types" : [ "neighborhood", "political" ]
            },
            {
               "long_name" : "Soho",
               "short_name" : "Soho",
               "types" : [ "sublocality_level_1", "sublocality", "political" ]
            },
            {
               "long_name" : "London",
               "short_name" : "London",
               "types" : [ "locality", "political" ]
            },
            {
               "long_name" : "London",
               "short_name" : "London",
               "types" : [ "postal_town" ]
            },
            {
               "long_name" : "Greater London",
               "short_name" : "Gt Lon",
               "types" : [ "administrative_area_level_2", "political" ]
            },
            {
               "long_name" : "United Kingdom",
               "short_name" : "GB",
               "types" : [ "country", "political" ]
            },
            {
               "long_name" : "W1D 4SL",
               "short_name" : "W1D 4SL",
               "types" : [ "postal_code" ]
            }
         ],
         "formatted_address" : "54 Frith Street, Soho, London W1D 4SL, UK",
         "geometry" : {
            "location" : {
               "lat" : 51.5137474,
               "lng" : -0.1318321
            },
            "location_type" : "ROOFTOP",
            "viewport" : {
               "northeast" : {
                  "lat" : 51.5150963802915,
                  "lng" : -0.130483119708498
               },
               "southwest" : {
                  "lat" : 51.5123984197085,
                  "lng" : -0.133181080291502
               }
            }
         },
         "types" : [ "street_address" ]
      }
   ],
   "status" : "OK"
}

Hope it will help other people in that case !

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM