I use google maps api to get the location of a user in my IBM Mobilefirst project, and it works fine, as expected in all countries except china. I know that this is because China has blocked access to google apis in their country. any workaround that I can make the application work even in China. I gave the below code snippet for reference.
This is a script in my head
<script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?key=AIzaSyBaKx9iQrPQuOmAc2DkMRgjFdT0_XTdbmE&sensor=false&v=3&libraries=geometry"></script>
javascript code
function getLocation() {
busy = new WL.BusyIndicator ();
busy.show();
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(showPosition, showError,options);
} else {
alert( "Geolocation is not supported");}
}
function showPosition(pos) {
var geocoder = new google.maps.Geocoder();
var latlng = new google.maps.LatLng(pos.coords.latitude,pos.coords.longitude);
latitude=pos.coords.latitude;
longitude=pos.coords.longitude;
geocoder.geocode({ 'latLng': latlng }, function (results, status) {
if (status == google.maps.GeocoderStatus.OK) {
var addresscomponent=results[0].address_components;
var addresslength=addresscomponent.length;
for(var i=0;i<addresslength;i++){
if(addresscomponent[i].types[0]=='country'){
countryname=addresscomponent[i].short_name;
}
else if(addresscomponent[i].types[0]=='locality'){
cityname=addresscomponent[i].short_name;
}
}
}
function showError(error) {
alert(error);
busy.hide();
}
source
share