[opengeodb] Alle Städte und/oder Landkreise in einem Bundesland?
Robert Böck
robert.boeck at googlemail.com
Fre Mar 21 00:35:55 CET 2008
Hallo Jan,
Jan-Simon Winkelmann wrote:
> ich stehe (nach meinem inzwischen gelösten Kartenproblem) mal wieder vor
> einer Problematik. Diesmal mit der opengeodb selbst.
> Und zwar möchte ich gerne (ohne die geoclassphp, sofern die das denn
> überhaupt kann) eine Liste von allen Städten in einem Bundesland oder
> allen Landkreisen in einem Bundesland haben. Geht das irgendwie oder
> fehlt da die Zuordnung?
Ich habe mir vor einiger Zeit mal einige Abfragen in mühevoller
Kleinarbeit zusammengebaut. Diese Abfragen beziehen sich auf Bayern,
aber du kannst sie ja auf das jeweilige Bundesland anpassen. Beachte,
dass diese Abfragen nur mit einer intakten geodb_hierarchies funktionieren.
------------------------------------------------------------------------
Regierungsbezirk:
SELECT ort.loc_id as l_ort,
ort.text_val as t_ort
FROM geodb_hierarchies hi,
geodb_textdata land,
geodb_textdata ort,
geodb_textdata bundesland
WHERE hi.id_lvl2=land.loc_id AND
land.text_val='DE' AND
land.text_type=500100001 AND
hi.id_lvl3=bundesland.loc_id AND
bundesland.text_val='BY' AND
bundesland.text_type=500100001 AND
ort.loc_id = hi.loc_id AND
ort.text_type = 500100000 AND
hi.loc_id=hi.id_lvl4
ORDER BY l_ort
------------------------------------------------------------------------
Landkreis:
SELECT ort.loc_id as l_ort,
ort.text_val as t_ort,
hi.id_lvl4 as rbez_id
FROM geodb_hierarchies hi,
geodb_textdata land,
geodb_textdata ort,
geodb_textdata bundesland
WHERE hi.id_lvl2=land.loc_id AND
land.text_val='DE' AND
land.text_type=500100001 AND
hi.id_lvl3=bundesland.loc_id AND
bundesland.text_val='BY' AND
bundesland.text_type=500100001 AND
ort.loc_id = hi.loc_id AND
ort.text_type = 500100000 AND
hi.loc_id=hi.id_lvl5
ORDER BY l_ort
------------------------------------------------------------------------
Ort:
SELECT ort.loc_id as l_ort,
ort.text_val as t_ort,
coord.lon as lon,
coord.lat as lat,
kfz.text_val as t_kfz,
hi.id_lvl5 as lkr_id
FROM geodb_hierarchies hi,
geodb_textdata land,
geodb_textdata ort,
geodb_textdata bundesland,
geodb_textdata kfz,
geodb_coordinates coord,
geodb_locations loc
WHERE hi.id_lvl2=land.loc_id AND
land.text_val='DE' AND
land.text_type=500100001 AND
hi.id_lvl3=bundesland.loc_id AND
bundesland.text_val='BY' AND
bundesland.text_type=500100001 AND
ort.loc_id=hi.loc_id AND
ort.text_type=500100000 AND
hi.loc_id=hi.id_lvl6 AND
loc.loc_id=hi.loc_id AND
loc.loc_type=100700000 AND
coord.loc_id=hi.loc_id AND
kfz.loc_id=hi.loc_id AND
kfz.text_type=500500000
ORDER BY l_ort
------------------------------------------------------------------------
PLZ:
SELECT plz.loc_id as l_plz,
plz.text_val as t_plz
FROM geodb_hierarchies hi,
geodb_textdata land,
geodb_textdata bundesland,
geodb_textdata plz
WHERE hi.id_lvl2=land.loc_id AND
land.text_val='DE' AND
land.text_type=500100001 AND
hi.id_lvl3=bundesland.loc_id AND
bundesland.text_val='BY' AND
bundesland.text_type=500100001 AND
hi.loc_id=hi.id_lvl6 AND
plz.loc_id=hi.loc_id AND
plz.text_type=500300000
ORDER BY l_plz, t_plz
------------------------------------------------------------------------
cu, Robo :)