- $sSQL .= " ST_X(point) as lon, ST_Y(point) as lat from (select *, ST_LineInterpolatePoint(linegeo, (housenumber-startnumber::float)/(endnumber-startnumber)::float) as point from ";
- $sSQL .= " (select *, ";
- $sSQL .= " CASE WHEN interpolationtype='odd' THEN floor((".$fInterpolFraction."*(endnumber-startnumber)+startnumber)/2)::int*2+1";
- $sSQL .= " WHEN interpolationtype='even' THEN ((".$fInterpolFraction."*(endnumber-startnumber)+startnumber)/2)::int*2";
- $sSQL .= " WHEN interpolationtype='all' THEN (".$fInterpolFraction."*(endnumber-startnumber)+startnumber)::int";
- $sSQL .= " END as housenumber";
- $sSQL .= " from location_property_tiger where place_id = ".$iPlaceID.") as blub1) as blub2";
- } elseif ($bIsInterpolation) {
- $sSQL = "select place_id, partition, 'W' as osm_type, osm_id, 'place' as class, 'house' as type, null admin_level, housenumber, null as street, postcode,";
+ $sSQL .= " ST_X(point) as lon, ST_Y(point) as lat";
+ $sSQL .= " FROM (select *, ST_LineInterpolatePoint(linegeo, (".$oResult->iHouseNumber."-startnumber::float)/(endnumber-startnumber)::float) as point ";
+ $sSQL .= " FROM location_property_tiger where place_id = ".$iPlaceID.") as blub";
+ } elseif ($oResult->iTable == Result::TABLE_OSMLINE) {
+ $sSQL = "select place_id, partition, 'W' as osm_type, osm_id, 'place' as class, 'house' as type, null admin_level,";
+ $sSQL .= $oResult->iHouseNumber.' as housenumber, postcode,';