Fork me on GitHub

Quick start

Yet an other Geocoder ?

Yes but No :) Gisgraphy has a different philosophy : An Address is not a string ! After more than 7 years of doing geocoding, that's the conclusion : An address is not a string ! it is the cardinality of all of the possible names of the different parts : '3355 S Las Vegas Blvd, Las Vegas ' and 'the Venitian, The Strip NV 89109 USA' is the same address but there is no common word between the two addresses Gisgraphy has its own importer and mix the bests open source gazeteers / databases : OpenStreetMap of course, but also GeoNames and Quattroshapes, and it transform them into an address and POI database. it links each house to its street, each street to its city/ZIPcode, and each city to its administrative divisions. All of them are associated to alternate names. Gisgraphy has a different philosophy than the other geocoders. It uses a fulltext engine with an address parser to separate the several parts of the address. Then it is simpler to do geocoding and remove ambiguity : streets that have city names, unit information that can disturb the fulltext search , house numbers that looks like ZIPcodes,... to have better relevance it use the shapes when possible, it avoids putting a street in a city such that it's center is closer than the center of the city it belongs. ...Read more

You want to go a little bit further? First, if you haven't read it yet, please read the short webservices descriptions on the home page or consult the webservice functionalities matrix. It will give you a good overview. Then you will find several sections that will help you to start.

Does Gisgraphy fit my needs ?

It is the first question to answer :) You're lost, you don't know what webservice to use ? Don't panic :) Here is some case studies that will probably help you! All case studies are not for a specific language or framework; you can do them with your favorite framework or language, in Java, PHP, Ruby, Python, in a browser with JSON, or anything else, because XML is readable by almost any language.

Case Studies :

  • You have a list of hotels (or anything else, e.g shops,...) and you want to offer the possibility to get the nearest(s) hotel(s) from a given GPS position :
    • Add your own hotels via the web admin interface (a list of hotels is already included in GeoNames but you can add / edit yours), then simply call the find nearby service with the GPS position (and an optional radius) and specify the placetype to 'hotel'. Note that you can add your own placetype, but the placetypes already available are, most often, enough. (see example)
  • You still have a list of places and want to get the nearest(s) from a given address :
    • Call the geocoder to get the GPS position of the address and then call the find nearby. (see example)
  • A user to enter a ZIPcode and you want to display a drop down menu if there is more than one city corresponding to that zip code :
    • Use the full text engine and restrict the placetype to city and / or citySubdivision. (see example)
  • You are a trip advisor and want to propose some travels for a given destination :
    • Use the fulltext engine to search for city, state, country, lake, mountains, and so on. Many facilities are offered : spell checker, all words required or not, pagination, place type, GPS position, spoken language, or country restriction. A lot of information is available. (see the example)
  • You want to display in real time the name of the street where a given user is (and a list of streets around) :
    • Use the street service to get the nearest streets for a given GPS position.(see example)
  • You have a real estate agency and want to offer a web form with streets auto-completion
    • Use the street service to get a list of streets that contains the given sentence.(see example)
  • You want to parse an address (as string) to extract the useful information and then use it in a specific way
    • Use the address parser service to get individual component parts : house number, street type (bd, street, ..), street name, unit (apt, building, ...), ZIPcode, state, country, city.<(see example)

Webservice functionalities matrix

You're lost between all the webservices ? They seem to all do the same things ? Not at all, they all have their own role. Choosing the right web service for the right use will give you the best performance and user experience. Here is a matrix that will help you to choose the right webservice for the right needs.

Webservice Given What it's for / What it's not
Geocoding An address, city or street
  • Get GPS location, city and street for the given address
  • If you want to search for other places than city, street or address, please use fulltext webservice
Reverse geocoding GPS position
  • Find an address and the distance from a GPS point
  • To the house level, if information available
Street search GPS position and partial street name (optional)
  • Find Streets and the distance around a given GPS , restrict search to streets that contains the given partial name (useful for auto-completion)
  • Equivalent to find nearby webservice with placetype= street, but more specific (you can restrict search to one-way/two-way, street type,...)
  • If you want to search for streets in fulltext mode, please use the fulltext webservice
Address parser A well formed address
  • Divides a single address string into its individual component parts : house number, street type (bd, street, ..), street name, unit (apt, building, ...), ZIPcode, state, country, city, ...
  • If the address is not a normalized address, please use the Geocoding service
Find nearby GPS, a placetype (optional) and a radius (optional)
  • Find places of the given placetype and the distance to the given GPS point for the given radius
Fulltext A user given string, a GPS point (optional), one or more placetypes (optional)
  • important : This webservice searches for places (a street or a city or a state or a placetype) while geocoding service specializes in addresses (a combination of house street city, state)
  • Find plenty of information for a place of the given placetypes
  • Autocompletion auto suggestions
  • (optional), in several languages, in fulltext mode, restrict search around the given point (optional)
  • You can set 'allwordsrequired' option to false if you want a more permissive search, or find a place in a sentence

Try

Want to try it before installing? Find some examples of URLs on the free access.
Want to have some examples on how to use the services? go to the demo site

Premium

Don't want to install it by yourself or want hosted web service? We have hosted solutions! Go to the premium page

Download

Downloads ? yes! but what ? If you want to download Gisgraphy, go to the download page
If you want to download OpenStreetMap data in CSV, go to the download data page. If you are interested in download dumps (SolR/Lucene dump for fulltext engine and PostgreSQL SQL dump) go to the dump page if you want to download the source code, go to the source repository page.

Install

Consult the installation guide. It can be found online or in the 'doc' repository of the Gisgraphy distribution.

Learn

Go to the documentation page

Develop

All you need is in the developer zone. Consult the developer guide