Esempio n. 1
0
        /// <summary>
        /// Icon을 생성하여 GEPlugin 에 Append
        /// </summary>
        /// <param name="placemarkID"></param>
        /// <param name="iconName"></param>
        /// <param name="iconURL"></param>
        /// <param name="latitude"></param>
        /// <param name="longitude"></param>
        public void CreateSystemIcon(string placemarkID, string iconName, string iconUrl, double latitude, double longitude)
        {
            try
            {
                if (this.ge == null)
                {
                    FileLogManager.GetInstance().WriteLog("[GEController] CreateSystemIcon( GEPlugin is null. )");

                    throw new Exception("External Exception : GEPlugin is null.");
                }

                //아이콘 생성---------------------------------------시작
                IKmlPlacemark placemark = ge.createPlacemark("icon" + placemarkID);
                placemark.setDescription(iconName);
                if (!string.IsNullOrEmpty(iconUrl))
                {
                    //아이콘 스타일 변경----------------------------시작
                    IKmlIcon icon = ge.createIcon("");
                    icon.setHref(iconUrl);
                    IKmlStyle style = ge.createStyle("");
                    style.getIconStyle().setIcon(icon);
                    placemark.setStyleSelector(style);
                    //아이콘 스타일 변경------------------------------끝
                }
                else
                {
                    //아이콘 스타일 변경----------------------------시작
                    IKmlIcon icon = ge.createIcon("");
                    icon.setHref("http://maps.google.com/mapfiles/kml/paddle/red-circle.png");
                    IKmlStyle style = ge.createStyle("");
                    style.getIconStyle().setIcon(icon);
                    placemark.setStyleSelector(style);
                    //아이콘 스타일 변경------------------------------끝
                }
                IKmlPoint point = ge.createPoint("");
                point.setLatitude(latitude);
                point.setLongitude(longitude);
                placemark.setGeometry(point);
                ge.getFeatures().appendChild(placemark);
                //아이콘 생성-----------------------------------------끝
            }
            catch (Exception ex)
            {
                System.Console.WriteLine("CreateSystemIcon Exception : " + ex.ToString());
                FileLogManager.GetInstance().WriteLog("[GEController] CreateSystemIcon( " + ex.ToString() + " )");
            }
        }
Esempio n. 2
0
        public Boolean insert(String tp1, String tp2)
        {
            try
            {
                // Get the end placemark of the 1st trip  and the start placemark of the second trip
                IKmlPlacemark tp1fn = t_pool.getFinish(t_pool.getByName(tp1));
                IKmlPlacemark tp2st = t_pool.getStart(t_pool.getByName(tp2));

                //create a place mark to store the new place mark

                IKmlPlacemark start  = ge.createPlacemark("");
                IKmlPlacemark finish = ge.createPlacemark("");

                start.setName(tp1fn.getName());
                finish.setName(tp2st.getName());

                IKmlPoint sp = ge.createPoint("");
                IKmlPoint fp = ge.createPoint("");

                IKmlPlacemark _temp = ge.createPlacemark("");

                IKmlLineString temp = ge.createLineString("");

                // Retrieve the coordinates of the two trips
                Hashtable cds1 = Module.getCoordinates(tp1fn);
                Hashtable cds2 = Module.getCoordinates(tp2st);

                sp.setLatLng((double)cds1["lat"], (double)cds1["lon"]);
                start.setGeometry(sp);
                fp.setLatLng((double)cds2["lat"], (double)cds2["lon"]);
                finish.setGeometry(fp);

                String color = randomCol();

                IKmlStyleMap sm        = ge.createStyleMap("");
                IKmlStyle    normal    = mkStyle(color, @"http://maps.google.com/mapfiles/kml/paddle/wht-blank.png", (float)0.3);
                IKmlStyle    highlight = mkStyle(color, @"http://maps.google.com/mapfiles/kml/paddle/wht-blank.png", (float)0.4);
                sm.setNormalStyle(normal);
                sm.setHighlightStyle(highlight);
                start.setStyleSelector(sm);
                finish.setStyleSelector(sm);

                temp.getCoordinates().pushLatLngAlt((double)cds1["lat"], (double)cds1["lon"], 0);
                temp.getCoordinates().pushLatLngAlt((double)cds2["lat"], (double)cds2["lon"], 0);
                _temp.setGeometry(temp);

                IKmlStyle sty = ge.createStyle("");
                sty.getLineStyle().setWidth((float)4);
                sty.getLineStyle().getColor().set(color);

                _temp.setStyleSelector(sty);

                //create a new KML folder for the new trip  and append the tmp features of the previous trip
                IKmlFolder temp1 = ge.createFolder("");

                temp1.getFeatures().appendChild(start);
                temp1.getFeatures().appendChild(_temp);
                temp1.getFeatures().appendChild(finish);

                String[] attributes = new String[14];

                //Add the new trip to the trip pools
                t_pool.add(tp2, temp1, attributes);
                ge.getFeatures().appendChild(temp1);

                // record the insert action for undo action
                record.ins_trip(tp2);


                return(true);
            }
            catch
            {
                return(false);
            }
        }
Esempio n. 3
0
        /// <summary>
        /// Icon을 생성하여 GEPlugin 에 Append
        /// </summary>
        /// <param name="iconInfo"></param>
        public IKmlObject CreateSystemIcon(IconInfo iconInfo)
        {
            try
            {
                if (this.ge == null)
                {
                    FileLogManager.GetInstance().WriteLog("[GEController] CreateSystemIcon2( GEPlugin is null. )");

                    throw new Exception("External Exception : GEPlugin is null.");
                }

                StringBuilder builder = new StringBuilder();
                builder.Append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>");
                builder.Append("<kml xmlns=\"http://www.opengis.net/kml/2.2\" xmlns:gx=\"http://www.google.com/kml/ext/2.2\"");
                builder.Append(" xmlns:kml=\"http://www.opengis.net/kml/2.2\" xmlns:atom=\"http://www.w3.org/2005/Atom\">");
                builder.Append("<Placemark id=\"");
                builder.Append("icon" + iconInfo.IconName);
                builder.Append("\">");
                builder.Append("<name></name>");
                if (iconInfo.LstExtendedData.Count > 0)
                {
                    builder.Append("<ExtendedData>");
                    foreach (KmlExtendedData extendData in iconInfo.LstExtendedData)
                    {
                        builder.Append("<Data name=\"");
                        builder.Append(extendData.DataName);
                        builder.Append("\">");
                        builder.Append("<value>");
                        builder.Append(extendData.Data);
                        builder.Append("</value>");
                        builder.Append("</Data>");
                    }
                    builder.Append("</ExtendedData>");
                }

                builder.Append("</Placemark>");
                builder.Append("</kml>");
                IKmlObject obj = ge.parseKml(builder.ToString());
                //아이콘 생성---------------------------------------시작
                IKmlPlacemark placemark = obj as IKmlPlacemark;
                placemark.setDescription(iconInfo.IconName);
                if (!string.IsNullOrEmpty(iconInfo.IconURL))
                {
                    //아이콘 스타일 변경----------------------------시작
                    IKmlIcon icon = ge.createIcon("");
                    icon.setHref(iconInfo.IconURL);
                    IKmlStyle style = ge.createStyle("");
                    style.getIconStyle().setIcon(icon);
                    placemark.setStyleSelector(style);
                    //아이콘 스타일 변경------------------------------끝
                }
                else
                {
                    //아이콘 스타일 변경----------------------------시작
                    IKmlIcon icon = ge.createIcon("");
                    icon.setHref("http://maps.google.com/mapfiles/kml/paddle/red-circle.png");
                    IKmlStyle style = ge.createStyle("");
                    style.getIconStyle().setIcon(icon);
                    placemark.setStyleSelector(style);
                    //아이콘 스타일 변경------------------------------끝
                }
                IKmlPoint point = ge.createPoint("");
                point.setLatitude(iconInfo.Latitude);
                point.setLongitude(iconInfo.Longitude);
                placemark.setGeometry(point);

                return(ge.getFeatures().appendChild(placemark));
                //아이콘 생성-----------------------------------------끝
            }
            catch (Exception ex)
            {
                System.Console.WriteLine("CreateSystemIcon2 Exception : " + ex.ToString());
                FileLogManager.GetInstance().WriteLog("[GEController] CreateSystemIcon2( GEPlugin is null. )");

                return(null);
            }
        }