Fork of heuristic to find wrong coordinates and / or wrong iso-codes by Herzi Pinki
This query is marked as a draft This query has been published by Geraki.

SQL

x
 
set @ns:=0;
#use commonswiki_p;set @ns:=6;
set @iso1:='GR';
#set @iso2:='' or code
set @iso2:='29';
/*
  'XA', 'XI', 'XN', 'XO', 'XP', 'XS', 
  'AE','AF','AX','AL','AS','AD','AO','AI','AQ','AG','AR','AM','AW','AU','AT','AZ',
  'BS','BH','BD','BB','BL','BY','BE','BZ','BJ','BM','BT','BO','BQ','BA','BW','BV','BR','BN','BG','BF','BI',
  'CM','CA','CH','CV','CF','CL','CN','CX','CC','CO','CG','CD','CK','CR','CI','CU','CW','CY','CZ',
  'DE','DK','DJ','DM','DO','DZ',
  'EC','EG','EH','ER','EE','ES','ET',
  'FK','FO','FJ','FI','FR','FX',
  'GA','GB','GM','GE','GF','GH','GI','GR','GL','GD','GP','GU','GS','GT','GG','GN','GQ','GW','GY',
  'HT','HM','HN','HK','HR','HU',
  'IS','IN','IO','ID','IR','IQ','IE','IM','IL','IT',
  'JM','JP','JE','JO','KZ','KE','KH','KI','KM','KN','KP','KR','KW','KG','KY',
  'LA','LB','LC','LV','LK','LS','LR','LY','LI','LT','LU',
  'MO','MK','MF','MG','MW','MY','MV','ML','MT','MH','MQ','MR','MU','MX','FM','MD','MC','MN','ME','MS','MA','MZ','MM',
  'NA','NR','NP','NL','NC','NZ','NI','NE','NG','NU','NF','MP','NO','OM',
  'PK','PW','PS','PA','PF','PG','PY','PE','PH','PM','PN','PL','PT','PR','QA',
  'RE','RO','RU','RW','RS',
  'SM','ST','SA','SH','SN','SC','SL','SG','SX','SK','SI','SB','SO','SS','SD','SR','SJ','SZ','SE','SV','SY',
  'TD','TF','TW','TJ','TZ','TH','TL','TG','TK','TO','TT','TN','TR','TM','TC','TV',
  'UG','UA','US','UM','UY','UZ',
  'VA','VC','VU','VE','VN','VG','VI',
  'WF','WS','YE','YT','ZA','ZM','ZW'
*/
select distinct sqrt((gt_lat - cen_gt_lat)*(gt_lat - cen_gt_lat) + (gt_lon - cen_gt_lon)*(gt_lon - cen_gt_lon)) as distanz_ungefaehr, 
       gt_lat, gt_lon, gt_type, gt_page_id, gt_name,
       p1.page_namespace as ns,
       p1.page_title as title,
       gt_country,gt_region FROM geo_tags AS g1 JOIN page AS p1 ON g1.gt_page_id = p1.page_id,
       (select avg(gt_lat) cen_gt_lat,avg(gt_lon) cen_gt_lon,count(*) from geo_tags
        where 
            case 
                when @iso2=''
                then gt_country=@iso1 and gt_region is null
                else gt_country=@iso1 and gt_region=@iso2
                end) as zentrumdavon
        where
            case
                when @iso2=''
                then gt_country=@iso1 and gt_region is null
                else gt_country=@iso1 and gt_region=@iso2
                end
       #having ns= @ns
       order by 1 desc, title asc, gt_name asc limit 500;
       
select distinct sqrt((gt_lat - cen_gt_lat)*(gt_lat - cen_gt_lat) + (gt_lon - cen_gt_lon)*(gt_lon - cen_gt_lon)) as distanz_ungefaehr, 
       gt_lat, gt_lon, gt_type, gt_page_id, gt_name,
       p1.page_namespace as ns,
       p1.page_title as title,
       gt_country,gt_region FROM geo_tags AS g1 JOIN page AS p1 ON g1.gt_page_id = p1.page_id,
       (select avg(gt_lat) cen_gt_lat,avg(gt_lon) cen_gt_lon,count(*) from geo_tags
        where gt_country=@iso1 and gt_region is null
                ) as zentrumdavon
        where gt_country=@iso1 and gt_region is null
       #having ns= @ns
       order by 1 desc limit 500;
#and gt_region is null
By running queries you agree to the Cloud Services Terms of Use and you irrevocably agree to release your SQL under CC0 License.
All SQL code is licensed under CC0 License.

Checking query status...