পার্টিতে লেট, তবে আশাবাদী কার্যকর অবদানের সাথে। ভূ-কৌশল ব্যবহার করে স্ক্রু-এর উত্তরের উপর ভিত্তি করে, আমি একটি ছোট ফাংশন লিখেছিলাম যা নির্বিচারে অনেকগুলি স্থানাঙ্ক সহ একটি সুদৃ .় লাইনস্ট্রিং অবজেক্টের জন্য গণনা করে। এটি pairs
স্ট্যাকওভারফ্লো থেকে একটি পুনরুক্তি ব্যবহার করে ।
প্রধান বৈশিষ্ট্য: স্নিপেটগুলির চেয়ে ডকাস্ট্রিংগুলি দীর্ঘ।
def line_length(line):
"""Calculate length of a line in meters, given in geographic coordinates.
Args:
line: a shapely LineString object with WGS 84 coordinates
Returns:
Length of line in meters
"""
# Swap shapely (lonlat) to geopy (latlon) points
latlon = lambda lonlat: (lonlat[1], lonlat[0])
total_length = sum(distance(latlon(a), latlon(b)).meters
for (a, b) in pairs(line.coords))
return round(total_length, 0)
def pairs(lst):
"""Iterate over a list in overlapping pairs without wrap-around.
Args:
lst: an iterable/list
Returns:
Yields a pair of consecutive elements (lst[k], lst[k+1]) of lst. Last
call yields the last two elements.
Example:
lst = [4, 7, 11, 2]
pairs(lst) yields (4, 7), (7, 11), (11, 2)
Source:
/programming/1257413/1257446#1257446
"""
i = iter(lst)
prev = i.next()
for item in i:
yield prev, item
prev = item