jenkins-bot has submitted this change and it was merged.

Change subject: Added geocoder.us geocoding service
......................................................................


Added geocoder.us geocoding service

Change-Id: I22926c7b66046146e5723e583b0698ea4059f750
---
M Maps.classes.php
M Maps.php
M Maps_Settings.php
A includes/geocoders/Maps_GeocoderusGeocoder.php
4 files changed, 67 insertions(+), 0 deletions(-)

Approvals:
  Jeroen De Dauw: Looks good to me, approved
  jenkins-bot: Verified



diff --git a/Maps.classes.php b/Maps.classes.php
index 248e640..1ddb325 100644
--- a/Maps.classes.php
+++ b/Maps.classes.php
@@ -49,6 +49,7 @@
 
 $classes['MapsGeonamesGeocoder']               = __DIR__ . 
'/includes/geocoders/Maps_GeonamesGeocoder.php';
 $classes['MapsGoogleGeocoder']                         = __DIR__ . 
'/includes/geocoders/Maps_GoogleGeocoder.php';
+$classes['MapsGeocoderusGeocoder']                     = __DIR__ . 
'/includes/geocoders/Maps_GeocoderusGeocoder.php';
 
 $classes['SpecialMapEditor']                   = __DIR__ . 
'/includes/specials/SpecialMapEditor.php';
 
diff --git a/Maps.php b/Maps.php
index 1c48a53..f596d3d 100644
--- a/Maps.php
+++ b/Maps.php
@@ -210,6 +210,9 @@
        // Registration of the Google Geocoding (v2) service geocoder.
        $wgHooks['GeocoderFirstCallInit'][] = 'MapsGoogleGeocoder::register';
 
+       // Registration of the geocoder.us service geocoder.
+       $wgHooks['GeocoderFirstCallInit'][] = 
'MapsGeocoderusGeocoder::register';
+
        // Layers
 
        // Registration of the image layer type.
diff --git a/Maps_Settings.php b/Maps_Settings.php
index 3543ff8..bc69a91 100644
--- a/Maps_Settings.php
+++ b/Maps_Settings.php
@@ -62,6 +62,7 @@
        $egMapsAvailableGeoServices = array(
                'geonames',
                'google',
+               'geocoderus',
        );
 
        // String. The default geocoding service, which will be used when no 
service is
diff --git a/includes/geocoders/Maps_GeocoderusGeocoder.php 
b/includes/geocoders/Maps_GeocoderusGeocoder.php
new file mode 100644
index 0000000..4469cb1
--- /dev/null
+++ b/includes/geocoders/Maps_GeocoderusGeocoder.php
@@ -0,0 +1,62 @@
+<?php
+
+/**
+ * Class for geocoding requests with geocoder.us Service.
+ *
+ *
+ * @file Maps_GeocoderusGeocoder.php
+ * @ingroup Maps
+ * @ingroup Geocoders
+ *
+ * @licence GNU GPL v2+
+ */
+final class MapsGeocoderusGeocoder extends \Maps\Geocoder {
+
+       /**
+        * Registers the geocoder.
+        * 
+        * No LSB in pre-5.3 PHP *sigh*.
+        * This is to be refactored as soon as php >=5.3 becomes acceptable.
+        * 
+        * @since 3.0
+        */
+       public static function register() {
+               \Maps\Geocoders::registerGeocoder( 'geocoderus', __CLASS__ );
+               return true;
+       }
+
+       /**
+        * @see \Maps\Geocoder::getRequestUrl
+        * 
+        * @since 3.0
+        * 
+        * @param string $address
+        * 
+        * @return string
+        */
+       protected function getRequestUrl( $address ) {
+               return 'http://geocoder.us/service/rest/?address=' . urlencode( 
$address );
+       }
+
+       /**
+        * @see \Maps\Geocoder::parseResponse
+        * 
+        * @since 3.0
+        * 
+        * @param string $address
+        * 
+        * @return array
+        */
+       protected function parseResponse( $response ) {
+               $lon = self::getXmlElementValue( $response, 'geo:long' );
+               $lat = self::getXmlElementValue( $response, 'geo:lat' );
+
+               // In case one of the values is not found, return false.
+               if ( !$lon || !$lat ) return false;
+
+               return array(
+                       'lat' => (float)$lat,
+                       'lon' => (float)$lon
+               );
+       }
+}

-- 
To view, visit https://gerrit.wikimedia.org/r/92250
To unsubscribe, visit https://gerrit.wikimedia.org/r/settings

Gerrit-MessageType: merged
Gerrit-Change-Id: I22926c7b66046146e5723e583b0698ea4059f750
Gerrit-PatchSet: 2
Gerrit-Project: mediawiki/extensions/Maps
Gerrit-Branch: master
Gerrit-Owner: tosfos <[email protected]>
Gerrit-Reviewer: Jeroen De Dauw <[email protected]>
Gerrit-Reviewer: jenkins-bot
Gerrit-Reviewer: tosfos <[email protected]>

_______________________________________________
MediaWiki-commits mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-commits

Reply via email to