Answer to Question #277472 in HTML/JavaScript Web Application for Bibin

Question #277472

Find latitude and longitude of 20 countries with a population greater than or equal to the population limit given below. Use the country details from this dataset.



Your task is to find the sum of the length of all lines (in kms) that can be drawn between co-ordinates of these countries.

1
Expert's answer
2021-12-08T19:03:19-0500

Population limit: 28875


import ​​json
from ​​math import pi, sin, cos, sqrt, asin



def find_dist(latlng_1, latlng_2):
	'''
	This function calculate distanse in km between two point on Earth
	whose coordinates are passed as two lists and returns rounded distanse
	'''
	lat1, lon1 = latlng_1[0]*pi/180, latlng_1[1]*pi/180
	lat2, lon2 = latlng_2[0]*pi/180, latlng_2[1]*pi/180
	d = 2*6371*asin(sqrt(sin((lat2-lat1)/2)**2 + cos(lat1)*cos(lat2)*sin((lon2-lon1)/2)**2))
	return round(d,2)



file = "countriesV2.json"


limit = 11750


with ​​open(file, 'r') as f:
	contries = json.load(f)
first_20 = {}
for ​​contry in contries:
	if contry['population'] >= limit:
		first_20[contry['alpha3Code']] = contry['latlng']
		if len(first_20) == 20:
			break


total_dist = 0
keys = list(first_20.keys())
for ​​i in range(len(keys)-1):
	for j in range(len(keys[i+1:])):
		total_dist += find_dist(first_20[keys[i]], first_20[keys[j]])
total_dist = round(total_dist, 2)


print(total_)

Need a fast expert's response?

Submit order

and get a quick answer at the best price

for any assignment or question with DETAILED EXPLANATIONS!

Comments

No comments. Be the first!

Leave a comment

LATEST TUTORIALS
New on Blog
APPROVED BY CLIENTS