Всем привет. Меня зовут Юша Сарысой. Я инженер-программист из Стамбула, Турция, и это будет моя первая статья, опубликованная на Medium, поэтому я очень взволнован. В этой статье я шаг за шагом объясню, как получать близлежащие места к вашему текущему местоположению в React Native с помощью Places API. Поскольку React Native - это кроссплатформенный фреймворк, вы можете использовать этот метод как для устройств Android, так и для iOS. Подчеркну, это будет для тех, кто хочет применить этот метод к существующему проекту. После этих незначительных пояснений мы можем вернуться к работе.

Прежде всего, мы откроем Google Cloud Platform, чтобы получить наш уникальный ключ API. В Google Cloud Platform нажмите кнопку меню гамбургера слева, и вы увидите раздел API и сервисы. В этом разделе мы продолжим работу с Учетными данными. В Credentials вы увидите следующий экран:

Чтобы получить ключ API, нажмите «+ СОЗДАТЬ УЧЕТНЫЕ ДАННЫЕ» вверху экрана. После получения ключа API ваш ключ API будет показан на экране.

После этих процедур мы можем приступить к кодированию. Я буду использовать Visual Studio Code для разработки своих проектов на React Native. В свой GooglePlacesAPI.js я добавлю свой ключ API. Кроме того, вы можете добавить ключевое слово, определяющее тип мест, которые вы хотите показать вокруг текущего местоположения. Я пока оставлю это как код комментария.

export const googleAPIKey = ‘YOUR_API_KEY’;
// export const placeType = ‘cafe’;

Я импортирую эти две константы туда, где я хочу их использовать.

import {googleAPIKey, placeType} from ‘../../Helpers/GooglePlacesAPI’;

Затем я установлю асинхронную функцию под названием «fetchNearbyPlaces». В этом случае я буду назначать только определенные значения широте и долготе, поскольку я воспринимаю местоположение по-другому. Назначим значения местоположения Сан-Франциско, Калифорния, США.

// Set charger station’s latitude & longitude.
const latitude = 37.773972;
const longitude = -122.431297;

После назначения значений местоположения нам нужно установить максимальное расстояние от текущего местоположения, чтобы мы могли перечислить местоположения вокруг нас.

// Search within maximum 4 km radius.
let radius = 4 * 1000;

Теперь это одна из наиболее важных частей, потому что мы установим URL-адрес для получения данных.

const url =
  ‘https://maps.googleapis.com/maps/api/place/nearbysearch/json?location=' +
  latitude +
  ‘,’ +
  longitude +
  ‘&radius=’ +
  radius +
//  ‘&type=’ +
//  placeType +
  ‘&key=’ +
  googleAPIKey;

Наконец, мы можем получить окончательные данные.

fetch(url)
  .then(res => {
    return res.json();
  })
  .then(res => {
    for (let googlePlace of res.results) {
      var place = {};
      var myLat = googlePlace.geometry.location.lat;
      var myLong = googlePlace.geometry.location.lng;
      var coordinate = {
        latitude: myLat,
        longitude: myLong,
      };
      place[‘placeTypes’] = googlePlace.types;
      place[‘coordinate’] = coordinate;
      place[‘placeId’] = googlePlace.place_id;
      place[‘placeName’] = googlePlace.name;
      places.push(place);
    }

    // Show all the places around 4 km from San Francisco.
    console.log(
      ‘The places around San Francisco, CA, USA: ‘ +
      places.map(nearbyPlaces => nearbyPlaces.placeName),
    );
  })
  .catch(error => { 
    console.log(error);
  });
});

И мы на последнем этапе. Давайте вызовем функцию и посмотрим, каков будет ее результат.

Получаем именно то, что хотим. Если у вас есть вопросы, вы можете связаться со мной по адресу [email protected]. Спасибо, что прочитали мою первую статью. Следующая статья будет о Yelp Fusion API. Желаю вам удачного дня!