php从没有api密钥的地址获取纬度

I have function that get address and return latitude and longitude.

The problem is that after a while i'm getting 0.00000 for both lat & lng. I guess that i need to add "&key=API_KEY" to the url, and if i got it right it's cost money.

Is there any other way to get address lat & lng ?

function get_address_lat_lng ($address)
{

    $prepAddr = str_replace(' ','+',$address);

    $geocode=file_get_contents('https://maps.google.com/maps/api/geocode/json?address='.urlencode($prepAddr).'&sensor=false');

    $output= json_decode($geocode);

    $lat = $output->results[0]->geometry->location->lat;
    $lng = $output->results[0]->geometry->location->lng;

    return (array('lat' => $lat, 'lng' => $lng) );
}
function ipLookUp () {
  $.ajax('http://ip-api.com/json')
   .then(
    function success(response) {
      console.log('User\'s Location Data is ', response);
      console.log('User\'s Country ', response.country);
    },

    function fail(data, status) {
      console.log('Request failed.  Returned status of ', status);
    }
  );
}
ipLookUp()

Check your console logs on browsers but this is based on IP of client.