|
@@ -27,87 +27,60 @@ class StatsController extends Controller
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
- * @Route("/admin/stats/olt/stats/graph", name="stats_graph")
|
|
|
|
- *
|
|
|
|
- * @return string
|
|
|
|
|
|
+ * Check value of geoserver_service parameter in parameters.yml
|
|
*/
|
|
*/
|
|
- public function getStatsGraphAction(Request $request)
|
|
|
|
|
|
+ private function checkGeoserverService()
|
|
{
|
|
{
|
|
- $grafana_url = $this->getParameter('grafana_url');
|
|
|
|
-
|
|
|
|
- // Puertos pon
|
|
|
|
- $pons = array();
|
|
|
|
- for ($x = 1; $x <= 8; $x++) {
|
|
|
|
- for ($y = 1; $y <= 8; $y++) {
|
|
|
|
- $index = "{$x}.{$y}";
|
|
|
|
- $pons[$index] = "PON PORT $index";
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- for ($x = 11; $x <= 18; $x++) {
|
|
|
|
- for ($y = 1; $y <= 8; $y++) {
|
|
|
|
- $index = "{$x}.{$y}";
|
|
|
|
- $pons[$index] = "PON PORT {$index}";
|
|
|
|
- }
|
|
|
|
|
|
+ if($this->getParameter('geoserver_service')) {
|
|
|
|
+ return true;
|
|
}
|
|
}
|
|
-
|
|
|
|
- $panelIds = array(6, 4, 5, 1, 2, 3,);
|
|
|
|
-
|
|
|
|
- $pon = '1.1';
|
|
|
|
- if ($request->isMethod('POST')) {
|
|
|
|
- $pon = $request->request->get('pon', $pon);
|
|
|
|
- }
|
|
|
|
- $urls = array('olt-total-rate?orgId=1&panelId=1',);
|
|
|
|
- foreach ($panelIds as $panelId) {
|
|
|
|
- $urls[] = "olt-pon-ports?orgId=1&panelId={$panelId}&var-ponport={$pon}";
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- if ($request->isMethod('GET')) {
|
|
|
|
- return $this->render('StatsBundle:Stats:graph.html.twig', array(
|
|
|
|
- 'grafana_url' => $grafana_url,
|
|
|
|
- 'urls' => $urls,
|
|
|
|
- 'pons' => $pons,
|
|
|
|
- ));
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- return new JsonResponse(array(
|
|
|
|
- 'urls' => $urls,
|
|
|
|
- ));
|
|
|
|
|
|
+
|
|
|
|
+ $this->flashMsg('msg_no_enable_geoserver_service');
|
|
|
|
+ return false;
|
|
|
|
+
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+
|
|
/**
|
|
/**
|
|
- * @Route("/admin/stats/onu/stats/graph", name="onu_stats_graph")
|
|
|
|
- *
|
|
|
|
- * @return string
|
|
|
|
|
|
+ * Create simple flash message
|
|
*/
|
|
*/
|
|
- public function getONUStatsGraphAction(Request $request)
|
|
|
|
|
|
+ private function flashMsg($msg = 'msg', $type = 'error', $bundle = 'StatsBundle')
|
|
{
|
|
{
|
|
- $grafana_url = $this->getParameter('grafana_url');
|
|
|
|
|
|
+ $translator = $this->get('translator');
|
|
|
|
+ $flashbag = $this->get('session')->getFlashBag();
|
|
|
|
+ $flashbag->add($type, $translator->trans($msg, array(), $bundle));
|
|
|
|
+ }
|
|
|
|
|
|
- $onus = $this->get('webservice')->getData('onu', array(
|
|
|
|
- 'id' => $request->get('id')
|
|
|
|
- ));
|
|
|
|
|
|
+ /**
|
|
|
|
+ * Set default lat-lng-zoom
|
|
|
|
+ */
|
|
|
|
+ private function setDefaultMap()
|
|
|
|
+ {
|
|
|
|
+ $zoom = $this->getParameter('geoserver_default_zoom') ?? null;
|
|
|
|
+ $lat = $this->getParameter('geoserver_default_lat') ?? null;
|
|
|
|
+ $lng = $this->getParameter('geoserver_default_lng') ?? null;
|
|
|
|
|
|
- $urls = array();
|
|
|
|
- $serialNumber = 'fhtt000753b0';
|
|
|
|
- if (isset($onus[0]) && isset($onus[0]['ponSerialNumber'])) {
|
|
|
|
- $serialNumber = $onus[0]['ponSerialNumber'];
|
|
|
|
- }
|
|
|
|
- $panelIds = array(1, 2, 3, 4, 5);
|
|
|
|
- foreach ($panelIds as $panelId) {
|
|
|
|
- $urls[] = "onu?orgId=1&var-serialnumber={$serialNumber}&panelId={$panelId}";
|
|
|
|
- }
|
|
|
|
|
|
+ return array('zoom' => $zoom, 'lat' => $lat, 'lng' => $lng);
|
|
|
|
+ }
|
|
|
|
|
|
- if ($request->isMethod('GET')) {
|
|
|
|
- return $this->render('StatsBundle:Stats:onu_graph.html.twig', array(
|
|
|
|
- 'grafana_url' => $grafana_url,
|
|
|
|
- 'urls' => $urls,
|
|
|
|
- 'serial_number' => $serialNumber,
|
|
|
|
- ));
|
|
|
|
|
|
+ /**
|
|
|
|
+ * Set layer lat-lng-zoom
|
|
|
|
+ */
|
|
|
|
+ private function setLatLngZoom($srs)
|
|
|
|
+ {
|
|
|
|
+ $lng = $srs['minx'] + ($srs['maxx'] - $srs['minx']) / 2;
|
|
|
|
+ $lat = $srs['miny'] + ($srs['maxy'] - $srs['miny']) / 2;
|
|
|
|
+
|
|
|
|
+ $lngDiff = $srs['maxx'] - $srs['minx'];
|
|
|
|
+ $latDiff = $srs['maxy'] - $srs['miny'];
|
|
|
|
+ $maxDiff = ($lngDiff > $latDiff) ? $lngDiff : $latDiff;
|
|
|
|
+ if ($maxDiff < 360 / pow(2, 20)) {
|
|
|
|
+ $zoom = 21;
|
|
|
|
+ } else {
|
|
|
|
+ $zoom = (-1*( (log($maxDiff)/log(2)) - (log(360)/log(2)))) + 1;
|
|
|
|
+ if ($zoom < 1) $zoom = 1;
|
|
}
|
|
}
|
|
|
|
|
|
- return new JsonResponse(array(
|
|
|
|
- 'urls' => $urls,
|
|
|
|
- ));
|
|
|
|
|
|
+ return array('zoom' => $zoom, 'lat' => $lat, 'lng' => $lng);
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -118,58 +91,36 @@ class StatsController extends Controller
|
|
public function showMapAction(Request $request)
|
|
public function showMapAction(Request $request)
|
|
{
|
|
{
|
|
|
|
|
|
- $map = array();
|
|
|
|
- $map['zoom'] = 12;
|
|
|
|
- $map['lng'] = -60.065884467624294;
|
|
|
|
- $map['lat'] = -33.902661208376706;
|
|
|
|
|
|
+ if(!$this->checkGeoserverService())
|
|
|
|
+ return $this->redirect($this->generateUrl('admin_stats_onu_list'));
|
|
|
|
+
|
|
|
|
+ $map = $this->setDefaultMap();
|
|
|
|
|
|
- $em = $this->get('doctrine')->getManager();
|
|
|
|
$adminPool = $this->get('sonata.admin.pool');
|
|
$adminPool = $this->get('sonata.admin.pool');
|
|
-
|
|
|
|
$api = $this->get('geoserver.api');
|
|
$api = $this->get('geoserver.api');
|
|
- $tenancyId = $this->get("base_tenancy.tenancy_service")->getTenancyIdCurrent();
|
|
|
|
- $deviceServerId = $this->getParameter('device_server_base');
|
|
|
|
$gsHost = $this->getParameter('geoserver_host');
|
|
$gsHost = $this->getParameter('geoserver_host');
|
|
$gsPort = $this->getParameter('geoserver_port');
|
|
$gsPort = $this->getParameter('geoserver_port');
|
|
|
|
+ $deviceServerId = $this->getParameter('device_server_base');
|
|
|
|
+ $tenancyId = $this->get("base_tenancy.tenancy_service")->getTenancyIdCurrent();
|
|
|
|
+
|
|
$workspace = "deviceServer_{$deviceServerId}";
|
|
$workspace = "deviceServer_{$deviceServerId}";
|
|
$layer = "onu_stats_tenancy_{$tenancyId}";
|
|
$layer = "onu_stats_tenancy_{$tenancyId}";
|
|
|
|
|
|
$data = $api->getLayerData($workspace, $layer);
|
|
$data = $api->getLayerData($workspace, $layer);
|
|
- $setLatLng = $setZoom = false;
|
|
|
|
|
|
+ $srs = false;
|
|
|
|
|
|
- if(!empty($data)) {
|
|
|
|
|
|
+ if(!empty($data) && is_array($data)) {
|
|
if(isset($data['featureType']['latLonBoundingBox'])) {
|
|
if(isset($data['featureType']['latLonBoundingBox'])) {
|
|
- $setLatLng = $setZoom = true;
|
|
|
|
$srs = $data['featureType']['latLonBoundingBox'];
|
|
$srs = $data['featureType']['latLonBoundingBox'];
|
|
} elseif(isset($data['featureType']['nativeBoundingBox'])) {
|
|
} elseif(isset($data['featureType']['nativeBoundingBox'])) {
|
|
- $setLatLng = $setZoom = true;
|
|
|
|
$srs = $data['featureType']['nativeBoundingBox'];
|
|
$srs = $data['featureType']['nativeBoundingBox'];
|
|
}
|
|
}
|
|
} else {
|
|
} else {
|
|
- $translator = $this->get('translator');
|
|
|
|
- $flashbag = $this->get('session')->getFlashBag();
|
|
|
|
- $flashbag->add("error", $translator->trans("msg_no_exist_map",array(),"StatsBundle"));
|
|
|
|
|
|
+ $this->flashMsg('msg_no_exist_map');
|
|
return $this->redirect($this->generateUrl('admin_stats_onu_list'));
|
|
return $this->redirect($this->generateUrl('admin_stats_onu_list'));
|
|
}
|
|
}
|
|
|
|
|
|
- if($setLatLng) {
|
|
|
|
- $lng = $srs['minx'] + ($srs['maxx'] - $srs['minx']) / 2;
|
|
|
|
- $lat = $srs['miny'] + ($srs['maxy'] - $srs['miny']) / 2;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- if($setZoom) {
|
|
|
|
- $lngDiff = $srs['maxx'] - $srs['minx'];
|
|
|
|
- $latDiff = $srs['maxy'] - $srs['miny'];
|
|
|
|
- $maxDiff = ($lngDiff > $latDiff) ? $lngDiff : $latDiff;
|
|
|
|
- if ($maxDiff < 360 / pow(2, 20)) {
|
|
|
|
- $zoom = 21;
|
|
|
|
- } else {
|
|
|
|
- $zoom = (-1*( (log($maxDiff)/log(2)) - (log(360)/log(2)))) + 1;
|
|
|
|
- if ($zoom < 1) $zoom = 1;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- $map = array('lat' => $lat, 'lng' => $lng, 'zoom' => $zoom);
|
|
|
|
|
|
+ if(is_array($srs)) $map = $this->setLatLngZoom($srs);
|
|
|
|
|
|
return $this->render('StatsBundle:Stats:onu_map.html.twig', array(
|
|
return $this->render('StatsBundle:Stats:onu_map.html.twig', array(
|
|
'base_template' => $adminPool->getTemplate('layout'),
|
|
'base_template' => $adminPool->getTemplate('layout'),
|
|
@@ -183,6 +134,69 @@ class StatsController extends Controller
|
|
));
|
|
));
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * @Route("/admin/stats/ponport/stats/map", name="ponport_stats_map")
|
|
|
|
+ *
|
|
|
|
+ * @return string
|
|
|
|
+ */
|
|
|
|
+ public function showPonPortMapAction(Request $request)
|
|
|
|
+ {
|
|
|
|
+
|
|
|
|
+ if(!$this->checkGeoserverService())
|
|
|
|
+ return $this->redirect($this->generateUrl('admin_stats_ponport_list'));
|
|
|
|
+
|
|
|
|
+ $map = $this->setDefaultMap();
|
|
|
|
+
|
|
|
|
+ $ponPortId = $request->get('id');
|
|
|
|
+
|
|
|
|
+ $em = $this->get('doctrine')->getManager();
|
|
|
|
+ $adminPool = $this->get('sonata.admin.pool');
|
|
|
|
+ $api = $this->get('geoserver.api');
|
|
|
|
+ $gsHost = $this->getParameter('geoserver_host');
|
|
|
|
+ $gsPort = $this->getParameter('geoserver_port');
|
|
|
|
+
|
|
|
|
+ $ponPort = $em->getRepository("StatsBundle:PonPort")->findOneById($ponPortId);
|
|
|
|
+ $oltDeviceId = $ponPort->getOltDeviceId();
|
|
|
|
+ $deviceServerId = $ponPort->getDeviceServer()->getId();
|
|
|
|
+ $tenancyId = $ponPort->getTenancyId();
|
|
|
|
+
|
|
|
|
+ $data = explode("/", $ponPort->getPonPort());
|
|
|
|
+ $card = $data[0];
|
|
|
|
+ $slot = $data[1];
|
|
|
|
+
|
|
|
|
+ $workspace = "deviceServer_{$deviceServerId}";
|
|
|
|
+ $layer = "ponport_stats_t_{$tenancyId}_o_{$oltDeviceId}_s_{$deviceServerId}_c_{$card}_s_{$slot}";
|
|
|
|
+
|
|
|
|
+ $data = $api->getLayerData($workspace, $layer);
|
|
|
|
+
|
|
|
|
+ $srs = false;
|
|
|
|
+
|
|
|
|
+ if(!empty($data) && is_array($data)) {
|
|
|
|
+ if(isset($data['featureType']['latLonBoundingBox'])) {
|
|
|
|
+ $srs = $data['featureType']['latLonBoundingBox'];
|
|
|
|
+ } elseif(isset($data['featureType']['nativeBoundingBox'])) {
|
|
|
|
+ $srs = $data['featureType']['nativeBoundingBox'];
|
|
|
|
+ }
|
|
|
|
+ } else {
|
|
|
|
+ $this->flashMsg('msg_no_exist_map');
|
|
|
|
+ return $this->redirect($this->generateUrl('admin_stats_ponport_list'));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if(is_array($srs)) $map = $this->setLatLngZoom($srs);
|
|
|
|
+
|
|
|
|
+ return $this->render('StatsBundle:Stats:ponport_map.html.twig', array(
|
|
|
|
+ 'base_template' => $adminPool->getTemplate('layout'),
|
|
|
|
+ 'admin_pool' => $adminPool,
|
|
|
|
+ 'admin' => $adminPool->getAdminByClass("StatsBundle\Entity\PonPort"),
|
|
|
|
+ 'map' => $map,
|
|
|
|
+ 'layer' => $layer,
|
|
|
|
+ 'ponPort' => $ponPort,
|
|
|
|
+ 'ws' => $workspace,
|
|
|
|
+ 'gsHost'=> $gsHost,
|
|
|
|
+ 'gsPort'=> $gsPort
|
|
|
|
+ ));
|
|
|
|
+ }
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* @Route("/admin/stats/onu/stats/api_feature_json", name="api_feature_json")
|
|
* @Route("/admin/stats/onu/stats/api_feature_json", name="api_feature_json")
|
|
*
|
|
*
|
|
@@ -249,6 +263,90 @@ class StatsController extends Controller
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * @Route("/admin/stats/olt/stats/graph", name="stats_graph")
|
|
|
|
+ *
|
|
|
|
+ * @return string
|
|
|
|
+ */
|
|
|
|
+ public function getStatsGraphAction(Request $request)
|
|
|
|
+ {
|
|
|
|
+ $grafana_url = $this->getParameter('grafana_url');
|
|
|
|
+
|
|
|
|
+ // Puertos pon
|
|
|
|
+ $pons = array();
|
|
|
|
+ for ($x = 1; $x <= 8; $x++) {
|
|
|
|
+ for ($y = 1; $y <= 8; $y++) {
|
|
|
|
+ $index = "{$x}.{$y}";
|
|
|
|
+ $pons[$index] = "PON PORT $index";
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ for ($x = 11; $x <= 18; $x++) {
|
|
|
|
+ for ($y = 1; $y <= 8; $y++) {
|
|
|
|
+ $index = "{$x}.{$y}";
|
|
|
|
+ $pons[$index] = "PON PORT {$index}";
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ $panelIds = array(6, 4, 5, 1, 2, 3,);
|
|
|
|
+
|
|
|
|
+ $pon = '1.1';
|
|
|
|
+ if ($request->isMethod('POST')) {
|
|
|
|
+ $pon = $request->request->get('pon', $pon);
|
|
|
|
+ }
|
|
|
|
+ $urls = array('olt-total-rate?orgId=1&panelId=1',);
|
|
|
|
+ foreach ($panelIds as $panelId) {
|
|
|
|
+ $urls[] = "olt-pon-ports?orgId=1&panelId={$panelId}&var-ponport={$pon}";
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if ($request->isMethod('GET')) {
|
|
|
|
+ return $this->render('StatsBundle:Stats:graph.html.twig', array(
|
|
|
|
+ 'grafana_url' => $grafana_url,
|
|
|
|
+ 'urls' => $urls,
|
|
|
|
+ 'pons' => $pons,
|
|
|
|
+ ));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return new JsonResponse(array(
|
|
|
|
+ 'urls' => $urls,
|
|
|
|
+ ));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ /**
|
|
|
|
+ * @Route("/admin/stats/onu/stats/graph", name="onu_stats_graph")
|
|
|
|
+ *
|
|
|
|
+ * @return string
|
|
|
|
+ */
|
|
|
|
+ public function getONUStatsGraphAction(Request $request)
|
|
|
|
+ {
|
|
|
|
+ $grafana_url = $this->getParameter('grafana_url');
|
|
|
|
+
|
|
|
|
+ $onus = $this->get('webservice')->getData('onu', array(
|
|
|
|
+ 'id' => $request->get('id')
|
|
|
|
+ ));
|
|
|
|
+
|
|
|
|
+ $urls = array();
|
|
|
|
+ $serialNumber = 'fhtt000753b0';
|
|
|
|
+ if (isset($onus[0]) && isset($onus[0]['ponSerialNumber'])) {
|
|
|
|
+ $serialNumber = $onus[0]['ponSerialNumber'];
|
|
|
|
+ }
|
|
|
|
+ $panelIds = array(1, 2, 3, 4, 5);
|
|
|
|
+ foreach ($panelIds as $panelId) {
|
|
|
|
+ $urls[] = "onu?orgId=1&var-serialnumber={$serialNumber}&panelId={$panelId}";
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if ($request->isMethod('GET')) {
|
|
|
|
+ return $this->render('StatsBundle:Stats:onu_graph.html.twig', array(
|
|
|
|
+ 'grafana_url' => $grafana_url,
|
|
|
|
+ 'urls' => $urls,
|
|
|
|
+ 'serial_number' => $serialNumber,
|
|
|
|
+ ));
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return new JsonResponse(array(
|
|
|
|
+ 'urls' => $urls,
|
|
|
|
+ ));
|
|
|
|
+ }
|
|
|
|
+
|
|
/**
|
|
/**
|
|
* @Route("/admin/stats/onu/grafana", name="grafana_onu")
|
|
* @Route("/admin/stats/onu/grafana", name="grafana_onu")
|
|
*
|
|
*
|
|
@@ -323,88 +421,7 @@ class StatsController extends Controller
|
|
));
|
|
));
|
|
}
|
|
}
|
|
|
|
|
|
- /**
|
|
|
|
- * @Route("/admin/stats/ponport/stats/map", name="ponport_stats_map")
|
|
|
|
- *
|
|
|
|
- * @return string
|
|
|
|
- */
|
|
|
|
- public function showPonPortMapAction(Request $request)
|
|
|
|
- {
|
|
|
|
-
|
|
|
|
- $map = array();
|
|
|
|
- $map['zoom'] = 12;
|
|
|
|
- $map['lng'] = -60.065884467624294;
|
|
|
|
- $map['lat'] = -33.902661208376706;
|
|
|
|
- $ponPortId = $request->get('id');
|
|
|
|
-
|
|
|
|
- $em = $this->get('doctrine')->getManager();
|
|
|
|
- $ponPort = $em->getRepository("StatsBundle:PonPort")->findOneById($ponPortId);
|
|
|
|
- $oltDeviceId = $ponPort->getOltDeviceId();
|
|
|
|
- $deviceServerId = $ponPort->getDeviceServer()->getId();
|
|
|
|
- $tenancyId = $ponPort->getTenancyId();
|
|
|
|
-
|
|
|
|
- $data = explode("/", $ponPort->getPonPort());
|
|
|
|
- $card = $data[0];
|
|
|
|
- $slot = $data[1];
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- $adminPool = $this->get('sonata.admin.pool');
|
|
|
|
- $api = $this->get('geoserver.api');
|
|
|
|
- $gsHost = $this->getParameter('geoserver_host');
|
|
|
|
- $gsPort = $this->getParameter('geoserver_port');
|
|
|
|
- $workspace = "deviceServer_{$deviceServerId}";
|
|
|
|
- $layer = "ponport_stats_t_{$tenancyId}_o_{$oltDeviceId}_s_{$deviceServerId}_c_{$card}_s_{$slot}";
|
|
|
|
-
|
|
|
|
- $data = $api->getLayerData($workspace, $layer);
|
|
|
|
-
|
|
|
|
- $setLatLng = $setZoom = false;
|
|
|
|
-
|
|
|
|
- if(!empty($data)) {
|
|
|
|
- if(isset($data['featureType']['latLonBoundingBox'])) {
|
|
|
|
- $setLatLng = $setZoom = true;
|
|
|
|
- $srs = $data['featureType']['latLonBoundingBox'];
|
|
|
|
- } elseif(isset($data['featureType']['nativeBoundingBox'])) {
|
|
|
|
- $setLatLng = $setZoom = true;
|
|
|
|
- $srs = $data['featureType']['nativeBoundingBox'];
|
|
|
|
- }
|
|
|
|
- } else {
|
|
|
|
- $translator = $this->get('translator');
|
|
|
|
- $flashbag = $this->get('session')->getFlashBag();
|
|
|
|
- $flashbag->add("error", $translator->trans("msg_no_exist_map",array(),"StatsBundle"));
|
|
|
|
- return $this->redirect($this->generateUrl('admin_stats_ponport_list'));
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- if($setLatLng) {
|
|
|
|
- $lng = $srs['minx'] + ($srs['maxx'] - $srs['minx']) / 2;
|
|
|
|
- $lat = $srs['miny'] + ($srs['maxy'] - $srs['miny']) / 2;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- if($setZoom) {
|
|
|
|
- $lngDiff = $srs['maxx'] - $srs['minx'];
|
|
|
|
- $latDiff = $srs['maxy'] - $srs['miny'];
|
|
|
|
- $maxDiff = ($lngDiff > $latDiff) ? $lngDiff : $latDiff;
|
|
|
|
- if ($maxDiff < 360 / pow(2, 20)) {
|
|
|
|
- $zoom = 21;
|
|
|
|
- } else {
|
|
|
|
- $zoom = (-1*( (log($maxDiff)/log(2)) - (log(360)/log(2)))) + 1;
|
|
|
|
- if ($zoom < 1) $zoom = 1;
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- $map = array('lat' => $lat, 'lng' => $lng, 'zoom' => $zoom);
|
|
|
|
-
|
|
|
|
- return $this->render('StatsBundle:Stats:ponport_map.html.twig', array(
|
|
|
|
- 'base_template' => $adminPool->getTemplate('layout'),
|
|
|
|
- 'admin_pool' => $adminPool,
|
|
|
|
- 'admin' => $adminPool->getAdminByClass("StatsBundle\Entity\PonPort"),
|
|
|
|
- 'map' => $map,
|
|
|
|
- 'layer' => $layer,
|
|
|
|
- 'ponPort' => $ponPort,
|
|
|
|
- 'ws' => $workspace,
|
|
|
|
- 'gsHost'=> $gsHost,
|
|
|
|
- 'gsPort'=> $gsPort
|
|
|
|
- ));
|
|
|
|
- }
|
|
|
|
|
|
+
|
|
|
|
|
|
/**
|
|
/**
|
|
* @Route("/admin/stats/ponport/grafana", name="grafana_ponport")
|
|
* @Route("/admin/stats/ponport/grafana", name="grafana_ponport")
|