Клуб API Карт

Проблема определение города (Москвы) по координатам (клику по карте)

Пост в архиве.

При обратном геокодировании, по координатам в области между TTК и МКАД (скажем у метро Коломенское) для kind:locality выдается не Москва а поселок Шлюзы.    

Как это поправить, какие причины такого поведения?

 

function init () {
var myMap = new ymaps.Map("mapid", {
center: [55.76, 37.64]^,
zoom: 10
});
var cityg;
var regiong;
var streetg;
var metrog;
myMap.events.add('click', function (e) {
if (!myMap.balloon.isOpen()) {
var coords = e.get('coordPosition');
var cityGeocoder = ymaps.geocode(coords, {kind: 'locality'}); cityGeocoder.then(function (res) {
var nearestcity = res.geoObjects.get(0);
cityg = nearestcity.properties.get('name');
var regionGeocoder = ymaps.geocode(coords, {kind: 'district'}); regionGeocoder.then(function (res) {
var nearestregion = res.geoObjects.get(0);
regiong = nearestregion.properties.get('name');
var streetGeocoder = ymaps.geocode(coords, {kind: 'street'}); streetGeocoder.then(function (res) {
var neareststreet = res.geoObjects.get(0);
streetg = neareststreet.properties.get('name');
var metroGeocoder = ymaps.geocode(coords, {kind: 'metro'}); metroGeocoder.then(function (res) {
var nearestmetro = res.geoObjects.get(0);
metrog = nearestmetro.properties.get('name');
myMap.balloon.open(coords, {
contentBody: cityg+' '+metrog,
contentFooter: regiong+' '+streetg
});
});
});
});
});
} else {
myMap.balloon.close();
}
});
myMap.controls.add('zoomControl', {left: '25px', top: '5px'});
}

 

3 комментария

Поселок шлюзы, Восточный, Шербинка и даже Троицк - это Москва.

Геокодер все правильно сделал.

Москва это не город - москва это регион.

alexander.opekunov
28 января 2016, 03:09

Откуда такая инфа? 

p.s. заработался.. пора валить домой, сяду на метро, поеду в деревню...

уберите kind=locality и будет

шлюзы, и москва

с kind он ищет с учетом ll+snp

даже если вы их не указали он берет какие-то по-умолчанию

и туда попадают объекты из МО