1. Diese Seite verwendet Cookies. Wenn du dich weiterhin auf dieser Seite aufhältst, akzeptierst du unseren Einsatz von Cookies. Weitere Informationen
  2. Willkommen im Forum für alle Datenbanken! Registriere Dich kostenlos und diskutiere über DBs wie Mysql, Oracle, Sql-Server, Postgres, Access uvm
    Information ausblenden

koordinaten - suche den nächstgelegenen Wert

Dieses Thema im Forum "MySQL" wurde erstellt von lan4lano, 20 Februar 2012.

  1. lan4lano

    lan4lano Benutzer

    Moin,
    Ich hab da ein Problem, ich suche den nächstgelegenen Wert in einer Datenbank.
    Die Tabelle schaut so aus:
    Code:
    -- --------------------------------------------------------
     
    --
    -- Tabellenstruktur für Tabelle `geoname`
    --
     
    CREATE TABLE IF NOT EXISTS `geoname` (
      `geonameid` int(11) NOT NULL,
      `name` varchar(200) DEFAULT NULL,
      `asciiname` varchar(200) DEFAULT NULL,
      `alternatenames` varchar(4000) DEFAULT NULL,
      `latitude` decimal(10,7) DEFAULT NULL,
      `longitude` decimal(10,7) DEFAULT NULL,
      `fclass` char(1) DEFAULT NULL,
      `fcode` varchar(10) DEFAULT NULL,
      `country` varchar(2) DEFAULT NULL,
      `cc2` varchar(60) DEFAULT NULL,
      `admin1` varchar(20) DEFAULT NULL,
      `admin2` varchar(80) DEFAULT NULL,
      `admin3` varchar(20) DEFAULT NULL,
      `admin4` varchar(20) DEFAULT NULL,
      `population` int(11) DEFAULT NULL,
      `elevation` int(11) DEFAULT NULL,
      `gtopo30` int(11) DEFAULT NULL,
      `timezone` varchar(40) DEFAULT NULL,
      `moddate` date DEFAULT NULL,
      PRIMARY KEY (`geonameid`),
      KEY `latitude` (`latitude`,`longitude`)
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8;
     
    --
    -- Daten für Tabelle `geoname`
    --
     
    INSERT INTO `geoname` (`geonameid`, `name`, `asciiname`, `alternatenames`, `latitude`, `longitude`, `fclass`, `fcode`, `country`, `cc2`, `admin1`, `admin2`, `admin3`, `admin4`, `population`, `elevation`, `gtopo30`, `timezone`, `moddate`) VALUES
    (3038814, 'Costa de Xurius', 'Costa de Xurius', '', '42.5000000', '1.4833300', 'T', 'SLP', 'AD', '', '00', '', '', '', 0, 0, 1434, 'Europe/Andorra', '1993-12-23'),
    (3038815, 'Font de la Xona', 'Font de la Xona', '', '42.5500300', '1.4498600', 'H', 'SPNG', 'AD', '', '04', '', '', '', 0, 0, 1976, 'Europe/Andorra', '2010-01-11'),
    (3038816, 'Xixerella', 'Xixerella', '', '42.5532700', '1.4873600', 'P', 'PPL', 'AD', '', '04', '', '', '', 0, 0, 1417, 'Europe/Andorra', '2009-04-24');
    
    Jetzt suche ich die Koordinaten die meiner Abfrage am nächsten sind.
    zB suche ich nach latitude = 42.51000 longitude = 1.48300
    Ich möchte nur ein Ergebnis bekommen, für den Fall das es mehrere Einträge gibt die zutreffen.
    Für mein Bsp. sollte der Eintrag
    Code:
    (3038814, 'Costa de Xurius', 'Costa de Xurius', '', '42.5000000', '1.4833300', 'T', 'SLP', 'AD', '', '00', '', '', '', 0, 0, 1434, 'Europe/Andorra', '1993-12-23'),
    Ausgegeben werden.
    Wie bekomme ich das hin?

    Vielen Dank schon mal und bevor ich es vergesse, das ganze bitte Idioten sicher erklären, da ich so gar kein Experte bin was SQL angeht.
     
  2. ukulele

    ukulele Datenbank-Guru

  3. akretschmer

    akretschmer Datenbank-Guru

    Depends. KNN (Umkreissuche), je nach verwendeter DB gibt es da passende Funktionen wie z.B. den Abstandsoperator <->.

    PS.: ja, ich weiß, der Thread ist alt ;-)
     
Die Seite wird geladen...

Diese Seite empfehlen