跳到主要內容

I found a online free GeoNames lookup service

main page:
http://www.geonames.org/

the api overview:
http://www.geonames.org/export/ws-overview.html

api templte:
http://api.geonames.org/method?params=query&username=yourname

the jeoquery.js file for jquery using
http://tompi.github.io/jeoquery/jeoquery.js

var methods = {
astergdem: {params: ['lat', 'lng'] },
children: {params: ['geonameId', 'maxRows'] },
cities: {params: ['north', 'south', 'east', 'west', 'lang'] },
countryCode: {params: ['lat', 'lng', 'type', 'lang', 'radius'] },
countryInfo: {params: ['country', 'lang'] },
countrySubdivision: {params: ['lat', 'lng', 'level', 'lang', 'radius'] },
earthquakes: {params: ['north', 'south', 'east', 'west', 'date', 'maxRows', 'minMagnitude'] },
findNearby: {params: ['lat', 'lng', 'featureClass', 'featureCode', 'radius', 'style', 'maxRows'] },
findNearbyPlacename: {params: ['lat', 'lng', 'radius', 'style'] },
findNearbyPostalCodes: {params: ['lat', 'lng', 'radius', 'style', 'maxRows', 'country', 'localCountry', 'postalCode'] },
findNearbyStreets: {params: ['lat', 'lng', 'radius', 'maxRows'] },
findNearbyStreetsOSM: {params: ['lat', 'lng'] },
findNearbyWeather: {params: ['lat', 'lng'] },
findNearbyWikipedia: {params: ['lat', 'lng', 'radius', 'maxRows', 'country', 'postalCode'] },
findNearestAddress: {params: ['lat', 'lng'] },
findNearestIntersection: {params: ['lat', 'lng'] },
findNearestIntersectionOSM: {params: ['lat', 'lng', 'radius', 'maxRows'] },
findNearbyPOIsOSM: {params: ['lat', 'lng'] },
get: {params: ['geonameId', 'lang', 'style'] },
gtopo30: {params: ['lat', 'lng'] },
hierarchy: {params: ['geonameId'] },
neighbourhood: {params: ['lat', 'lng'] },
neighbours: {params: ['geonameId', 'country'] },
ocean: {params: ['lat', 'lng', 'radius'] },
postalCodeCountryInfo: {params: [] },
postalCodeLookup: {params: ['postalcode', 'country', 'maxRows', 'charset'] },
postalCodeSearch: {params: ['postalcode', 'postalcode_startsWith', 'placename_startsWith', 'country', 'countryBias', 'maxRows', 'style', 'operator', 'charset', 'isReduced'] },
search: {params: [ 'q', 'name', 'name_equals', 'name_startsWith', 'maxRows', 'startRow', 'country', 'countryBias', 'continentCode', 'adminCode1', 'adminCode2', 'adminCode3', 'featureClass', 'featureCode', 'lang', 'type', 'style', 'isNameRequired', 'tag', 'operator', 'charset', 'fuzzy'] },
siblings: {params: ['geonameId'] },
srtm3: {params: ['lat', 'lng'] },
timezone: {params: ['lat', 'lng', 'radius', 'date'] },
weather: {params: ['north', 'south', 'east', 'west', 'maxRows'] },
weatherIcao: {params: ['ICAO'] },
wikipediaBoundingBox: {params: ['north', 'south', 'east', 'west', 'lang', 'maxRows'] },
wikipediaSearch: {params: ['q', 'title', 'lang', 'maxRows'] }
};

using example:
http://api.geonames.org/children?geonameId=3175395&username=demo
http://api.geonames.org/countryInfo?country=TW&username=demo

留言

這個網誌中的熱門文章

Multiple without multication or addition operator

Given two binary strings, return their sum (also a binary string). For example, a = "1101" // 13 b = "1000" // 8 Return “1101000”. // 104 Solution: implement Binary add to perform multication static int MultipleWithoutOperator(int num, int multiplier) { StringBuilder sb = new StringBuilder(); string binary = Convert.ToString(num, 2); string binaryMultiplier = Convert.ToString(multiplier, 2); string temp = ""; for (int i = binaryMultiplier.Length-1, j=0;i >= 0;i--,j++){ if (binaryMultiplier[i]=='1') { if (string.IsNullOrEmpty(temp)) { temp = binary.PadRight(binary.Length + j, '0'); } else { temp = BinaryAdd(temp, binary.PadRight(binary.Length + j, '0')); } } } return Convert.ToInt32(temp, 2); } static string BinaryAdd(string a, string b) { int carryover = 0; Stri...

刻意練習

學習效率 想要多花點時間學習,但常常覺得沒有效果。最近這樣的想法困擾著我,剛好公司內部在提倡導師文化,而我的導師是公司比較資深的員工。因此就在與導師每天的會面提出了這樣的問題。 首先導師先詢問我是怎麼學習的,我就提出我現在嘗試著花時間來寫部落格,統整自己的想法,彙整自己的一些技能跟知識。另外希望每個月可以看一本書,可以提升自己程式能力並且立即用在工作上。但事實上進公司已經三個月了,很多書其實都沒有看完,可能看了一些內容又轉換去看了其他書。又或者某些看完的書的內容,現在也有點模糊,並沒有真正的內化為自己的能力,效率真的很差。 因此導師提出了他的想法,簡單的說就是每天固定時間固定長度逼自己看書。每天如果都做自己會的事情,或是做平常就會做的事情是很難進步的。因此要刻意的讓自己在固定的時間固定的長度來學習,這種比較刻意的學習是比較有用的。如果只是給自己一個一個月要看完一本書的期許,通常過了一個月這件事情不會發生,而且就算發生了或許效果也打折扣。不如每天都讓自己抽出時間來做,每天固定學習幾頁,這樣一個月過去一本書也可以看完。這個想法的確比較踏實。畢竟時間就是這樣不構,而且平常生活比較放鬆,時間顆粒太大了。覺得找不到時間來看書與學習。所以打算給自己一個課題,每天看三十分鐘的書,每天寫15分鐘的部落格。不管是不是有寫到一個段落,或是有足夠長的時間來做。給自己隨時計時,隨時累計,只要累計超過這個時間就可以停止。希望讓自己可以在固定的TimeBox中學習念更多書,或是寫更多部落格內容。 刻意練習 這些觀念跟最近看的一本書有一樣的觀念,而這觀念在很多地方都有,今天中午同事在看的影片也在提。這個影片是邏輯思維的羅胖在講解如何成為高手,他說到學習就是要學習套路,任何人都是學習以前的人歸納的重點,舉例來說,古代的人要顯示自己很有知識都是要背詩經,孔子:不知詩無以言。在科學上也是如此,了解一些定律,根據這些前人累積的套路作為基礎,然後繼續發展。 但學習不僅僅是知道拿前人的經驗作為基底,更重要的事情是要能及時反饋,越快得到反饋越好。如果可以刻意的練習然後修正,這樣的效果是最好的。除了反饋即時性以外,還有要脫離舒適圈。舒適圈就是每個人很熟系的環境,在這個環境不管做什麼都不太需要思考,也因此沒有效果。例如一個計程車司機開車開了十年,或許開車技術上還過得去,但...