ロシアの誰かが私のウェブサイトから逆ジオコーディング応答を出しました。私はJsonを解析し、クライアント側で都市と州を1つの文字列に連結します。これは、連結された文字列が終わったものです:?逆ジオコーディングされたレスポンスのマーク
???? ?????-?????????, ??????
Googleが送信する状況はありますか?逆ジオコーディングされた応答からJsonを介してマークしますか?緯度/経度は正しい。
http://maps.googleapis.com/maps/api/geocode/json?latlng=60.0486851,30.3197483&sensor=true
誰もが任意のアイデアを持っている:私は私のブラウザから直接、同じJSONのポストを作ったとき、私は正しい応答を得ましたか。
私はアメリカからJsonにアクセスしていて、彼はロシアからそれにアクセスしていた可能性がありますか?
EDIT:連結はここに起こる:
まず、私は結果を得る:キリル文字や他のいくつかの言語で
geocoder.geocode({'latLng': realUsersLoc}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
if (results[1]) {
var loc = getCityState(results);
function getCityState(results)
{
var city = '';
var state = '';
var bad = '';
var good = '';
var us = true;
// check for non-us
for (var i = 0; i < results[0].address_components.length; i++)
{
var shortname = results[0].address_components[i].short_name;
var longname = results[0].address_components[i].long_name;
var type = results[0].address_components[i].types;
if (type.indexOf("country") != -1)
{
if (!isNullOrWhitespace(shortname))
{
us = (shortname == 'US');
}
else
{
us = (longname == 'United States');
}
}
}
if (!us)
{
for (var i = 0; i < results[0].address_components.length; i++)
{
var shortname = results[0].address_components[i].short_name;
var longname = results[0].address_components[i].long_name;
var type = results[0].address_components[i].types;
if (type.indexOf("country") != -1)
{
if (!isNullOrWhitespace(longname))
{
state = longname;
}
else
{
state = shortname;
}
}
if (type.indexOf("administrative_area_level_1") != -1)
{
if (!isNullOrWhitespace(shortname))
{
city = shortname;
}
else
{
city = longname;
}
}
else if (type.indexOf("locality") != -1)
{
if (!isNullOrWhitespace(shortname))
{
city = shortname;
}
else
{
city = longname;
}
}
}
}
else
{
// us
for (var i = 0; i < results[0].address_components.length; i++)
{
var shortname = results[0].address_components[i].short_name;
var longname = results[0].address_components[i].long_name;
var type = results[0].address_components[i].types;
if (type.indexOf("administrative_area_level_1") != -1)
{
if (!isNullOrWhitespace(shortname))
{
state = shortname;
}
else
{
state = longname;
}
}
else if (type.indexOf("locality") != -1)
{
if (!isNullOrWhitespace(shortname))
{
city = shortname;
}
else
{
city = longname;
}
}
else if (type.indexOf("administrative_area_level_3") != -1)
{
if (!isNullOrWhitespace(shortname))
{
good = shortname;
}
else
{
good = longname;
}
}
else if (type.indexOf("administrative_area_level_2") != -1)
{
if (!isNullOrWhitespace(shortname))
{
bad = shortname;
}
else
{
bad = longname;
}
}
}
if (city == '')
{
if (good != '')
{
city = good;
}
else
{
city = bad;
}
}
}
if (isNullOrWhitespace(city) && isNullOrWhitespace(state))
{
return 'N/A';
}
if (isNullOrWhitespace(city))
{
return state;
}
else if (isNullOrWhitespace(state))
{
return city;
}
return (city + ', ' + state)
}
文字列をどのように連結するのか投稿できますか? – smoak
ブラウザのテキストエンコードはおそらく? –
ええ、私はブラッドと私はそのブラウザのエンコーディングの問題だと思います。 @smoak - posted。 – smoak