private void writeSettingsToXML(String path, ImageOptions iOpt)
        {
            XmlTextWriter writer = new XmlTextWriter(path, null);

            // console print out for testing purpose
            // XmlTextWriter writer = new XmlTextWriter(Console.Out);

            writer.Formatting = Formatting.Indented;

            // Starts a new document
            writer.WriteStartDocument();

            //Write comments
            writer.WriteComment("Map-Image Options");

            // Add elements to the file
            writer.WriteStartElement("ImageOptions", "");

            writer.WriteStartElement("Name", "");
            writer.WriteString(iOpt.Name);
            writer.WriteEndElement();

            writer.WriteStartElement("Description", "");
            writer.WriteString(iOpt.Description);
            writer.WriteEndElement();

            writer.WriteStartElement("SWLat", "");
            writer.WriteString(iOpt.SWLat.ToString());
            writer.WriteEndElement();

            writer.WriteStartElement("SWLong", "");
            writer.WriteString(iOpt.SWLong.ToString());
            writer.WriteEndElement();

            writer.WriteStartElement("SELat", "");
            writer.WriteString(iOpt.SELat.ToString());
            writer.WriteEndElement();

            writer.WriteStartElement("SELong", "");
            writer.WriteString(iOpt.SELong.ToString());
            writer.WriteEndElement();

            writer.WriteStartElement("NELat", "");
            writer.WriteString(iOpt.NELat.ToString());
            writer.WriteEndElement();

            writer.WriteStartElement("NELong", "");
            writer.WriteString(iOpt.NELong.ToString());
            writer.WriteEndElement();

            writer.WriteStartElement("ZoomLevel", "");
            writer.WriteString(iOpt.ZoomLevel.ToString());
            writer.WriteEndElement();

            writer.WriteEndElement();

            // Ends the document
            writer.WriteEndDocument();

            writer.Flush();
            writer.Close();
        }
        private void saveGoogleMapToLocalMachine()
        {
            Object url;
            HtmlDocument doc = webBrowserMap.Document;

            if (this.checkBoxUseDeviceDimensions.Checked)
            {
                Object[] obj = new Object[2];
                obj[0] = (Object)deviceWidth;
                obj[1] = (Object)deviceHeight;

                url = webBrowserMap.Document.InvokeScript("loadImageWithParam", obj);
            }
            else
            {
                url = webBrowserMap.Document.InvokeScript("loadImage");
            }

            StringBuilder builder = new StringBuilder();
            builder.Append(Environment.CurrentDirectory + @"\Maps");
            builder.Append(@"\");
            builder.Append(this.textBoxFileName.Text.Trim());
            builder.Append(".png");

            String localFileName = builder.ToString();
            if (!Directory.Exists(Environment.CurrentDirectory + @"\Maps"))
            {
                Directory.CreateDirectory(Environment.CurrentDirectory + @"\Maps");
            }
            if (this.DownloadFile(url.ToString(), localFileName) > 0)
            {
                builder = new StringBuilder();
                builder.Append(Environment.CurrentDirectory + @"\Maps");
                builder.Append(@"\");
                builder.Append(this.textBoxFileName.Text.Trim());
                builder.Append(".xml");

                ImageOptions iOpt = new ImageOptions();
                iOpt.Name = this.textBoxFileName.Text.Trim();
                iOpt.Description = this.textBoxFileDescription.Text.Trim();

                if (webBrowserMap.Document != null)
                {
                    doc = webBrowserMap.Document;
                    Object temp;
                    temp = doc.InvokeScript("getSWLatitude");
                    iOpt.SWLat = float.Parse(temp.ToString());
                    iOpt.SELat = float.Parse(temp.ToString());

                    temp = doc.InvokeScript("getSWLongitude");
                    iOpt.SWLong = float.Parse(temp.ToString());

                    temp = doc.InvokeScript("getNELatitude");
                    iOpt.NELat = float.Parse(temp.ToString());

                    temp = doc.InvokeScript("getNELongitude");
                    iOpt.NELong = float.Parse(temp.ToString());
                    iOpt.SELong = float.Parse(temp.ToString());

                    temp = doc.InvokeScript("getZoomLevel");
                    iOpt.ZoomLevel = int.Parse(temp.ToString());
                }

                this.writeSettingsToXML(builder.ToString(), iOpt);

                this.textBoxFileDescription.Clear();
                this.textBoxFileName.Clear();
            }
        }
        private void saveMapToLocalMachine()
        {
            if (pictureBoxMap.Image == null)
            {
                throw new Exception("No map loaded to be saved.");
            }

            StringBuilder builder = new StringBuilder();
            builder.Append(Environment.CurrentDirectory + @"\Maps");
            builder.Append(@"\");
            builder.Append(this.textBoxFileName.Text.Trim());
            builder.Append(".png");

            String localFileName = builder.ToString();
            if (!Directory.Exists(Environment.CurrentDirectory + @"\Maps"))
            {
                Directory.CreateDirectory(Environment.CurrentDirectory + @"\Maps");
            }

            ImageOptions iOpt = new ImageOptions();
            iOpt.Name = this.textBoxFileName.Text.Trim();
            iOpt.Description = this.textBoxFileDescription.Text.Trim();

            if (this.checkBoxUseDeviceDimensions.Checked)
            {
                //Cut and Save Image
                Bitmap img = new Bitmap(deviceWidth, deviceHeight);
                Graphics g = Graphics.FromImage(img);
                g.DrawImageUnscaledAndClipped(pictureBoxMap.Image, new Rectangle((-1)*overlayX, (-1)*overlayY, deviceWidth+overlayX, deviceHeight+overlayY));
                g.Save();
                img.Save(localFileName, ImageFormat.Png);

                try
                {
                    CultureInfo info = null;
                    if (textBoxNELong.Text.Contains(","))
                        info = System.Globalization.CultureInfo.CreateSpecificCulture("de-de");
                    else if (textBoxNELong.Text.Contains("."))
                        info = System.Globalization.CultureInfo.CreateSpecificCulture("en-us");

                    // for now: maps are assumed northbound
                    // otherwise quotients must be differently calculated
                    float deltaLongitude = float.Parse(textBoxNELong.Text.Trim(), info) - float.Parse(textBoxSWLong.Text.Trim(), info);
                    float ratioLongitude = deltaLongitude / pictureBoxMap.Image.Width;

                    float deltaLatitude = float.Parse(textBoxNELat.Text.Trim(), info) - float.Parse(textBoxSWLat.Text.Trim(), info);
                    float ratioLatitude = deltaLatitude / pictureBoxMap.Image.Height;

                    iOpt.NELong = float.Parse(textBoxNELong.Text.Trim(), info) - ((pictureBoxMap.Image.Width - overlayX - deviceWidth) * ratioLongitude);
                    iOpt.NELat = float.Parse(textBoxNELat.Text.Trim(), info) - (overlayY * ratioLatitude);

                    iOpt.SWLong = float.Parse(textBoxSWLong.Text.Trim(), info) + (overlayX * ratioLongitude);
                    iOpt.SWLat = float.Parse(textBoxSWLat.Text.Trim(), info) + ((pictureBoxMap.Image.Height - overlayY - deviceHeight) * ratioLatitude);

                    //if (checkBoxNotNorthbound.Checked)
                    //{
                    //    //ToDo: calculate SE Corner
                    //}
                    //else
                    //{
                    iOpt.SELong = iOpt.NELong;
                    iOpt.SELat = iOpt.SWLat;
                    //}
                }
                catch (Exception e)
                {
                    MessageBox.Show("GPS Data couldn`t be calculated. XML File couldn't be saved!");
                    throw e;
                }
            }
            else
            {
                pictureBoxMap.Image.Save(localFileName, ImageFormat.Png);

                iOpt.NELong = float.Parse(textBoxNELong.Text.Trim());
                iOpt.NELat = float.Parse(textBoxNELat.Text.Trim());

                iOpt.SWLong = float.Parse(textBoxSWLong.Text.Trim());
                iOpt.SWLat = float.Parse(textBoxSWLat.Text.Trim());

                if (checkBoxNotNorthbound.Checked)
                {
                    iOpt.SELong = float.Parse(textBoxSELong.Text.Trim());
                    iOpt.SELat = float.Parse(textBoxSELat.Text.Trim());
                }
                else
                {
                    iOpt.SELong = iOpt.NELong;
                    iOpt.SELat = iOpt.SWLat;
                }
            }

            builder = new StringBuilder();
            builder.Append(Environment.CurrentDirectory + @"\Maps");
            builder.Append(@"\");
            builder.Append(this.textBoxFileName.Text.Trim());
            builder.Append(".xml");

            this.writeSettingsToXML(builder.ToString(), iOpt);

            this.textBoxFileDescription.Clear();
            this.textBoxFileName.Clear();
        }
        private void saveGoogleMapToDevice()
        {
            if (this.deviceMapDirectory != null)
            {
                Object[] obj = new Object[2];
                obj[0] = (Object)deviceWidth;
                obj[1] = (Object)deviceHeight;

                HtmlDocument doc = webBrowserMap.Document;
                Object url = webBrowserMap.Document.InvokeScript("loadImageWithParam", obj);

                StringBuilder builder = new StringBuilder();
                builder.Append(this.textBoxFileName.Text);
                builder.Append(".png");
                String localFileName = builder.ToString();

                if (this.DownloadFile(url.ToString(), localFileName) > 0)
                {
                    builder = new StringBuilder();
                    builder.Append(this.textBoxFileName.Text);
                    builder.Append(".xml");

                    ImageOptions iOpt = new ImageOptions();
                    iOpt.Name = this.textBoxFileName.Text.Trim();
                    iOpt.Description = this.textBoxFileDescription.Text.Trim();

                    if (webBrowserMap.Document != null)
                    {
                        doc = webBrowserMap.Document;
                        Object temp;
                        temp = doc.InvokeScript("getSWLatitude");
                        iOpt.SWLat = float.Parse(temp.ToString());
                        iOpt.SELat = float.Parse(temp.ToString());

                        temp = doc.InvokeScript("getSWLongitude");
                        iOpt.SWLong = float.Parse(temp.ToString());

                        temp = doc.InvokeScript("getNELatitude");
                        iOpt.NELat = float.Parse(temp.ToString());

                        temp = doc.InvokeScript("getNELongitude");
                        iOpt.NELong = float.Parse(temp.ToString());
                        iOpt.SELong = float.Parse(temp.ToString());

                        temp = doc.InvokeScript("getZoomLevel");
                        iOpt.ZoomLevel = int.Parse(temp.ToString());
                    }

                    this.writeSettingsToXML(builder.ToString(), iOpt);

                    try
                    {
                        if (!rapi.DeviceFileExists(this.deviceMapDirectory))
                        {
                            rapi.CreateDeviceDirectory(this.deviceMapDirectory);
                        }
                        rapi.CopyFileToDevice(localFileName, this.deviceMapDirectory + @"\" + localFileName, true);
                        rapi.CopyFileToDevice(builder.ToString(), this.deviceMapDirectory + @"\" + localFileName, true);
                        File.Delete(localFileName);
                        File.Delete(builder.ToString());
                        this.textBoxFileDescription.Clear();
                        this.textBoxFileName.Clear();
                    }
                    catch (Exception e)
                    {
                        MessageBox.Show("DirectCopy Not Succesfull. You need To copy manually.");
                    }

                }
            }
        }
Exemple #5
0
        private void saveMapToLocalMachine()
        {
            if (pictureBoxMap.Image == null)
            {
                throw new Exception("No map loaded to be saved.");
            }

            StringBuilder builder = new StringBuilder();

            builder.Append(Environment.CurrentDirectory + @"\Maps");
            builder.Append(@"\");
            builder.Append(this.textBoxFileName.Text.Trim());
            builder.Append(".png");

            String localFileName = builder.ToString();

            if (!Directory.Exists(Environment.CurrentDirectory + @"\Maps"))
            {
                Directory.CreateDirectory(Environment.CurrentDirectory + @"\Maps");
            }

            ImageOptions iOpt = new ImageOptions();

            iOpt.Name        = this.textBoxFileName.Text.Trim();
            iOpt.Description = this.textBoxFileDescription.Text.Trim();

            if (this.checkBoxUseDeviceDimensions.Checked)
            {
                //Cut and Save Image
                Bitmap   img = new Bitmap(deviceWidth, deviceHeight);
                Graphics g   = Graphics.FromImage(img);
                g.DrawImageUnscaledAndClipped(pictureBoxMap.Image, new Rectangle((-1) * overlayX, (-1) * overlayY, deviceWidth + overlayX, deviceHeight + overlayY));
                g.Save();
                img.Save(localFileName, ImageFormat.Png);

                try
                {
                    CultureInfo info = null;
                    if (textBoxNELong.Text.Contains(","))
                    {
                        info = System.Globalization.CultureInfo.CreateSpecificCulture("de-de");
                    }
                    else if (textBoxNELong.Text.Contains("."))
                    {
                        info = System.Globalization.CultureInfo.CreateSpecificCulture("en-us");
                    }

                    // for now: maps are assumed northbound
                    // otherwise quotients must be differently calculated
                    float deltaLongitude = float.Parse(textBoxNELong.Text.Trim(), info) - float.Parse(textBoxSWLong.Text.Trim(), info);
                    float ratioLongitude = deltaLongitude / pictureBoxMap.Image.Width;

                    float deltaLatitude = float.Parse(textBoxNELat.Text.Trim(), info) - float.Parse(textBoxSWLat.Text.Trim(), info);
                    float ratioLatitude = deltaLatitude / pictureBoxMap.Image.Height;

                    iOpt.NELong = float.Parse(textBoxNELong.Text.Trim(), info) - ((pictureBoxMap.Image.Width - overlayX - deviceWidth) * ratioLongitude);
                    iOpt.NELat  = float.Parse(textBoxNELat.Text.Trim(), info) - (overlayY * ratioLatitude);

                    iOpt.SWLong = float.Parse(textBoxSWLong.Text.Trim(), info) + (overlayX * ratioLongitude);
                    iOpt.SWLat  = float.Parse(textBoxSWLat.Text.Trim(), info) + ((pictureBoxMap.Image.Height - overlayY - deviceHeight) * ratioLatitude);

                    //if (checkBoxNotNorthbound.Checked)
                    //{
                    //    //ToDo: calculate SE Corner
                    //}
                    //else
                    //{
                    iOpt.SELong = iOpt.NELong;
                    iOpt.SELat  = iOpt.SWLat;
                    //}
                }
                catch (Exception e)
                {
                    MessageBox.Show("GPS Data couldn`t be calculated. XML File couldn't be saved!");
                    throw e;
                }
            }
            else
            {
                pictureBoxMap.Image.Save(localFileName, ImageFormat.Png);

                iOpt.NELong = float.Parse(textBoxNELong.Text.Trim());
                iOpt.NELat  = float.Parse(textBoxNELat.Text.Trim());

                iOpt.SWLong = float.Parse(textBoxSWLong.Text.Trim());
                iOpt.SWLat  = float.Parse(textBoxSWLat.Text.Trim());

                if (checkBoxNotNorthbound.Checked)
                {
                    iOpt.SELong = float.Parse(textBoxSELong.Text.Trim());
                    iOpt.SELat  = float.Parse(textBoxSELat.Text.Trim());
                }
                else
                {
                    iOpt.SELong = iOpt.NELong;
                    iOpt.SELat  = iOpt.SWLat;
                }
            }

            builder = new StringBuilder();
            builder.Append(Environment.CurrentDirectory + @"\Maps");
            builder.Append(@"\");
            builder.Append(this.textBoxFileName.Text.Trim());
            builder.Append(".xml");

            this.writeSettingsToXML(builder.ToString(), iOpt);

            this.textBoxFileDescription.Clear();
            this.textBoxFileName.Clear();
        }
Exemple #6
0
        private void saveGoogleMapToLocalMachine()
        {
            Object       url;
            HtmlDocument doc = webBrowserMap.Document;

            if (this.checkBoxUseDeviceDimensions.Checked)
            {
                Object[] obj = new Object[2];
                obj[0] = (Object)deviceWidth;
                obj[1] = (Object)deviceHeight;

                url = webBrowserMap.Document.InvokeScript("loadImageWithParam", obj);
            }
            else
            {
                url = webBrowserMap.Document.InvokeScript("loadImage");
            }

            StringBuilder builder = new StringBuilder();

            builder.Append(Environment.CurrentDirectory + @"\Maps");
            builder.Append(@"\");
            builder.Append(this.textBoxFileName.Text.Trim());
            builder.Append(".png");

            String localFileName = builder.ToString();

            if (!Directory.Exists(Environment.CurrentDirectory + @"\Maps"))
            {
                Directory.CreateDirectory(Environment.CurrentDirectory + @"\Maps");
            }
            if (this.DownloadFile(url.ToString(), localFileName) > 0)
            {
                builder = new StringBuilder();
                builder.Append(Environment.CurrentDirectory + @"\Maps");
                builder.Append(@"\");
                builder.Append(this.textBoxFileName.Text.Trim());
                builder.Append(".xml");

                ImageOptions iOpt = new ImageOptions();
                iOpt.Name        = this.textBoxFileName.Text.Trim();
                iOpt.Description = this.textBoxFileDescription.Text.Trim();

                if (webBrowserMap.Document != null)
                {
                    doc = webBrowserMap.Document;
                    Object temp;
                    temp       = doc.InvokeScript("getSWLatitude");
                    iOpt.SWLat = float.Parse(temp.ToString());
                    iOpt.SELat = float.Parse(temp.ToString());

                    temp        = doc.InvokeScript("getSWLongitude");
                    iOpt.SWLong = float.Parse(temp.ToString());

                    temp       = doc.InvokeScript("getNELatitude");
                    iOpt.NELat = float.Parse(temp.ToString());

                    temp        = doc.InvokeScript("getNELongitude");
                    iOpt.NELong = float.Parse(temp.ToString());
                    iOpt.SELong = float.Parse(temp.ToString());

                    temp           = doc.InvokeScript("getZoomLevel");
                    iOpt.ZoomLevel = int.Parse(temp.ToString());
                }

                this.writeSettingsToXML(builder.ToString(), iOpt);

                this.textBoxFileDescription.Clear();
                this.textBoxFileName.Clear();
            }
        }
Exemple #7
0
        private void saveGoogleMapToDevice()
        {
            if (this.deviceMapDirectory != null)
            {
                Object[] obj = new Object[2];
                obj[0] = (Object)deviceWidth;
                obj[1] = (Object)deviceHeight;

                HtmlDocument doc = webBrowserMap.Document;
                Object       url = webBrowserMap.Document.InvokeScript("loadImageWithParam", obj);

                StringBuilder builder = new StringBuilder();
                builder.Append(this.textBoxFileName.Text);
                builder.Append(".png");
                String localFileName = builder.ToString();

                if (this.DownloadFile(url.ToString(), localFileName) > 0)
                {
                    builder = new StringBuilder();
                    builder.Append(this.textBoxFileName.Text);
                    builder.Append(".xml");

                    ImageOptions iOpt = new ImageOptions();
                    iOpt.Name        = this.textBoxFileName.Text.Trim();
                    iOpt.Description = this.textBoxFileDescription.Text.Trim();

                    if (webBrowserMap.Document != null)
                    {
                        doc = webBrowserMap.Document;
                        Object temp;
                        temp       = doc.InvokeScript("getSWLatitude");
                        iOpt.SWLat = float.Parse(temp.ToString());
                        iOpt.SELat = float.Parse(temp.ToString());

                        temp        = doc.InvokeScript("getSWLongitude");
                        iOpt.SWLong = float.Parse(temp.ToString());

                        temp       = doc.InvokeScript("getNELatitude");
                        iOpt.NELat = float.Parse(temp.ToString());

                        temp        = doc.InvokeScript("getNELongitude");
                        iOpt.NELong = float.Parse(temp.ToString());
                        iOpt.SELong = float.Parse(temp.ToString());

                        temp           = doc.InvokeScript("getZoomLevel");
                        iOpt.ZoomLevel = int.Parse(temp.ToString());
                    }

                    this.writeSettingsToXML(builder.ToString(), iOpt);

                    try
                    {
                        if (!rapi.DeviceFileExists(this.deviceMapDirectory))
                        {
                            rapi.CreateDeviceDirectory(this.deviceMapDirectory);
                        }
                        rapi.CopyFileToDevice(localFileName, this.deviceMapDirectory + @"\" + localFileName, true);
                        rapi.CopyFileToDevice(builder.ToString(), this.deviceMapDirectory + @"\" + localFileName, true);
                        File.Delete(localFileName);
                        File.Delete(builder.ToString());
                        this.textBoxFileDescription.Clear();
                        this.textBoxFileName.Clear();
                    }
                    catch (Exception e)
                    {
                        MessageBox.Show("DirectCopy Not Succesfull. You need To copy manually.");
                    }
                }
            }
        }
Exemple #8
0
        private void writeSettingsToXML(String path, ImageOptions iOpt)
        {
            XmlTextWriter writer = new XmlTextWriter(path, null);

            // console print out for testing purpose
            // XmlTextWriter writer = new XmlTextWriter(Console.Out);

            writer.Formatting = Formatting.Indented;

            // Starts a new document
            writer.WriteStartDocument();

            //Write comments
            writer.WriteComment("Map-Image Options");

            // Add elements to the file
            writer.WriteStartElement("ImageOptions", "");

            writer.WriteStartElement("Name", "");
            writer.WriteString(iOpt.Name);
            writer.WriteEndElement();

            writer.WriteStartElement("Description", "");
            writer.WriteString(iOpt.Description);
            writer.WriteEndElement();

            writer.WriteStartElement("SWLat", "");
            writer.WriteString(iOpt.SWLat.ToString());
            writer.WriteEndElement();

            writer.WriteStartElement("SWLong", "");
            writer.WriteString(iOpt.SWLong.ToString());
            writer.WriteEndElement();

            writer.WriteStartElement("SELat", "");
            writer.WriteString(iOpt.SELat.ToString());
            writer.WriteEndElement();

            writer.WriteStartElement("SELong", "");
            writer.WriteString(iOpt.SELong.ToString());
            writer.WriteEndElement();

            writer.WriteStartElement("NELat", "");
            writer.WriteString(iOpt.NELat.ToString());
            writer.WriteEndElement();

            writer.WriteStartElement("NELong", "");
            writer.WriteString(iOpt.NELong.ToString());
            writer.WriteEndElement();

            writer.WriteStartElement("ZoomLevel", "");
            writer.WriteString(iOpt.ZoomLevel.ToString());
            writer.WriteEndElement();

            writer.WriteEndElement();

            // Ends the document
            writer.WriteEndDocument();

            writer.Flush();
            writer.Close();
        }