<?php
/***************************************************************************
- * Copyright (C) 2003-2011 Polytechnique.org *
+ * Copyright (C) 2003-2014 Polytechnique.org *
* http://opensource.polytechnique.org/ *
* *
* This program is free software; you can redistribute it and/or modify *
// Maximum number of Geocoding calls to the Google Maps API.
const MAX_GMAPS_RPC_CALLS = 5;
+ static public function buildStaticMapURL($latitude, $longitude, $color, $separator = '&')
+ {
+ if (!$latitude || !$longitude) {
+ return null;
+ }
+
+ $parameters = array(
+ 'size' => '300x100',
+ 'markers' => 'color:' . $color . '|' . $latitude . ',' . $longitude,
+ 'zoom' => '12',
+ 'sensor' => 'false'
+ );
+
+ return Platal::globals()->maps->static_map . '?' . http_build_query($parameters, '', $separator);
+ }
+
public function getGeocodedAddress(Address $address, $defaultLanguage = null, $forceLanguage = false) {
$this->prepareAddress($address);
$textAddress = $this->getTextToGeocode($address->text);
}
// Try to geocode the full address.
+ $address->geocoding_calls = 1;
if (($geocodedData = $this->getPlacemarkForAddress($textAddress, $defaultLanguage))) {
$this->getUpdatedAddress($address, $geocodedData, null, $forceLanguage);
return;
for ($i = max(1, $linesCount - self::MAX_GMAPS_RPC_CALLS + 1); $i < $linesCount; ++$i) {
$extraLines = implode("\n", array_slice($addressLines, 0, $i));
$toGeocode = implode("\n", array_slice($addressLines, $i));
+ ++$address->geocoding_calls;
if (($geocodedData = $this->getPlacemarkForAddress($toGeocode, $defaultLanguage))) {
$this->getUpdatedAddress($address, $geocodedData, $extraLines, $forceLanguage);
return;
}
$textLines = explode("\n", $text);
$countLines = count($textLines);
+ if ($countLines < 2) {
+ return $text;
+ }
$needle = strtoupper(trim($textLines[$countLines - 2]));
$isPseudoCountry = false;
if ($needle) {
}
}
-// vim:set et sw=4 sts=4 sws=4 foldmethod=marker enc=utf-8:
+// vim:set et sw=4 sts=4 sws=4 foldmethod=marker fenc=utf-8:
?>