$lat) { foreach ($lat as $lo => $lon) { $tooltip = ""; $num_up = safe_count($lon["up_hosts"]); $num_down = safe_count($lon["down_hosts"]); $total_hosts = $num_up + $num_down; $tooltip = '

Up ' . $num_up . ' Down ' . $num_down . '

'; $state = 'unknown'; $location_name = ""; if ($num_down > 0) { $state = 'down'; $location_name = ($lon['down_hosts'][0]['location'] === '' ? OBS_VAR_UNSET : $lon['down_hosts'][0]['location']); $location_url = generate_location_url($lon['down_hosts'][0]['location']); } elseif ($num_up > 0) { $state = 'up'; $location_name = ($lon['up_hosts'][0]['location'] === '' ? OBS_VAR_UNSET : $lon['up_hosts'][0]['location']); $location_url = generate_location_url($lon['up_hosts'][0]['location']); } $tooltip = "

" . $location_name . "


" . $tooltip; foreach ($lon["down_hosts"] as $down_host) { $tooltip .= '' . escape_html($down_host['hostname']) . ' '; } $feature = ['geometry' => ['type' => 'Point', 'coordinates' => [(float)$lo, (float)$la]], 'type' => 'Feature', 'properties' => ['name' => $location_name, 'state' => $state, 'id' => safename($location_name), //'popupContent' => $tooltip, 'url' => $location_url]]; $features[] = $feature; //echo "[$la, $lo, $num_up, $num_down, \"$tooltip\", '$location_name', '$location_url'],\n "; } } $geo = ['type' => 'FeatureCollection', 'features' => $features]; header('Content-type: application/javascript'); //echo 'var geojson = ' . json_encode($geo) . ';'; //print_r($features); echo safe_json_encode($geo); //r($geo); // EOF