📅 2024-02-16T12:25:10.989Z
👁️ 252 katselukertaa
🔓 Julkinen



    mk = [Ultra salainen lista]
    px = ['1', '2', '3', '4']

    for placemark in var_root:
        
        u_coords = {}

        points = 0
        desc_r = None
        range_points = 0
        km = []
        in20 = False
        if loading == True: print_percent_done(var_root.index(placemark), len(var_root))
        
        if placemark.find('.//kml:name', namespaces=nsmap) != None:
            name_elem = placemark.find('.//kml:name', namespaces=nsmap)
            name = name_elem.text.strip()
        else: continue
        if placemark.find('.//kml:coordinates', namespaces=nsmap) != None:
            
            coords = placemark.find('.//kml:coordinates', namespaces=nsmap).text.strip().split(',')
            kml_coords = (coords[1], coords[0])
            for ultra in ultrasalainenlista2:
                ultra_coords = tuple({ultrasalainenlista2[ultra]['coords']})
                ultra_points = ultrasalainenlista2[ultra]['points']
                
                if ultra_coords in u_coords:
                    ultra_dist = u_coords[ultra_coords]
                else: ultra_dist = distance.distance(ultrasalainenlista2[ultra]['coords'], kml_coords).km
                
                if ultra_dist <= float(asetukset['3']):
                    km.append(ultra_dist)
                    if ultra_dist <= 35:
                        in20 = True
                    range_points += (ultra_points / 2 - (ultra_points / (ultra_dist / float(asetukset['1']))))
            
                if ultra_dist <= 50:
                    u_coords[ultra_coords] = ultra_dist
        
        else: continue
        
        
        if in20 == False:
            continue
        

        
        if placemark.find('{http://www.opengis.net/kml/2.2}description') != None:
            description = placemark.find('{http://www.opengis.net/kml/2.2}description').text
            desc_r = description.split('<br>')
            if desc_r[0][1:3] == 'ultrasalainenstr':
                continue

            for r in desc_r:
                if r[1:3] in mk:
                    ta_r = r[0]
                    
                    if ta_r == 'ultrasalinenstr2':
                        om = r[4]
                        if om == '2':
                            points += float(asetukset['smart']['ultrasalinenasetus2'])
                        if om == '3':
                            points += float(asetukset['smart']['ultrasalinenasetus3'])
                        if om == '1':
                            points += float(asetukset['smart']['ultrasalinenasetus4'])
                    
                    if  len(r) > 5:
                        om = r[5]
                    if  len(r) > 6:
                        lm = r[6]
                    pa1 = r[3]
                    
                    if ta_r == 'ultrasalainenstr3':
                        if pa1 != 0 and om != None:
                            match om:
                                case '1':
                                    if lm == '5':
                                        points += float(asetukset['smart']['15'])
                                    elif lm == '2':
                                        points += float(asetukset['smart']['1x'])
                                    elif lm == '3':
                                        points += float(asetukset['smart']['1x'])
                                case '2':
                                    points += float(asetukset['smart']['2'])
                                case '3':
                                    if lm == '4':
                                        points += float(asetukset['smart']['34'])
                                    else:
                                        points += float(asetukset['smart']['3'])
                                case '4':
                                    if lm == '3':
                                        points += float(asetukset['smart']['43'])
                                    elif lm == '4':
                                        points += float(asetukset['smart']['44'])
                                    elif lm == '8':
                                        points += float(asetukset['smart']['48'])
                                case '5':
                                    if lm == None:
                                        points += float(asetukset['smart']['5'])
                                    elif lm == '8':
                                        points += float(asetukset['smart']['58'])

                                case '6':
                                    points += float(asetukset['smart']['6'])
                                case '7':
                                    if lm == '3':
                                        points += float(asetukset['smart']['73'])
                                # case '8':

                                case '9':
                                    if lm == '3':
                                        points += float(asetukset['smart']['93'])

                        elif pa1 in px and om == None:
                            points += float(asetukset['smart']['px'])


                    
            ta_r = r[0]
            if ta_r == 'ultrasalainenstr5' or r[:2] == 'ultrasalainenstr4':
                points += len(description.split('<br>')) * float(asetukset['smart']['ultrasalainenstr5*'])
                points += float(asetukset['smart']['ultrasalainenstr5'])

        else: continue

        if range_points == 0:
            continue
        if points != 0: 
            latas = []
            longas = []
            for vc in v_coords:
                latas.append(vc[0][0])
                longas.append(vc[0][1])

            avg_coords = (sum(latas) / len(latas), sum(longas) / len(longas))
            avg_dist = distance.distance(avg_coords, kml_coords).km


            km_points = sorted(km)[0]
            len_points = len(list(dict.fromkeys(km)))

            points_n = (points - (range_points / 2) + km_points + (len_points * len_points * len_points) - (avg_dist * avg_dist * avg_dist))
        
        else: continue

        ultrasalainenlista3.append({'name': name, 'points': points_n, 'coords': coords, 'km_points': km_points, 'desc': desc_r, 'len_points': len_points, 'avg_dist': avg_dist})