1
嗨我有一个名为地标的kml文件和4个节点(地标),位于谷歌地球上的一个区域。每个地标节点都有一个经度和纬度。通过上面的代码中,我能提取数据蟒蛇与谷歌地球坐标距离计算
(u'node0:', 21.78400936610002, 38.2874355527483)
(u'node1:', 21.78453228393861, 38.28690995466475)
(u'node2:', 21.7848823502596, 38.2869152766261)
(u'node3:', 21.78459887820567, 38.28740826552452)
我想是计算NODE0和node2,3,4之间的距离......(保持不变NODE0在距离函数),然后打印结果。
我想使用的功能是:
import math
R = 6371 # km
dLat = (lat2-lat1) # Make sure it's in radians, not degrees
dLon = (lon2-lon1) # Idem
a = math.sin(dLat/2) * math.sin(dLat/2) +
math.cos(lat1) * math.cos(lat2) *
math.sin(dLon/2) * math.sin(dLon/2)
c = 2 * math.atan2(math.sqrt(a), math.sqrt(1-a))
d = R * c;
from xml.dom import minidom
xmldoc = minidom.parse("placemarks.kml")
kml = xmldoc.getElementsByTagName("kml")[0]
document = kml.getElementsByTagName("Document")[0]
placemarks = document.getElementsByTagName("Placemark")
for placemark in placemarks:
nodename = placemark.getElementsByTagName("name")[0].firstChild.data
lst = nodename.split(":")
coords = placemark.getElementsByTagName("coordinates")[0].firstChild.data
lst1 = coords.split(",")
longitude = float(lst1[0])
latitude = float(lst1[1])
def calc_distance(longitude, latitude)
print(nodename + ":",longitude, latitude)