2016-06-28 2 views
0

У меня есть список названий городов. Если пользователь выбирает один, я хотел бы установить центр моей угловой карты Google в этот определенный город.
console.log отлично работает. Я возвращаю правильное название города, но если я передам его функции, это заменит акценты.Работа с акцентами в angularjs

$scope.selectCity = function (city) { 
    console.log(city.name) //it works fine. The log: Abaújkér 
    locationService.getLatLngByCityName(city.name).then(function (result){ 
    var cityLatLng = result.data.results[0].geometry.location; 

    console.log(cityLatLng); 
    }).catch(function (error) { 
    console.log(error); 
    }); 
}; 

locationService.getLatLngByCityName возвращается с плохим запросу:

ПОЛУЧИТЬ http://maps.googleapis.com/maps/api/geocode/json?address=Aba%FAjk%E9r&sensor=true 400 (Bad Request)

Фабрика:

factory.getLatLngByCityName = function (city) { 
    console.log(city); // it works fine. The log: Abaújkér 
    var API_URL = 'http://maps.googleapis.com/maps/api/geocode/json?address=' + city; 
    return $http({ 
    method: 'GET', 
    url: API_URL, 
    params: { sensor: true } 
    }) 
    .catch(function() { 
    return $q.reject(); 
    }); 
} 

Я предполагаю, что его что-то с кодирование. Как я могу исправить URL googleapis?

+0

использование encodeURI (Uri); по названию города – Vanojx1

+0

Спасибо большое @ Vanojx1! Оно работает. Если бы вы могли опубликовать его в качестве ответа, я бы принял его. – MagicDragon

ответ

0

Вы должны закодировать параметры URL GET с "специальными символами", используйте эту функцию:

encodeURI()