8398c9048d
code was modified slightly, so the code differs from the original downloadable 1.9.5 version
263 lines
9.3 KiB
Text
263 lines
9.3 KiB
Text
{
|
|
|
|
// JSON REST services provided by geonames.org
|
|
// adapted from: http://www.geonames.org/export/JSON-webservices.html
|
|
// http://creativecommons.org/licenses/by/3.0/
|
|
// INCOMPLETE IMPLEMENTATION
|
|
|
|
"SMDVersion":"2.0",
|
|
"id":"/geonames",
|
|
"transport":"JSONP",
|
|
"envelope":"URL",
|
|
"target": "http://ws.geonames.org/",
|
|
|
|
"parameters" : [
|
|
{name:"type", optional: false, "default":"JSON"}
|
|
],
|
|
|
|
"services":{
|
|
getCountryInfo:{
|
|
// Result : returns info about a country such as name, population, etc.
|
|
// If country parameter is not specified, that information is returned for
|
|
// every country
|
|
"target": "countryInfoJSON",
|
|
"parameters": [
|
|
{ name: "country", type:"STRING", optional: true },
|
|
{ name: "lang", type:"STRING"}, // default: "en"
|
|
{ name: "maxRows", type:"INTEGER", optional: true } // default: 10
|
|
]
|
|
},
|
|
|
|
getCities:{
|
|
// Result : returns a list of cities and placenames in the bounding box,
|
|
// ordered by relevancy (capital/population). Placenames close together
|
|
// are filterered out and only the larger name is included in the resulting list.
|
|
"target": "citiesJSON",
|
|
"parameters": [
|
|
{ name: "north", type:"FLOAT"},
|
|
{ name: "south", type:"FLOAT"},
|
|
{ name: "east", type:"FLOAT"},
|
|
{ name: "west", type:"FLOAT"},
|
|
{ name: "lang", type:"STRING"}, // default: "en"
|
|
{ name: "maxRows", type:"INTEGER", optional: true } // deault: 10
|
|
]
|
|
},
|
|
|
|
"getQuakes":{
|
|
// Result : returns a list of earthquakes, ordered by magnitude
|
|
"target" : "earthquakesJSON",
|
|
"parameters" : [
|
|
// bounding box coords:
|
|
{ name: "north", type:"FLOAT" },
|
|
{ name: "south", type:"FLOAT" },
|
|
{ name: "east", type:"FLOAT" },
|
|
{ name: "west", type:"FLOAT" },
|
|
{ name: "date", type:"STRING",optional: true }, // yyyy-MM-dd
|
|
{ name: "minMagniture", type:"INTERGER",optional: true },
|
|
{ name: "maxRows", type:"INTEGER", optional: true } // deault: 10
|
|
]
|
|
},
|
|
|
|
"getWeather":{
|
|
// Weather data is provided in the METAR (METeorological Aerodrome Report) format.
|
|
// Result : returns a list of weather stations with the most recent weather observation
|
|
"target" : "weatherJSON",
|
|
"parameters" : [
|
|
{ name: "north", type:"FLOAT" },
|
|
{ name: "south", type:"FLOAT" },
|
|
{ name: "east", type:"FLOAT" },
|
|
{ name: "west", type:"FLOAT" },
|
|
{ name: "maxRows", type:"INTEGER",optional:true } // deault: 10
|
|
]
|
|
},
|
|
|
|
"getWeatherByICAO":{
|
|
// Result : returns the weather station and the most recent weather observation for the ICAO code
|
|
"target": "weatherIcaoJSON",
|
|
"parameters": [
|
|
{ name:"ICAO", type:"STRING" }
|
|
]
|
|
},
|
|
|
|
"getWeatherByCoords":{
|
|
// Result : returns a weather station with the most recent weather observation
|
|
"target": "findNearByWeatherJSON",
|
|
"parameters": [
|
|
{ name:"lat", type:"FLOAT" },
|
|
{ name:"lng", type:"FLOAT" }
|
|
]
|
|
},
|
|
|
|
"getChildren":{
|
|
// Returns the children for a given geonameId. The children are the
|
|
// administrative divisions within an other administrative division.
|
|
// Like the counties (ADM2) in a state (ADM1) or also the countries
|
|
// in a continent.
|
|
"target": "childrenJSON",
|
|
"parameters": [
|
|
{ name:"geonameId", type:"INTEGER" }
|
|
]
|
|
},
|
|
|
|
"getHierarchy":{
|
|
// Result : returns a list of GeoName records, ordered by hierarchy
|
|
// level. The top hierarchy (continent) is the first element in the list
|
|
"target": "hierarchyJSON",
|
|
"parameters": [
|
|
{ name:"geonameId", type:"INTEGER" }
|
|
]
|
|
},
|
|
|
|
"getNeighbours":{
|
|
// The neighbourhood for US cities. Data provided by Zillow under cc-by-sa license.
|
|
"target":"neighboursJSON",
|
|
"parameters": [
|
|
{ name:"geonameId", type:"INTEGER" }
|
|
//{ name:"lat", type:"FLOAT" },
|
|
//{ name:"long", type:"FLOAT" }
|
|
]
|
|
},
|
|
|
|
"getNeighbourhood":{
|
|
// returns the neighbourhood for the given latitude/longitude
|
|
// Example http://ws.geonames.org/neighbourhood?lat=40.78343&lng=-73.96625
|
|
"target":"neighbourhoodJSON",
|
|
"parameters":[
|
|
{ name:"lat", type:"FLOAT" },
|
|
{ name:"lng", type:"FLOAT" },
|
|
{ name:"radius", type:"FLOAT" }
|
|
]
|
|
},
|
|
|
|
"getSiblings":{
|
|
// Result : returns a list of GeoNames records that have the same
|
|
// administrative level and the same father
|
|
"target":"siblingsJSON",
|
|
"parameters": [
|
|
{ name:"geonameId", type:"INTEGER" }
|
|
]
|
|
},
|
|
|
|
"getCountryCode":{
|
|
// returns the iso country code for the given latitude/longitude
|
|
// With the parameter type=xml this service returns an xml document
|
|
// with iso country code and country name. The optional parameter
|
|
// lang can be used to specify the language the country name should
|
|
// be in. JSON output is produced with type=JSON
|
|
"target":"countryCode",
|
|
"parameters": [
|
|
{ name:"lat", type:"FLOAT" },
|
|
{ name:"lng", type:"FLOAT" },
|
|
{ name:"lang", type:"STRING",optional:true },
|
|
{ name:"radius", type:"FLOAT" }
|
|
]
|
|
},
|
|
|
|
"getCountrySubdivision":{
|
|
// returns the country and the administrative subdivison (state, province,...) for the given latitude/longitude
|
|
// Example http://ws.geonames.org/countrySubdivisionJSON?lat=47.03&lng=10.2
|
|
"target":"countrySubdivisionJSON",
|
|
"parameters":[
|
|
{ name:"lat", type:"FLOAT" },
|
|
{ name:"long", type:"FLOAT" },
|
|
{ name:"radius", type:"FLOAT" }
|
|
]
|
|
},
|
|
|
|
"getWikipediaBoundingBox":{
|
|
// returns the wikipedia entries within the bounding box as xml document
|
|
// Example http://ws.geonames.org/wikipediaBoundingBoxJSON?north=44.1&south=-9.9&east=-22.4&west=55.2
|
|
"target":"wikipediaBoundingBoxJSON",
|
|
"parameters":[
|
|
{ name: "north", type:"FLOAT" },
|
|
{ name: "south", type:"FLOAT" },
|
|
{ name: "east", type:"FLOAT" },
|
|
{ name: "west", type:"FLOAT" },
|
|
{ name: "lang", type:"STRING",optional:true }, // default: "en"
|
|
{ name: "maxRows", type:"INTEGER",optional:true } // default: 10
|
|
]
|
|
},
|
|
|
|
"searchWikipedia":{
|
|
// returns the wikipedia entries found for the searchterm as xml document
|
|
// Example http://ws.geonames.org/wikipediaSearchJSON?q=london&maxRows=10
|
|
"target":"wikipediaSearchJSON",
|
|
"parameters":[
|
|
{ name: "q", type:"STRING" }, // place name?
|
|
{ name: "title", type:"STRING" }, // optional
|
|
{ name: "lang", type:"FLOAT",optional:true }, // de or en
|
|
{ name: "maxRows", type:"INTEGER",optional:true } // default: 10
|
|
]
|
|
},
|
|
|
|
"getTimezone":{
|
|
// the timezone at the lat/lng with gmt offset (1. January) and dst offset (1. July)
|
|
"target":"timezoneJSON",
|
|
"parameters":[
|
|
{ name:"lat", type:"FLOAT" },
|
|
{ name:"lng", type:"FLOAT" }
|
|
]
|
|
},
|
|
|
|
"search":{
|
|
// returns the names found for the searchterm as xml or json document,
|
|
// the search is using an AND operator
|
|
"target":"searchJSON",
|
|
"parameters":[
|
|
// exhaustive list. see: http://www.geonames.org/export/geonames-search.html
|
|
{ name:"q", type:"STRING" },
|
|
{ name:"name", type:"STRING" },
|
|
{ name:"name_equals", type:"STRING" },
|
|
// optional:
|
|
{ name:"maxRows", type:"INTEGER",optional:true }, // def: 100, max:1000
|
|
{ name:"startRow", type:"INTEGER",optional:true }, // def: 0
|
|
{ name:"country", type:"STRING",optional:true }, // iso-3166, def: all
|
|
/* name:"adminCode..." */
|
|
{ name:"featureClass", type:"STRING",optional:true}, // ? multi, enum(a,h,l,p,r,s,t,u,v)
|
|
{ name:"featureCode", type:"STRING",optional:true},
|
|
{ name:"lang", type:"STRING",optional:true}, // iso-636
|
|
{ name:"type", type:"STRING",optional:true}, // xml | json | rdf, def: xml
|
|
{ name:"style", type:"STRING",optional:true }, // SHORT,MEDIUM,LONG,FULL def: MEDIUM
|
|
{ name:"isNamedRequired", type:"BOOLEAN", optional:true }
|
|
]
|
|
},
|
|
|
|
"postalCodeLookup":{
|
|
// returns a list of places for the given postalcode in JSON format
|
|
// Example http://ws.geonames.org/postalCodeLookupJSON?postalcode=6600&country=AT
|
|
"target":"postalCodeLookupJSON",
|
|
"parameters":[
|
|
{ name:"postalcode", type:"STRING" },
|
|
{ name:"country", type:"STRING",optional:true},
|
|
{ name:"maxRows", type:"INTEGER", optional:true }, // def: 20
|
|
{ name:"charset", type:"STRING",optional:true } // def: utf-8
|
|
]
|
|
},
|
|
|
|
"postalCodeSearch":{
|
|
"target":"postalCodeSearchJSON",
|
|
"parameters":[
|
|
{ name:"postalcode", type:"STRING",optional:true}, // one or the other
|
|
{ name:"placename", type:"STRING",optional:true }, // one or the other
|
|
{ name:"country", type:"STRING",optional:true},
|
|
{ name:"style", type:"STRING",optional:true}, // def: MEDIUM
|
|
{ name:"maxRows", type:"INTEGER",optional:true}, // def: 20
|
|
{ name:"charset", type:"STRING",optional:true} // def: utf-8
|
|
]
|
|
}
|
|
|
|
// TODO: implement:
|
|
// findNearby,
|
|
// findNearbyPlaceName
|
|
// findNearbyPostalCodes,
|
|
// findNearbyStreets,
|
|
// findNearByWeather
|
|
// findNearByWikipedia
|
|
// findNeareastAddress
|
|
// findNearestInterestion
|
|
// get
|
|
// gtop30
|
|
// srtm3
|
|
|
|
} // end services
|
|
}
|