Ejemplo n.º 1
0
        /// <summary>
        /// 根据id号查询结果
        /// </summary>
        /// <param name="storyIds"></param>
        /// <returns></returns>
        public static SharedStory query(String storyId)
        {
            SharedStory story = story = new SharedStory();;
            String      sql   = "";

            string          connString = "server=localhost;User Id=root;password=root;Database=internship;Charset=utf8";
            MySqlConnection myconn     = new MySqlConnection(connString);

            myconn.Open();


            sql = "select story_id,message,latitude,longitude,time,image_name from shared_story  where story_id='" + storyId + "' ";
            MySqlCommand queryCmd = new MySqlCommand(sql, myconn);

            Console.WriteLine(sql);
            MySqlDataReader reader = queryCmd.ExecuteReader();

            if (reader.Read())
            {
                story.Id        = reader.GetString("story_id");
                story.Message   = reader.GetString("message");
                story.Latitude  = reader.GetString("latitude");
                story.Longitude = reader.GetString("longitude");
                story.Time      = reader.GetString("time");
                story.ImageName = reader.GetString("image_name");


                reader.Close();
            }


            myconn.Close();
            return(story);
        }
Ejemplo n.º 2
0
        /// <summary>
        ///添加点图层
        /// </summary>
        /// <param name="axMap"></param>
        /// <param name="longtitude"></param>
        /// <param name="latitude"></param>
        /// <param name="fieldsMap"></param>
        public static IFeature addPointInLayer(AxMapControl axMap, SharedStory story)
        {
            try
            {
                double longitude = Convert.ToDouble(story.Longitude);
                double latitude  = Convert.ToDouble(story.Latitude);
                String storyId   = story.Id;
                String message   = story.Message;

                ILayer layer = getLayerByName(axMap.Map, "story");

                //将ILayer转换为IFeaturelayer,为了对图层上的要素进行编辑
                IFeatureLayer featureLayer = layer as IFeatureLayer;
                //定义一个要素集合,并获取图层的要素集合
                IFeatureClass featureClass = featureLayer.FeatureClass;
                //定义一个实现新增要素的接口实例,并该实例作用于当前图层的要素集
                IFeatureClassWrite writer = (IFeatureClassWrite)featureClass;
                //定义一个工作编辑工作空间,用于开启前图层的编辑状态
                IWorkspaceEdit edit = (featureClass as IDataset).Workspace as IWorkspaceEdit;
                //定义一个IFeature实例,用于添加到当前图层上
                IFeature feature;
                //开启编辑状态
                edit.StartEditing(true);
                //开启编辑操作
                edit.StartEditOperation();
                //定义一个点,用来作为IFeature实例的形状属性,即shape属性
                IPoint point;
                //下面是设置点的坐标和参考系
                point = new PointClass();
                point.SpatialReference = axMap.SpatialReference;
                point.X = longitude;
                point.Y = latitude;

                //将IPoint设置为IFeature的shape属性时,需要通过中间接口IGeometry转换
                IGeometry geometry = point;
                //实例化IFeature对象, 这样IFeature对象就具有当前图层上要素的字段信息
                feature = featureClass.CreateFeature();
                //设置IFeature对象的形状属性
                feature.Shape = geometry;

                //添加字段
                int index = featureClass.FindField("story_id");
                feature.Value[index] = storyId;



                feature.Store();              //保存IFeature对象
                writer.WriteFeature(feature); //将IFeature对象,添加到当前图层上
                edit.StopEditOperation();     //停止编辑操作
                edit.StopEditing(true);       //关闭编辑状态,并保存修改

                axMap.Refresh();              //刷新地图

                return(feature);
            }
            catch
            {
                return(null);
            }
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 根据id集合号查询结果
        /// </summary>
        /// <param name="storyIds"></param>
        /// <returns></returns>
        public static List <SharedStory> query(List <String> storyIds)
        {
            List <SharedStory> stories = new List <SharedStory>();
            Image       image          = null;
            SharedStory story          = null;
            String      sql            = "";

            string          connString = "server=localhost;User Id=root;password=root;Database=internship;Charset=utf8";
            MySqlConnection myconn     = new MySqlConnection(connString);

            myconn.Open();

            for (int i = 0; i < storyIds.Count; i++)
            {
                sql = "select story_id,message,latitude,longitude,time,image_name from shared_story where story_id='" + storyIds[i] + "'  ";
                MySqlCommand queryCmd = new MySqlCommand(sql, myconn);


                MySqlDataReader reader = queryCmd.ExecuteReader();


                if (reader.Read())
                {
                    story = new SharedStory();

                    story.Id        = reader.GetString("story_id");
                    story.Message   = reader.GetString("message");
                    story.Latitude  = reader.GetString("latitude");
                    story.Longitude = reader.GetString("longitude");
                    story.Time      = reader.GetString("time");
                    story.ImageName = reader.GetString("image_name");

                    Console.WriteLine("queryStory=" + story.ToString());

                    stories.Add(story);
                }


                reader.Close();
            }

            Console.WriteLine("queryStory=" + stories.Count);

            myconn.Close();
            return(stories);
        }
Ejemplo n.º 4
0
        /// <summary>
        /// 向数据库中添加数据
        /// </summary>
        public static void insert(SharedStory story)
        {
            String message   = story.Message;
            String time      = story.Time;
            String storyId   = story.Id;
            String longitude = story.Longitude;
            String latitude  = story.Latitude;
            String imageName = story.ImageName;



            string          connString = "server=localhost;User Id=root;password=root;Database=internship;Charset=utf8";
            MySqlConnection myconn     = new MySqlConnection(connString);

            myconn.Open();

            MySqlCommand insertCmd;

            insertCmd = new MySqlCommand("insert into shared_story(story_id,message,image_name,time,longitude,latitude)"
                                         + "values('" + storyId + "','" + message + "','" + imageName + "','" + time + "','" + longitude + "','" + latitude + "')", myconn);
            insertCmd.ExecuteNonQuery();
        }
Ejemplo n.º 5
0
        /// <summary>
        ///
        /// </summary>
        /// <param name="id"></param>
        private void showTip(String id)
        {
            try
            {
                SharedStory story = DAO.query(id);

                if (story != null)
                {
                    mStory  = story;
                    message = story.Message;
                    time    = story.Time;

                    ML.Text = message;

                    String      imageName = story.ImageName;
                    model.Image image     = DAO.getImageByName(imageName);

                    if (image != null)
                    {
                        String imageCode = image.ImageCode;
                        if (imageCode != null && imageCode != "")
                        {
                            byte[] imageBuffer = Convert.FromBase64String(image.ImageCode);

                            MemoryStream ms = new MemoryStream(imageBuffer);
                            bitmap = (Bitmap)System.Drawing.Image.FromStream(ms);

                            picture.Image = bitmap;
                        }
                    }
                }
            }
            catch
            {
            }
        }
Ejemplo n.º 6
0
        ////private string sMxdPath = Application.StartupPath;
        ////private List<ILayer> plstLayers = null;
        ////private IPoint m_PointPt = null;
        //private INewEnvelopeFeedback pNewEnvelopeFeedback;
        //private IPoint m_MovePt = null;
        //private IMap pMap = null;
        //private IActiveView pActiveView = null;
        //private IFeatureLayer pCurrentLyr = null;
        //private IEngineEditor pEngineEditor = null;
        //private IEngineEditTask pEngineEditTask = null;
        //private IEngineEditLayers pEngineEditLayers = null;


        /// <summary>
        /// 处理来自服务器的消息
        /// </summary>
        /// <param name="message"></param>
        /// <returns></returns>
        private String handleMessage(String message)
        {
            try
            {
                Datagram data       = JsonConvert.DeserializeObject <Datagram>(message);
                String   request    = data.Request;
                String   type       = data.Type;
                String   jsonStream = data.JsonStream;

                Debug.WriteLine("request=" + request);
                Debug.WriteLine("type=" + type);

                if (request == "sendStory" && type == "story")
                {
                    SharedStory story = JsonConvert.DeserializeObject <SharedStory>(jsonStream);
                    DAO.insert(story);

                    IFeature feature = MapManager.addPointInLayer(axMap, story);

                    return("TURE");
                }
                else if (request == "sendImage" && type == "image")
                {
                    model.Image image = JsonConvert.DeserializeObject <model.Image>(jsonStream);
                    DAO.insertImage(image);

                    return("TURE");
                }

                if (request == "getStory" && type == "story")
                {
                    SharedStory story     = JsonConvert.DeserializeObject <SharedStory>(jsonStream);
                    double      longitude = Convert.ToDouble(story.Longitude);
                    double      latitude  = Convert.ToDouble(story.Latitude);

                    IFeature feature = MapManager.addPointInLayer(axMap, "invisibleLayer", longitude, latitude);
                    ILayer   layer   = MapManager.getLayerByName(axMap.Map, "invisibleLayer");

                    if (feature != null && layer != null)
                    {
                        mMap.ClearSelection();
                        mMap.SelectFeature(layer, feature);

                        mFeatures = MapManager.createBuffer(axMap, bufferSize, "story", true);
                        List <String> ids = new List <string>();

                        for (int i = 0; i < mFeatures.Count; i++)
                        {
                            String id = MapManager.getFieldByName(mFeatures[i], "story_id") as String;
                            ids.Add(id);
                        }
                        //删除添加的点
                        MapManager.deleteAllFeature("invisibleLayer", axMap);

                        List <SharedStory> stories = DAO.query(ids);

                        String jsonData = DatagramPaser.toJsonDatagram(stories, "stories", "respone");

                        Debug.WriteLine(jsonData);

                        return(jsonData);
                    }
                }
                else if (request == "getImage" && type == "image")
                {
                    String imageName = jsonStream;

                    model.Image image      = DAO.getImageByName(imageName);
                    String      jsonString = JsonConvert.SerializeObject(image);

                    return(jsonString);
                }
            }
            catch
            {
                Debug.WriteLine("error!!");
            }


            return("FALSE");
        }