2016-05-26 10 views
0

Я использую NPM Geocoder для преобразования местоположений в широту и долготу. Однако я не уверен, как тянуть лат и долгое время от выхода.API обратного геотекса Google: сделать lat & long от JSON переменной

JSON внизу, и я хочу сделать то, что находится в строках 59 и 60 новой переменной. Как мне это сделать?

Это не работает:

var location = data.results.geometry.location.lat; 

_ JSON:

{ 
    "results": [ 
    { 
     "address_components": [ 
     { 
      "long_name": "Kendall Park", 
      "short_name": "Kendall Park", 
      "types": [ 
      "neighborhood", 
      "political" 
      ] 
     }, 
     { 
      "long_name": "South Brunswick Township", 
      "short_name": "South Brunswick Township", 
      "types": [ 
      "locality", 
      "political" 
      ] 
     }, 
     { 
      "long_name": "Middlesex County", 
      "short_name": "Middlesex County", 
      "types": [ 
      "administrative_area_level_2", 
      "political" 
      ] 
     }, 
     { 
      "long_name": "New Jersey", 
      "short_name": "NJ", 
      "types": [ 
      "administrative_area_level_1", 
      "political" 
      ] 
     }, 
     { 
      "long_name": "United States", 
      "short_name": "US", 
      "types": [ 
      "country", 
      "political" 
      ] 
     } 
     ], 
     "formatted_address": "Kendall Park, South Brunswick Township, NJ, USA", 
     "geometry": { 
     "bounds": { 
      "northeast": { 
      "lat": 40.4335151, 
      "lng": -74.54167489999999 
      }, 
      "southwest": { 
      "lat": 40.3944258, 
      "lng": -74.586016 
      } 
     }, 
     "location": { 
      "lat": 40.4209391, //MAKE THIS A NEW VARIABLE 
      "lng": -74.560711 
     }, 
     "location_type": "APPROXIMATE", 
     "viewport": { 
      "northeast": { 
      "lat": 40.4335151, 
      "lng": -74.54167489999999 
      }, 
      "southwest": { 
      "lat": 40.3944258, 
      "lng": -74.586016 
      } 
     } 
     }, 
     "place_id": "ChIJqbniAsTCw4kRUI0mXQpaGAc", 
     "types": [ 
     "neighborhood", 
     "political" 
     ] 
    } 
    ], 
    "status": "OK" 
} 
+0

Это минимально необходимый код примера, чтобы объяснить вашу проблему? –

ответ

1

data.results является массивом, попробуйте следующее:

var location = BuildLatLng(data.results[0].geometry.location.lat, 
           data.results[0].geometry.location.lng); 

где BuildLatLng() только то, что вы необходимо использовать в своих рамках, эквивалент google.maps.LatLng в API JavaScript Карт Google.

И пока вы на нем, подумайте, действительно ли вы хотите всегда получить только первый результат. В идеале, ваши приложения должны смотреть на каждый results[i].types, чтобы решить, какой из них использовать.

 Смежные вопросы

  • Нет связанных вопросов^_^