lấy tên địa điểm từ vĩ độ và kinh độ bằng JavaScript
Trong bài viết JavaScript tốt nhất này, tôi sẽ hướng dẫn cách lấy tên thành phố của người dùng bằng cách sử dụng dịch vụ đảo ngược mã hóa địa lý. Làm thế nào để chuyển đổi kết quả getCurrentPosition thành tên thành phố miễn phí bằng API ReverseGeocoding?
Thực hiện API Đảo Ngược GeoLocation Miễn Phí của BigDataCloud
Mã HTML
<!DOCTYPE html>
<html>
<body>
<p>Click the button to get Location.</p>
<p>Try with and without providing a permission to access your location. </p>
<button type="button" onclick="getLocation()">Share my Location</button>
<pre id="json-result"></pre>
</body>
</html>
Mã JavaScript
var result = document.getElementById("json-result");
const Http = new XMLHttpRequest();
function getLocation() {
var bdcApi = "https://api.bigdatacloud.net/data/reverse-geocode-client"
navigator.geolocation.getCurrentPosition(
(position) => {
bdcApi = bdcApi
+ "?latitude=" + position.coords.latitude
+ "&longitude=" + position.coords.longitude
+ "&localityLanguage=en";
getApi(bdcApi);
},
(err) => { getApi(bdcApi); },
{
enableHighAccuracy: true,
timeout: 5000,
maximumAge: 0
});
}
function getApi(bdcApi) {
Http.open("GET", bdcApi);
Http.send();
Http.onreadystatechange = function () {
if (this.readyState == 4 && this.status == 200) {
result.innerHTML = this.responseText;
}
};
}
Mã CSS
p {font-family: Arial, Helvetica, sans-serif;}
Đừng Bỏ Lỡ : Get User Location Javascript
Kết Quả
{
"latitude": 22.309999465942383,
"longitude": 70.83000183105469,
"lookupSource": "ip geolocation",
"plusCode": "7JJG8R5J+X2",
"localityLanguageRequested": "en",
"continent": "Asia",
"continentCode": "AS",
"countryName": "India",
"countryCode": "IN",
"principalSubdivision": "Gujarat",
"principalSubdivisionCode": "IN-GJ",
"city": "",
"locality": "Rajkot Taluka",
"postcode": "",
"localityInfo": {
"administrative": [
{
"order": 2,
"adminLevel": 2,
"name": "India",
"description": "country in South Asia",
"isoName": "India",
"isoCode": "IN",
"wikidataId": "Q668",
"geonameId": 1269750
},
{
"order": 4,
"adminLevel": 4,
"name": "Gujarat",
"description": "state of India",
"isoName": "Gujarāt",
"isoCode": "IN-GJ",
"wikidataId": "Q1061",
"geonameId": 1270770
},
{
"order": 6,
"adminLevel": 5,
"name": "Rajkot district",
"description": "district of Gujarat, India",
"wikidataId": "Q1815245",
"geonameId": 1258849
},
{
"order": 7,
"adminLevel": 6,
"name": "Rajkot Taluka",
"description": "Taluka in Rajkot district, Gujarat, India",
"wikidataId": "Q25565187"
}
],
"informative": [
{
"order": 1,
"name": "Asia",
"description": "continent on Earth, mainly on the Earth's northeastern quadrant",
"isoCode": "AS",
"wikidataId": "Q48",
"geonameId": 6255147
},
{
"order": 3,
"name": "Indian subcontinent",
"description": "peninsular region in south-central Asia below the Himalayas",
"wikidataId": "Q60140",
"geonameId": 6269134
},
{
"order": 5,
"name": "Kathiawar",
"description": "peninsula",
"wikidataId": "Q1408929"
}
]
}
}
Hy vọng bạn có ý tưởng về cách lấy tên địa điểm từ vĩ độ và kinh độ bằng JavaScript.
- Bài đăng blog này được xuất bản ban đầu tại: https://www.pakainfo.com