Ниже приведены примеры работы с геокодером 2ГИС при помощи AJAX-запросов. Для получения подробной информации о работе с AJAX перейдите в раздел документации AJAX-запросы. Для получения информации о геокодере перейдите в раздел документации API геоданных.
Определение координат объекта по его адресу:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="http://maps.api.2gis.ru/2.0/loader.js"></script>
</head>
<body>
<div id="map" style="width:100%; height:400px"></div>
<script type="text/javascript">
DG.then(function () {
var map, point, lat, lng, marker;
map = DG.map('map', {
center: [54.9802, 82.8980],
zoom: 18
});
DG.ajax({
url: 'http://catalog.api.2gis.ru/geo/search',
data: {
key: '12345',
version: 1.3,
q: 'Москва, Красная площадь, 2'
},
type: 'GET',
success: function(data) {
if (typeof marker !== 'undefined') {
map.removeLayer(marker);
}
// считываем строку в WKT-формате и возвращаем объект Point
point = DG.Wkt.toPoints(data.result[0].centroid);
// извлекаем координаты для маркера
lng = point[0];
lat = point[1];
// создаем и добавляем маркер на карту
marker = DG.marker([lat, lng]);
map.addLayer(marker);
// центрируем карту в координаты маркера
map.panTo([lat, lng]);
},
error: function(error) {
console.log(error);
}
});
});
</script>
</body>
</html>
Получение информации об объекте по его координатам:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="http://maps.api.2gis.ru/2.0/loader.js"></script>
</head>
<body>
<div id="map" style="width:100%; height:400px"></div>
<script>
DG.then(function () {
var map,
latLng = [55.752517, 37.623349];
map = DG.map('map', {
center: latLng,
zoom: 18
});
DG.ajax({
url: 'http://catalog.api.2gis.ru/geo/search',
data: {
key: '12345',
version: 1.3,
q: latLng[1] + ',' + latLng[0]
},
success: function(data) {
var marker = DG.marker(latLng),
text = data.result[0].name + '.<br />';
text += data.result[0].attributes.buildingname;
marker.bindPopup(text);
marker.addTo(map);
},
error: function(error) {
console.log(error);
}
});
});
</script>
</body>
</html>
Поиск станций метро в радиусе 250 м. вокруг заданной точки:
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<script src="http://maps.api.2gis.ru/2.0/loader.js"></script>
</head>
<body>
<div id="map" style="width: 100%; height: 400px;"></div>
<script>
DG.then(function () {
var map, point,
latLng = [55.751288, 37.607741];
map = DG.map('map', {
center: latLng,
zoom: 17
});
DG.ajax({
url: 'http://catalog.api.2gis.ru/geo/search',
data: {
key: '12345',
version: 1.3,
q: latLng[1] + ',' + latLng[0],
types: 'metro',
radius: 250,
limit: 100
},
success: function(data) {
data.result.forEach(function(metro) {
// считываем строку в WKT-формате
point = DG.Wkt.toPoints(metro.centroid);
// извлекаем координаты для маркера
var lng = point[0];
var lat = point[1];
// создаем и добавляем маркер на карту
marker = DG.marker([lat, lng]);
marker.bindPopup(metro.name);
map.addLayer(marker);
});
},
error: function(error) {
console.log(error);
}
});
});
</script>
</body>
</html>