[OSM-talk-nl] Zoeken op OpenStreetMap NL met alleen maar open source en open content
Stefan de Konink
skinkie at xs4all.nl
Thu Jan 3 21:59:53 UTC 2008
Stefan de Konink schreef:
> Rob schreef:
>> mooiste zou een ajax interface zijn die terwijl je intikt al suggesties
>> doet (alla moviemeter.nl <http://moviemeter.nl>)
>>
>> wat voor een zoek voorbeelden wil je ? die van geonames zijn erg simpel..
>> ik zou nog wel een "secondary" zoekfunctie willen die na de resultaat
>> locatie van martijn een mogelijkheid geeft om binnen een bepaalde straal
>> bv alle kerken, touristische poi's, pinautomaten, bushaltes op de map
>> weer te geven.
>>
>> dus zoek Amsterdam, en dan zoek alle pinautomaten in straal van 500 meter.
>
> Ik ga even kijken hoe lang een query duurt :) (in mijn geval zonder Geo
> indexing)
Alle atms uit de database gaat in 229seconden, en dan heb je er wel 541.
Maar goed dan heb je een query in de vorm van:
select * from node_tags where name='amenity' and value='atm';
Wat je natuurlijk wilt is een query in de vorm van:
select * from nodes where latitude >= 52.375 AND latitude <= 52.379 AND
longitude >= 4.89 AND longitude <= 4.90;
(die query opzich zelf duurt 20 seconden)
Vervolgens mergen we de twee:
sql>select * from nodes, node_tags where latitude >= 52.375 AND latitude
<= 52.379 AND longitude >= 4.89 AND longitude <= 4.90 AND nodes.id =
node_tags.node AND name='amenity' and value='atm';
Timer 8734.835 msec 0 rows
Dat is best sneu :D
Wat is er dan wel beschikbaar in die omgeving:
sql>select * from nodes, node_tags where latitude >= 52.375 AND latitude
<= 52.379 AND longitude >= 4.89 AND longitude <= 4.90 AND nodes.id =
node_tags.node AND name='amenity';
+-----------+--------------+--------------+----------+--------+----------+
| id |latitude |longitude |node |name |value |
+===========+==============+==============+==========+========+==========+
| 30289629 |52.3780594 |4.89450979 | 30289629 |amenity |parking |
| 34044091 |52.3754654 |4.89479828 | 34044091 |amenity |fast_food |
| 34044110 |52.3773537 |4.8962574 | 34044110 |amenity |fast_food |
| 46411054 |52.3767891 |4.89339018 | 46411054 |amenity |parking |
| 46411772 |52.3769188 |4.8948698 | 46411772 |amenity |parking |
| 46415975 |52.3778 |4.89595985 | 46415975 |amenity |parking |
| 46420819 |52.378849 |4.89624023 | 46420819 |amenity |parking |
| 117908618 |52.3772125 |4.89185381 |117908618 |amenity |post_box |
+-----------+--------------+--------------+----------+--------+----------+
Timer 51175.116 msec 8 rows
Stel nu dat ik weet dat ik een post_box zoek als ik op Amsterdam CS zou
staan.
sql>select * from nodes, node_tags where latitude >= 52.375 AND latitude
<= 52.379 AND longitude >= 4.89 AND longitude <= 4.90 AND nodes.id =
node_tags.node AND name='amenity' and value='post_box';
+-----------+--------------+--------------+----------+--------+---------+
| id |latitude |longitude |node |name |value |
+===========+==============+==============+==========+========+=========+
| 117908618 |52.3772125 |4.89185381 |117908618 |amenity |post_box |
+-----------+--------------+--------------+----------+--------+---------+
Timer 8741.363 msec 1 rows
Wat een feest :)
...ja ik moet wat geo indexing toevoegen eventueel zelfs over gaan naar
de 'postgis' insert strategy. Op zich ben ik niet eens on te vreden over
de resultaten. Systeempje draait op een AMD64X2 4000+, 8GB geheugen en 1
sata schijfje.
Stefan
More information about the Talk-nl
mailing list