phpbar.de logo

Mailinglisten-Archive

[php] PLZ im Umkreis von x km

[php] PLZ im Umkreis von x km

TomH php_(at)_phpcenter.de
Mon, 08 Oct 2001 18:36:36 +0200


Tachchen,

die Koordinaten fuer komplette Staedte in D hab ich. Aus dieser Liste,
glaub ich:). Weiss aber leider nicht, wie aktuell die Daten sind. Habs
als nicht ganz so tolle MySQL-DB: http://www.7thweb.de/cities.sql

CREATE TABLE cities (
   ID bigint(20) NOT NULL auto_increment,
   ORT varchar(100),
   ZUSATZ varchar(100),
   PLZ_VON varchar(11),
   PLZ_BIS varchar(11),
   LAND char(2),
   STAAT varchar(4),
   NS double,
   OW double,
   L set('O','W'),
   L_H tinyint(4),
   L_M tinyint(4),
   L_S tinyint(4),
   B set('N','S'),
   B_H tinyint(4),
   B_M tinyint(4),
   B_S tinyint(4),
   PRIMARY KEY (ID),
   UNIQUE ID_2 (ID),
   UNIQUE ID (ID),
   KEY ORT (ORT),
   KEY PLZ_VON (PLZ_VON),
   KEY PLZ_BIS (PLZ_BIS),
   KEY LAND (LAND),
   KEY STAAT (STAAT),
   KEY NS (NS),
   KEY OW (OW)
);

#
# Dumping data for table 'cities'
#

INSERT INTO cities VALUES ( '1', 'Aach', ', Hegau', '78267', '78267',
'BW', 'BRD', '0.83514004707929', '0.1544616388015', 'O', '47', '51',
'0', 'N', '8', '51', '0');
INSERT INTO cities VALUES ( '2', 'Aach', 'bei Trier', '54298', '54298',
'RP', 'BRD', '0.86888307928451', '0.11490084242296', 'O', '49', '47',
'0', 'N', '6', '35', '0');


Wie die NS- und OW-Werte gerechnet sind, muesste ich suchen. Damit
laesst sich auf jeden Fall besser arbeiten, als mit den h,m und s
Angaben.
Die dazu passende Berechnung der Enfernung von PLZ1 nach PLZ2 auf
Grundlage Kugel ist:

(ACOS(SIN(LONGITUDE_ORT1)*SIN(LATITUDE_ORT2)+COS(LATITUDE_ORT1)*COS(LATITUDE_ORT2)*COS(LONGITUDE_ORT2-LONGITUDE_ORT1))*6378.388 

Ich hoffe nur, dass ich das jetzt alles richtig getippt hab. Was die
Abweichung angeht, weiss ich das gerade leider nicht mehr und wills auch
nicht rechnen. Kommt halt darauf an, wozu Du das brauchst. Mir hat das
innerhalb D gereicht.

Vielleicht hilfts ja.



Back again,

TomH


php::bar PHP Wiki   -   Listenarchive