I want to find current location name from latitude and longitude,
Here is my code snippet I tried but my log shows null value in all the places except in place
In Swift 4.1 and Xcode 9.4.1, this is one of my solution. Here i'm using geocode API to get the complete address. With this api i can get the village names also.
I'm using reverseGeocodeLocation but it's not getting village address details or village names, it's getting only near by city names. It's one of the finest solution....
func getAddressForLatLng(latitude: String, longitude: String) { // Call this function
let url = NSURL(string: "https://maps.googleapis.com/maps/api/geocode/json?latlng=\(latitude),\(longitude)")//Here pass your latitude, longitude
print(url!)
let data = NSData(contentsOf: url! as URL)
if data != nil {
let json = try! JSONSerialization.jsonObject(with: data! as Data, options: JSONSerialization.ReadingOptions.allowFragments) as! NSDictionary
print(json)
let status = json["status"] as! String
if status == "OK" {
if let result = json["results"] as? NSArray {
if result.count > 0 {
if let addresss:NSDictionary = result[0] as? NSDictionary {
if let address = addresss["address_components"] as? NSArray {
var newaddress = ""
var number = ""
var street = ""
var city = ""
var state = ""
var zip = ""
var country = ""
if(address.count > 1) {
number = (address.object(at: 0) as! NSDictionary)["short_name"] as! String
}
if(address.count > 2) {
street = (address.object(at: 1) as! NSDictionary)["short_name"] as! String
}
if(address.count > 3) {
city = (address.object(at: 2) as! NSDictionary)["short_name"] as! String
}
if(address.count > 4) {
state = (address.object(at: 4) as! NSDictionary)["short_name"] as! String
}
if(address.count > 6) {
zip = (address.object(at: 6) as! NSDictionary)["short_name"] as! String
}
newaddress = "\(number) \(street), \(city), \(state) \(zip)"
print(newaddress)
// OR
//This is second type to fetch pincode, country, state like this type of data
for i in 0..
Call this function like this
self.getAddressForLatLng(latitude: "\(self.lat!)", longitude: "\(self.lng!)")