You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
263 lines
9.3 KiB
263 lines
9.3 KiB
{ |
|
|
|
// 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 |
|
}
|
|
|