Создайте VectorSource внутри функции getLocation () - PullRequest
0 голосов
/ 28 мая 2018

Я программирую карту с помощью OpenLayers (4.6.5) и Angular (6).Я использую французский API , который возвращает файлы GeoJSON в конце запроса следующим образом:

https://api-adresse.data.gouv.fr/reverse/?lon=2.37&lat=48.357.

Я хочу использовать тот же принцип сместоположение пользователя.Для выполнения запроса я использую протокол HTTP.Я создал Stackblitz , чтобы проиллюстрировать свою работу.

Я могу восстановить местоположение пользователя и построить запрос с широтой и долготой.Но я не могу использовать URL в VectorSource для размещения точки, соответствующей местоположению.

У меня три ошибки: Cannot read property 'setMap' of undefined, ERROR CONTEXT и rbush_1.default is not a function

1 Ответ

0 голосов
/ 28 мая 2018

Вы делаете 2 HTTP-вызова с callApi: возвращенный объект - Subscription.

В первом случае вы subscribe ему: там все хорошо.

Во втором вызове вы используете его в качестве строки для URL: это ваша проблема .

Попробуйте напрямую использовать URL-адрес, например:

url: `https://api-adresse.data.gouv.fr/reverse/?lon=${longitude}&lat=${latitude}`
...