| GeoNames Home | Postal Codes | Download / Webservice | About |
| Url | » | ws.geonames.org/search? |
| Result | » | returns the names found for the searchterm as xml or json document, the search is using an AND operator |
| Parameter | Value | Description |
|---|---|---|
| q | string (q,name or name_equals required) | search over all attributes of a place : place name, country name, continent, admin codes,... (Important:urlencoded utf8) |
| name | string (q,name or name_equals required) | place name only(Important:urlencoded utf8) |
| name_equals | string (q,name or name_equals required) | exact place name |
| maxRows | integer (optional) | the maximal number of rows in the document returned by the service. Default is 100, the maximal allowed value is 1000. |
| startRow | integer (optional) | Used for paging results. If you want to get results 30 to 40, use startRow=30 and maxRows=10. Default is 0. |
| country | string : country code, ISO-3166 (optional) | Default is all countries. The country parameter may occur more then once, example: country=FR&country=GP |
| continentCode | string : continent code : AF,AS,EU,NA,OC,SA,AN (optional) | restricts the search for toponym of the given continent. |
| adminCode1, adminCode2, adminCode3 | string : admin code (optional) | code of administrative subdivision |
| featureClass | character A,H,L,P,R,S,T,U,V (optional) | featureclass(es) (default= all feature classes); this parameter may occur more then once, example: featureClass=P&featureClass=A |
| featureCode | string (optional) | featurecode(s) (default= all feature codes); this parameter may occur more then once, example: featureCode=PPLC&featureCode=PPLX |
| lang | string ISO-636 2-letter language code; en,de,fr,it,es,... (optional) | place name and country name will be returned in the specified language. Default is English. Feature classes and codes are only available in English and Bulgarian. Any help in translating is welcome. |
| type | string xml,json,rdf | the format type of the returned document, default = xml |
| style | string SHORT,MEDIUM,LONG,FULL (optional) | verbosity of returned xml document, default = MEDIUM |
| isNameRequired | boolean (optional) | At least one of the search term needs to be part of the place name. Example : A normal seach for Berlin will return all places within the state of Berlin. If we only want to find places with 'Berlin' in the name we se the parameter isNameRequired to 'true'. The difference to the name_equals parameter is that this will allow searches for 'Berlin, Germany' as only one search term needs to be part of the name. |
| tag | string (optional) | search for toponyms tagged with the specified tag |
Example 2 : http://ws.geonames.org/search?q=london&maxRows=10&style=LONG&lang=es
JSON
http://ws.geonames.org/searchJSON?q=london&maxRows=10
JSON is easier to use in Javascript then XML, as a browser security feature will no allow you to call an xml service from an other domain. A simple example using the json service on googlemaps is here
Reverse Geocoding
Reverse geocoding is the process of finding a place name for a given latitude and longitude. GeoNames has a wide range of reverse geocoding webservices.
RDF - Semantic Web
http://ws.geonames.org/search?q=london&maxRows=10&type=rdf
With the parameter type=rdf the search service returns the result in RDF format defined by the GeoNames Semantic Web Ontology.
Tags
GeoNames is using a simple tagging system. Every user can tag places. In contrast to the feature codes and feature classes which are one-dimensional (a place name can only have one feature code) several tags can be used for each place name.
It is an additional categorization mechanism where the simple classification with feature codes is not sufficient.
I have tagged a place with the tag 'skiresort'. You can search for tags with the search :
http://www.geonames.org/search.html?q=skiresort
If you only want to search for a tag and not for other occurences of the term (in case you tag something with 'spain' for example), then you add the attribute 'tags:' to the search term :
http://www.geonames.org/search.html?q=tags:skiresort
And if you want to search for tags of a particular user (or your own) then you append '@username' to the tag. Like this :
http://www.geonames.org/search.html?q=tags:skiresort@marc
