Geocoding
eKMap Platform Geocoding API giúp bạn dễ dàng sử dụng các Rest API về truy vấn một cách nhanh chóng và dễ dàng nhất. Trong lớp geocoding mô tả các phương thức tương ứng với các Rest API bao gồm:
- Dịch vụ gợi ý vị trí theo địa chỉ - AutoComplete Geocoding API
- Dịch vụ tìm vị trí theo địa chỉ - Forward Geocoding API
- Dịch vụ tìm địa chỉ theo vị trí - Reverse Geocoding API
Geocoding
Lớp geocoding có các phương thức cho gợi ý vị trí dựa theo địa chỉ, tìm vị trí theo địa chỉ nhập vào và tìm địa chỉ theo vị trí tọa độ địa lý
new ekmapplf.service.Geocoding(apiKey: String)
Parameters
Thuộc tính | Kiểu | Mô tả |
---|---|---|
apiKey | string | Key này sẽ được đưa vào trong tất cả các yêu cầu của dịch vụ |
Methods
Phương thức | Giá trị trả về | Mô tả |
---|---|---|
autoComplete(text: string, callback: Function ) | Hàm gợi ý danh sách vị trí dựa theo địa chỉ đầu vào | |
reverse(parameter: Object, callback: Function ) | Hàm chuyển đổi tọa độ địa lý thành thông tin địa danh, địa chỉ với tham số parameter của Reverse Geocoding API | |
geocoding(text: string, callback: Function ) | Hàm chuyển đổi địa chỉ, địa danh thành tọa độ địa lý theo địa chỉ nhập vào |
Example
<!DOCTYPE html><html lang="en"> <head><meta charset="utf-8" /><script src="https://files.ekgis.vn/sdks/v2.0.0/ekmap-platform.min.js"></script><link href="https://files.ekgis.vn/sdks/v2.0.0/ekmap-platform.min.css" rel='stylesheet' /><title>AutoComplete Service</title><style>.map {width: 100%;height: calc(100vh - 15px);}body {overflow: hidden;}.match-parent {width: 80%;min-width: 850px !important;min-height: 500px !important;}.wrapper {display: flex;height: 100vh;}.controls {width: 25%;padding: 16px 0;background: white;box-shadow: 7px 0px 7px -2px rgba(0, 0, 0, 0.31);}.search-area {display: flex;align-items: center;justify-content: space-between;padding: 16px 0;margin: 0 16px;}.search-area input {width: 100%;margin-right: 8px;height: 24px;}.result-search {max-height: 250px;background-color: #fff;box-shadow: 0 1px 4px rgb(0 0 0 / 30%);position: absolute;width: 275px;top: 75px;left: 24px;overflow-y: auto;}.result-item {display: flex;align-items: center;cursor: pointer;border-bottom: solid 1px lightgray;margin: 5px 5px;}.result-item:hover {background-color: #f3f3f3;}</style></head> <body><div class="wrapper"><div class="controls"><form class="search-area" id="search-form"><input placeholder="search text" id="search-text" /></form><div id="result-search" class="result-search"></div></div><div class="map match-parent" id="divMapId"></div></div><script>var apiKey = 'YOUR_API_KEY' // "Nhập khóa API eKMap Platform của bạn"var map = new maplibregl.Map({container: 'divMapId',center: [105, 17],zoom: 4});var mapOSMBright = new ekmapplf.VectorBaseMap('OSM:Bright', apiKey).addTo(map);var geocoding = new ekmapplf.service.Geocoding(apiKey);document.getElementById('search-text').addEventListener('input', function (e) {var textSearch = e.target.value;if (textSearch != "") {geocoding.autoComplete(textSearch, function(error, response){results = response.results;document.getElementById('result-search').innerHTML = "";for (var i = 0; i < results.length; i++) {var divItem = document.createElement("div");divItem.className = "result-item";divItem.id = i;var addressText = document.createTextNode(results[i].name);divItem.appendChild(addressText);document.getElementById('result-search').appendChild(divItem);}})} else {document.getElementById('result-search').innerHTML = "";}})</script></body> </html>