How can i get the country code from a latitude longitude position?
I know that there are many geocoding services available, but they don't meed my requirement because my application gets blocked a few hours after it goes live (many geocoding requests).
Most geocoding services also offer commercial services, but they are not yet a option because the project is in it starting blocks.
I did a bit of research and think i found a way to do it: Get a shape file (or other data file) that contains the borders of all countries (in polygons). Next just look in which polygon the lat/lng position is. Finally read the meta data from the specific polygon.
Does anyone know where i can get a shape file (or other format) that includes polygons (or just lines) that show the borders of all countries in the world?
Or is there maybe a easier way to solve this problem?
Given the number of countries (polygons) in the world, you may want to subdivide the set of country polygons to do a rough filter first (e.g., if the point is in the western and northern hemispheres, only need to check North American, Central American, and Carribean countries. That may give you a speed improvement.
Also, keep in mind that many countries consist of multiple polygons, just keep that in mind as you code.
I haven't used any of these sources for country boundary data, but checkout: http://geocommons.com/overlays/33578 and http://geospatial.edublogs.org/2010/06/29/world-country-boundary-files/
I assume you want the ISO 3166-1 alpha-2 country code (vs. the FIPS 10=4 which is being phased out by Dec. 2012). There are 248 countries, territories and dependencies listed by ISO. ViennaMike's approach by doing a quick filter to reduce to checking by continent sounds like a good performance approach.
You will want to use the countries shapefile to know which country the lat/lng is within (ie., check if point is within a polygon).
There are a lot of free sources (but may have commerical licensing restrictions). Here's another source from the open source project (openstreetmap)
http://downloads.cloudmade.com/
Andrew, The Team at OpenGeoCode.Org