include_once("GeoCalc.class.php");
include_once("ws_client.php");
include_once("utils.php");
function getStateFromLaln($laln) {
$ret = getWebService("citystate", $laln);
$t = explode(",", $ret);
return $t[1];
}
function getWeatherAlertCountForState($state) {
$weather_alerts = getWeatherEvents($state);
$t = explode("||", $weather_alerts);
$size1 = count($t);
return $size1;
}
function getWeatherAlertsForState($state) {
$weather_alerts = getWeatherEvents($state);
$t = explode("||", $weather_alerts);
return $t;
}
function getWeatherAlertCount($hwy,$state) {
// wrong order on the server
$bbox = getBboxForRoadInState($hwy,$state);
//if($state == "TX")
//echo $bbox."\r\n";
$weather_alerts = getWeatherEvents($state);
$t = explode("||", $weather_alerts);
$t2 = explode(",", $bbox);
$laMax = floatVal($t2[0]);
$lnMin = floatVal($t2[1]);
$laMin = floatVal($t2[2]);
$lnMax = floatVal($t2[3]);
$size1 = count($t);
$alerts_count = 0;
$oGC = new GeoCalc();
for($i=0;$i<$size1;$i++) {
$t1 = explode(";;",$t[$i]);
$fips6 = $t1[5];
// wrong order on the server
$bboxCo = getCountyBbox($fips6);
$laCoMax = floatVal($bboxCo[0]);
$lnCoMin = floatVal($bboxCo[1]);
$laCoMin = floatVal($bboxCo[2]);
$lnCoMax = floatVal($bboxCo[3]);
//if($state == "TX")
//echo "$laCoMax,$lnCoMin,$laCoMin,$lnCoMax\r\n";
if($oGC->isBboxOverlap($laMin,$lnMin,$laMax,$lnMax,$laCoMin,$lnCoMin,$laCoMax,$lnCoMax)) {
$alerts_count++;
}
}
return $alerts_count;
}
function getWeatherAlertsForLaln($la, $ln, $radius) {
if(!isset($radius) || $radius == 0) $radius = 10;
$oGC = new GeoCalc();
$bbox = $oGC->getBbox($la, $ln, $radius);
return getWeatherAlertsForBbox($bbox, "$la,$ln");
}
function getWeatherAlertsForBbox($bbox, $laln) {
$state = getStateFromLaln($laln);
//echo "$state,$bbox,$laln\r\n";
$weather_alerts = getWeatherEvents($state);
//echo $weather_alerts;
$t = explode("||", $weather_alerts);
$oGC = new GeoCalc();
$size1 = count($t);
$bboxWeatherAlerts = "";
for($i=0;$i<$size1;$i++) {
$t1 = explode(";;",$t[$i]);
$fips6 = $t1[5];
$bboxCo = getCountyBbox($fips6);
//print_r($bboxCo) ;
$laCoMax = floatVal($bboxCo[0]);
$lnCoMin = floatVal($bboxCo[1]);
$laCoMin = floatVal($bboxCo[2]);
$lnCoMax = floatVal($bboxCo[3]);
//echo "$laCoMax,$lnCoMin,$laCoMin,$lnCoMax\r\n";
//echo "OKbefore
";
if($oGC->isBboxOverlap($bbox[0],$bbox[1],$bbox[2],$bbox[3],$laCoMin,$lnCoMin,$laCoMax,$lnCoMax)) {
//echo "OKafter
";
//echo $bbox[0] . "," . $bbox[1] . "\r\n";
$laCoMid = ($laCoMax+$laCoMin)/2.0;
$lnCoMid = ($lnCoMax+$lnCoMin)/2.0;
$alerts = $t1[0] . ";;" . $t1[1] . ";;" . $t1[2] . ";;" . $t1[3] . ";;" . $t1[4] . ";;$laCoMid,$lnCoMid";
if(strlen($bboxWeatherAlerts) > 0)
$bboxWeatherAlerts = $bboxWeatherAlerts . "||" . $alerts;
else
$bboxWeatherAlerts = $alerts;
//echo $bbox[0] . "," . $bbox[1] . "\r\n";
}
}
//echo "OK$bboxWeatherAlerts";
return $bboxWeatherAlerts;
}
/*
$la = 34.049482;
$ln=-118.242931;
$radius = 30;
echo getWeatherAlertsForLaln($la, $ln, $radius);
*/
?>
US 31 (MI) weather conditions - Roadnow
US 31 (MI) weather conditions
2026-04-12
Roadnow
US 31 (MI) current weather conditions
- detailSouth Bend weather: Fair and Breezy, 73°F
- detailFennville weather: Fair and Windy, 77°F
- detailWhitehall weather: Light Rain, 66°F
- detailWest Olive weather: Fair and Windy, 77°F
- detailFree Soil weather: Thunderstorm Light Rain Fog/Mist, 59°F
- detailOnekama weather: Thunderstorm Light Rain Fog/Mist, 59°F
- detailHonor weather: Light Rain Fog/Mist, 46°F
- detailAcme weather: Overcast, 64°F
- detailCharlevoix weather: Light Rain, 46°F
- detailAlanson weather: Overcast, 58°F
- detailCarp Lake weather: Light Rain Fog/Mist, 37°F
Other city weather along US 31 (MI)
GoSouth Bend weather forcastsGoBuchanan weather forcastsGoNiles weather forcastsGoBenton Harbor weather forcastsGoSouth Haven weather forcastsGoFennville weather forcastsGoHolland weather forcastsGoGrand Haven weather forcastsGoFerrysburg weather forcastsGoMuskegon weather forcastsGoWhitehall weather forcastsGoNew Era weather forcastsGoPentwater weather forcastsGoRiverside weather forcastsGoZeeland weather forcastsGoWest Olive weather forcastsGoMontague weather forcastsGoLudington weather forcastsGoScottville weather forcastsGoManistee weather forcastsGoFree Soil weather forcastsGoCuster weather forcastsGoFiler City weather forcastsGoEastlake weather forcastsGoBear Lake weather forcastsGoOnekama weather forcastsGoKaleva weather forcastsGoThompsonville weather forcastsGoBenzonia weather forcastsGoBeulah weather forcastsGoHonor weather forcastsGoLake Ann weather forcastsGoInterlochen weather forcastsGoTraverse City weather forcastsGoGrawn weather forcastsGoAcme weather forcastsGoWilliamsburg weather forcastsGoWhitewater weather forcastsGoElk Rapids weather forcastsGoKewadin weather forcastsGoCharlevoix weather forcastsGoEllsworth weather forcastsGoEastport weather forcastsGoPetoskey weather forcastsGoConway weather forcastsGoAlanson weather forcastsGoOden weather forcastsGoHarbor Springs weather forcastsGoBrutus weather forcastsGoPellston weather forcastsGoCarp Lake weather forcastsGoMackinaw City weather forcastsGoLevering weather forcasts