// Evento general de atencion de eventos de click sobre el mapa.
        // Las distintas funciones a cumplir vienen definidas por flags externos: flagAddMarker, etc.
        public void EventoClickMouse(object sender, HtmlElementEventArgs e)
        {
            object[] args = { };

            string res = (string)webBrowser.Document.InvokeScript("actualCoords", args);

            this.Text = "La posicion es: " + res;

            // Hizo un click para agregar un punto
            if (flagAddmarker)
            {
                btnCreate.Visible = true;
                actualPointID++;

                string idNuevoPunto = "P" + actualPointID.ToString();
                string nuevoPunto   = (string)webBrowser.Document.InvokeScript("actualCoords");

                Zone.GeoCoord coordNuevoPunto = stringCoordToGeoCoord(nuevoPunto);

                markerPoints.Add(idNuevoPunto, coordNuevoPunto);
                actualPoint = coordNuevoPunto;

                // Actualiza el ListView de los puntos de la zona.
                //actualizarListaPuntos();

                actualizarMarkersEnMapa(markerPoints);
            }
        }
        // Convesion de string a Coordenadas Geometricas.
        private Zone.GeoCoord stringCoordToGeoCoord(string v_punto)
        {
            Zone.GeoCoord result = new Zone.GeoCoord();

            string[] coords = v_punto.Split(',');

            result.latitude  = coords[0].Substring(1);
            result.longitude = coords[1].Substring(0, coords[1].Length - 1);
            return(result);
        }
        private void crearMarkers(string listaCoords)
        {
            string[] coordArray = listaCoords.Split(',');

            markerPoints.Clear();
            if (coordArray.Length > 2)
            {
                actualPointID = 0;
                for (int i = 0; i < coordArray.Length; i = i + 2)
                {
                    actualPointID++;

                    string        idNuevoPunto    = "P" + actualPointID.ToString();
                    Zone.GeoCoord coordNuevoPunto = new Zone.GeoCoord(coordArray[i], coordArray[i + 1]);
                    markerPoints.Add(idNuevoPunto, coordNuevoPunto);
                }
            }
        }
        private Dictionary <string, Zone.GeoCoord> ObtenerSiguienteBufferPosiciones()
        {
            Dictionary <string, Zone.GeoCoord> res = new Dictionary <string, Zone.GeoCoord>();

            long PanelIDSelected = long.Parse(frmLiveTrackingVG.DEVICEID);

            try
            {
                string errDesc = "";
                int    errCode = -1;
                string datos   = WebServiceAPI.GetInstance().GetMultiplePositionsFromZone(PanelIDSelected.ToString(), frmLiveTrackingVG.ORGID.ToString(), out errDesc, out errCode);
                //Helpers.GetInstance().DoLog("datos=" + datos);
                Match matchRespuesta = Multiple_Pos_Data.Match(datos);

                if (matchRespuesta.Success)
                {
                    string[] HHPositions = getMatchData(matchRespuesta, 2).Split(',');              // Cada dato es: PANELID,Lat,Long,Speed,DateTime, ... 5 por cada bloque

                    for (int i = 0; i < HHPositions.Length - 1; i = i + 5)
                    {
                        //long ID = Convert.ToInt64(HHPositions[i]); // Es el PANELID del HH
                        string nombrePanel = HHPositions[i];
                        string lat         = HHPositions[i + 1];
                        string lng         = HHPositions[i + 2];
                        string speed       = HHPositions[i + 3];
                        string dateTime    = HHPositions[i + 4];

                        Zone.GeoCoord nuevoGPS = new Zone.GeoCoord(lat, lng);
                        res.Add(nombrePanel, nuevoGPS);
                    }
                }
            }
            catch (Exception ex)
            {
                Tools.GetInstance().DoLog("Excepcion en ObtenerSiguienteBufferPosiciones(): " + ex.Message);
            }
            //Tools.GetInstance().DoLog("ObtenerSiguienteBufferPosiciones devolvio:" + res.Count );
            return(res);
        }