javascript - ? marks coming from reverse geocoded response -
javascript - ? marks coming from reverse geocoded response -
so russian federation made reverse geocoding response website. parse json , concatenate city , state 1 string on client side. concatenated string ended being:
???? ?????-?????????, ??????
is there situation google send ? marks through json reverse geocoded response? latitude/longtitude correct. when made same json post straight through browser got right response:
http://maps.googleapis.com/maps/api/geocode/json?latlng=60.0486851,30.3197483&sensor=true
anyone have ideas?
could because accessing json usa, , accessing russia?
edit: concatenation happens here:
first results:
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 = ''; var = true; // check non-us (var = 0; < 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)) { = (shortname == 'us'); } else { = (longname == 'united states'); } } } if (!us) { (var = 0; < 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 { // (var = 0; < 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)) { = shortname; } else { = 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)) { homecoming 'n/a'; } if (isnullorwhitespace(city)) { homecoming state; } else if (isnullorwhitespace(state)) { homecoming city; } homecoming (city + ', ' + state) }
considering presence of dash question marks, seems exceedingly character set issue , not case of google sending question marks. (how site specifying utf-8 charset?) if don't care internationalization, can work around problem forcing results english language language
parameter in url (see below). is, of course, not ideal, may acceptable uses.
in event above workaround not acceptable, seek running code results http://maps.googleapis.com/maps/api/geocode/json?latlng=60.0486851,30.3197483&sensor=true&language=ru (note language
parameter tacked on end forcefulness homecoming russian-language data) on various browsers see if can replicate question-mark problem. (if know browser/platform user using when experienced problem, better.)
javascript json google-maps-api-3 reverse-geocoding
Comments
Post a Comment