// Find the newest node in the DB
$iLastOSMID = $oDB->getOne("select max(osm_id) from place where osm_type = 'N'");
// Lookup the timestamp that node was created
- $sLastNodeURL = 'https://www.openstreetmap.org/api/0.6/node/'.$iLastOSMID."/1";
+ $sLastNodeURL = 'https://www.openstreetmap.org/api/0.6/node/'.$iLastOSMID.'/1';
$sLastNodeXML = file_get_contents($sLastNodeURL);
if ($sLastNodeXML === false) {
$jsonout = json_encode($xVal, $iOptions);
if (!isset($_GET['json_callback'])) {
- header("Content-Type: application/json; charset=UTF-8");
+ header('Content-Type: application/json; charset=UTF-8');
echo $jsonout;
} else {
if (preg_match('/^[$_\p{L}][$_\p{L}\p{Nd}.[\]]*$/u', $_GET['json_callback'])) {
- header("Content-Type: application/javascript; charset=UTF-8");
+ header('Content-Type: application/javascript; charset=UTF-8');
echo $_GET['json_callback'].'('.$jsonout.')';
} else {
header('HTTP/1.0 400 Bad Request');
}
}
}
- echo "<table border=\"1\">";
- echo "<tr><th>rank</th><th>Name Tokens</th><th>Name Not</th>";
- echo "<th>Address Tokens</th><th>Address Not</th><th>country</th><th>operator</th>";
- echo "<th>class</th><th>type</th><th>postcode</th><th>housenumber</th></tr>";
+ echo '<table border="1">';
+ echo '<tr><th>rank</th><th>Name Tokens</th><th>Name Not</th>';
+ echo '<th>Address Tokens</th><th>Address Not</th><th>country</th><th>operator</th>';
+ echo '<th>class</th><th>type</th><th>postcode</th><th>housenumber</th></tr>';
foreach ($aData as $iRank => $aRankedSet) {
foreach ($aRankedSet as $aRow) {
$aRow->dumpAsHtmlTableRow($aWordsIDs);
}
}
- echo "</table>";
+ echo '</table>';
}
{
$sSQL = "select *,get_name_by_language(name,$sLanguagePrefArraySQL) as localname from get_addressdata($iPlaceID, $housenumber)";
if (!$bRaw) $sSQL .= " WHERE isaddress OR type = 'country_code'";
- $sSQL .= " order by rank_address desc,isaddress desc";
+ $sSQL .= ' order by rank_address desc,isaddress desc';
$aAddressLines = chksql($oDB->getAll($sSQL));
if ($bRaw) return $aAddressLines;
//
preg_match_all('/(-?[0-9.]+) (-?[0-9.]+)/', $aMatch[1], $aPolyPoints, PREG_SET_ORDER);
//
- } elseif (preg_match('#MULTIPOLYGON\\(\\(\\(([- 0-9.,]+)#', $geometry_as_text, $aMatch)) {
+/* } elseif (preg_match('#MULTIPOLYGON\\(\\(\\(([- 0-9.,]+)#', $geometry_as_text, $aMatch)) {
//
preg_match_all('/(-?[0-9.]+) (-?[0-9.]+)/', $aMatch[1], $aPolyPoints, PREG_SET_ORDER);
- //
+ */
} elseif (preg_match('#POINT\\((-?[0-9.]+) (-?[0-9.]+)\\)#', $geometry_as_text, $aMatch)) {
//
$aPolyPoints = createPointsAroundCenter($aMatch[1], $aMatch[2], $fRadius);
}
return $aPolyPoints;
}
+
+function closestHouseNumber($aRow)
+{
+ $fHouse = $aRow['startnumber']
+ + ($aRow['endnumber'] - $aRow['startnumber']) * $aRow['fraction'];
+
+ switch ($aRow['interpolationtype']) {
+ case 'odd':
+ $iHn = (int)($fHouse/2) * 2 + 1;
+ break;
+ case 'even':
+ $iHn = (int)(round($fHouse/2)) * 2;
+ break;
+ default:
+ $iHn = (int)(round($fHouse));
+ break;
+ }
+
+ return max(min($aRow['endnumber'], $iHn), $aRow['startnumber']);
+}