Брошюра: Как получить CountryCode (latLng) - PullRequest
0 голосов
/ 16 октября 2019

Я использую Leaflet с OpenStreetmap (Javascript) и хотел бы получить код страны для данных широты и долготы, чтобы я мог передать его (переменную) в функцию. Как я могу это сделать?

Большое спасибо заранее!

Ответы [ 3 ]

1 голос
/ 16 октября 2019

Если вам нужна только эта информация спорадически, вы можете использовать функцию, которая возвращает координаты широты для конкретной страны. Все, что вам нужно сделать, это переместить карту в конкретный вид страны, и вы получите координаты в console.log. С помощью этой функции map.getCenter() вы можете сравнить ее с данными этой страницы geonames.org

const map = L.map('map').setView([52.0, 20.0], 7)

L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
  attribution: '&copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'
}).addTo(map)

map.on('dragend', function onDragEnd() {
  console.log('center: ' + map.getCenter())
})
html,
body {
  height: 100%;
  margin: 0;
}

body {
  font-family: -apple-system, BlinkMacSystemFont, Segoe UI, Helvetica, Arial, sans-serif, Apple Color Emoji, Segoe UI Emoji;
}

#map {
  width: 100%;
  height: 100%;
}
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.5.1/leaflet.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/leaflet/1.5.1/leaflet.js"></script>

<div id="map"></div>

Однако, если вы хотите, чтобы какой-либо API вернул вам данные, вы можете использовать nominatim Одна заметка - прочитайте документациюпотому что, как и во всех решениях для карт, существуют некоторые ограничения, например, количество запросов в секунду и т. д. Это важно, в противном случае вы можете заблокировать свой домен.

Пример использования: nominatim вы получите точную информацию. Все, что вам нужно, это указать название страны.

Подробнее здесь nominatim.openstreetmap.org / и здесь nominatim-docs

1 голос
/ 16 октября 2019

Существует веб-служба, которая возвращает код страны и принимает в качестве параметров широту и долготу. Проверьте документацию

. Чтобы использовать эту услугу, вам необходимо создать учетную запись пользователя на http://www.geonames.org/login.

0 голосов
/ 16 октября 2019

Попробуйте проверить этот API

http://api.geonames.org/countryCodeJSON?lat=you_lat_value3&lng=your_lang_value&username=demo

И вам необходимо создать аккаунт: http://www.geonames.org/export/web-services.html

...