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-03
Roadnow
US 31 (MI) current weather conditions
- detailSouth Bend weather: Fair and Breezy, 66°F
- detailFennville weather: Thunderstorm in Vicinity Light Rain, 61°F
- detailWhitehall weather: Overcast and Breezy, 59°F
- detailWest Olive weather: Thunderstorm in Vicinity Light Rain, 61°F
- detailFree Soil weather: Overcast, 55°F
- detailOnekama weather: Overcast, 55°F
- detailHonor weather: Mostly Cloudy, 44°F
- detailAcme weather: Rain Fog/Mist, 47°F
- detailCharlevoix weather: Light Rain, 39°F
- detailAlanson weather: Light Snow, 34°F
- detailCarp Lake weather: Light Drizzle Fog/Mist, 32°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