<?xml version="1.0"?>
<rss version="2.0">
  <channel>
    <title>PHPDeveloper.org</title>
    <link>http://www.phpdeveloper.org</link>
    <description>Up-to-the Minute PHP News, views and community</description>
    <language>en-us</language>
    <pubDate>Fri, 24 May 2013 17:17:36 -0500</pubDate>
    <ttl>30</ttl>
    <item>
      <title><![CDATA[Etsy Code as Craft: There and Back Again: Migrating Geolocation Data to GeoNames]]></title>
      <guid>http://www.phpdeveloper.org/news/19392</guid>
      <link>http://www.phpdeveloper.org/news/19392</link>
      <description><![CDATA[<p>
On the Etsy "Code as Craft" blog there's <a href="http://codeascraft.etsy.com/2013/03/26/there-and-back-again-migrating-geolocation-data-to-geonames/">a recent post</a> about their move to using the <a href="http://geonames.org/">GeoNames</a> service internally rather than the external, third-party API previously in use.
</p>
<blockquote>
People are passionate about where they live. At Etsy we need to keep track of lots of different locations, such as buyers' billing and shipping addresses and sellers' shop locations. As Etsy continues to expand internationally we wanted to provide better localization and translations for our location place names. We determined that the best way to effect this change was to move from using a closed location API provider to internal services backed by the open <a href="http://geonames.org/">GeoNames</a> data set.
</blockquote>
<p>
<a href="http://codeascraft.etsy.com/2013/03/26/there-and-back-again-migrating-geolocation-data-to-geonames/">The post</a> details some of the steps in the process including the mapping of the current data to the new structure (the script is <a href="https://github.com/etsy/geonames">available on github</a>). They talk about how they mapped their old data over (trial and error sometimes) and the creation of a database of "GeoNameIDs" for each customer in their records. They've also implemented a <a href="http://lucenerevolution.org/">Lucene/Solr</a> search for improved searching and auto-suggestion based on the user's location.
</p>]]></description>
      <pubDate>Mon, 01 Apr 2013 11:48:36 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[PHPMaster.com: Targeted Geolocation with Geonames]]></title>
      <guid>http://www.phpdeveloper.org/news/17251</guid>
      <link>http://www.phpdeveloper.org/news/17251</link>
      <description><![CDATA[<p>
New on PHPMaster.com there's a tutorial from <i>Lukas White</i> about <a href="http://phpmaster.com/targeted-geolocation-with-geonames/">targeting users using geolocation</a> based on the <a href="http://www.geonames.org/">Geonames</a> web service and a latitude/longitude. His example makes a call to find the closest "place" to the given coordinates.
</p>
<blockquote>
Location-aware applications rely on being able to locate where you are, and this is what geolocation is all about. After all, once the application knows your location, it can go on to find the nearest store, guide you through the appropriate route to a destination, or target relevant advertisements to you. Geolocation, then, is simply the mechanism for identifying your geographical location.
</blockquote>
<p>
He mentions two challenges associated with geolocation - finding where someone is and describing the location. With Geonames, he shows how to call the service's "findNearbyPlaceName" method to find the closest "place" to a given latitude/longitude combination. Included is a bit of sample PHP to connect to the service and Javascript to request the user's current location.
</p>]]></description>
      <pubDate>Tue, 13 Dec 2011 12:10:02 -0600</pubDate>
    </item>
    <item>
      <title><![CDATA[Sameer Borate's Blog: Geographical information lookup using GeoNames]]></title>
      <guid>http://www.phpdeveloper.org/news/14368</guid>
      <link>http://www.phpdeveloper.org/news/14368</link>
      <description><![CDATA[<p>
New on his blog today <i>Sameer Borate</i> has posted a new tutorial about <a href="http://www.codediesel.com/data/geographical-information-lookup-using-geonames">using the GeoNames web service</a> to look up geographical information about your visitors (and help with targeting the experience just for them).
</p>
<blockquote>
Geographical information integration is rapidly becoming an integral part of many websites. People use geographic data for a wide variety of applications. From location based content targeting, censoring information by geographic areas to analyzing website traffic by region. It is surprising how much free geographic information is available on the web. <a href="http://www.geonames.org/">GeoNames</a> is one such service.
</blockquote>
<p>
The database is released under a Creative Commons license, so it's available to all and getting the libraries installed to use it is a single "pear install" command away. He includes code showing how to make a sample search for cities, countries and "neighbors" as well as just performing a generic search off the data. He also throws in a method for accessing the information via jQuery (an ajax call)
</p>]]></description>
      <pubDate>Mon, 19 Apr 2010 08:25:01 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Vancouver Web Consultants Blog: Getting Time Zone from Latitude & Longitude]]></title>
      <guid>http://www.phpdeveloper.org/news/12483</guid>
      <link>http://www.phpdeveloper.org/news/12483</link>
      <description><![CDATA[<p>
On the Vancouver Web Consultants blog there's <a href="http://vancouverwebconsultants.com/getting-time-zone-from-latitude-longitude/">this new tutorial</a> about grabbing latitude and longitude information for a location and determining its current time zone from there.
</p>
<blockquote>
I was recently tasked with building an application that relied heavily on accurate time zone conversions. I, like many people I soon found out, thought there were just a handful of timezones and the usual select list would suffice. The deeper I looked into the problem, the deeper it got: the list above only shows a few time offsets from UTC, but it doesn't tell me, beyond a shadow of a doubt, exactly what time it is where the user is situated, nor can I rely on that time for calculations in the future. The fact is, here are a LOT of timezones in the world.
</blockquote>
<p>
He came across the <a href="http://us2.php.net/datetimezone">DateTimeZone class</a> PHP has to offer and was happy to see it met his needs. Unfortunately, users weren't always sure what timezone they were in, so he came up with a system combining <a href="http://code.google.com/apis/maps/">Google's Maps API</a> and <a href="http://www.geonames.org/export/web-services.html">GeoNames.org</a>. He includes the code for both the PHP and Javascript sides (the Javascript requires Mootools, but it could be easily adapted to any other Javascript libraries).
</p>]]></description>
      <pubDate>Fri, 08 May 2009 11:15:30 -0500</pubDate>
    </item>
    <item>
      <title><![CDATA[Hasin Hayder's Blog: WorldTimeEngine - How about making your own in PHP?]]></title>
      <guid>http://www.phpdeveloper.org/news/9767</guid>
      <link>http://www.phpdeveloper.org/news/9767</link>
      <description><![CDATA[<p>
<i>Hasin Hayder</i> has <a href="http://hasin.wordpress.com/2008/03/01/worldtimeengine-how-about-making-your-own-in-php/">posted an example</a> of a "world time search" he's worked up that uses the geonames.org and Yahoo! developer APIs to pin down the time at any given location.
</p>
<blockquote>
I recently came by this site <a href="http://worldtimeengine.com/">WorldTimeEngine</a> where users can search the local time of any place using the name, street address or just latitude and longitude. Since that time I was thinking how easily you can make your own. As long there are some good people over there (For Geocoding API) - its a not a big deal, you know?
</blockquote>
<p>
His script pulls the location of the place (latitude/longitude) from the Yahoo! geocoding API and passes that back into the geonames web service to get the local time. The result is an array with the lat/long, address you submitted and the time output in a standard string.
</p>]]></description>
      <pubDate>Mon, 10 Mar 2008 11:17:00 -0500</pubDate>
    </item>
  </channel>
</rss>
