- 博客(95)
- 资源 (1)
- 收藏
- 关注
原创 GDAL-影像按照波段进行切片(c#)
public void SplitImagery(string pFilePath) { Dataset pDataset = Gdal.Open(pFilePath, Access.GA_ReadOnly); double[] pGeoTransform = new double[6]; pDataset.GetGeoTransform(pGeoTransform); string...
2020-06-30 09:20:23
948
原创 为FeatureClass添加字段
/// <summary> /// 在为shp文件添加字段时,需要注意字段长度不能过10 /// </summary> /// <param name="pFeatureClass"></param> /// <param name="pFieldName">...
2019-04-30 15:14:39
1003
原创 输出FeatureClass中的属性表
/// <summary> /// 输出要素类的属性表 /// </summary> /// <param name="pFeatureClass"></param> /// <param name="filePath"></param> ...
2019-04-30 15:10:23
606
原创 将图层添加到对应的图层树的节点当中
/// <summary> /// 往目标节点中添加图层节点 /// </summary> /// <param name="pLayer"></param> /// <param name="GroupLayerComboTree"></param&...
2019-04-30 15:08:19
390
原创 根据IFeatureLayer在Map中的渲染颜色设置对应的DonetBar中Listbox中Layer项的符号
/// <summary> /// 显示Listbox 的layer数据 /// </summary> /// <param name="pLayer"></param> /// <param name="FeatureLayerListBoxAdv">&l...
2019-04-30 15:06:00
459
原创 添加图层组
/// <summary> /// 添加图层组 /// </summary> /// <param name="axMapcontrol"></param> /// <param name="groupName"></param> ...
2019-04-30 15:01:50
341
原创 获取图层所在的图层组
/// <summary> /// 递归返回图层所在的图层组 /// </summary> /// <param name="pGroupLayer"></param> /// <param name="pLayer"></param> ...
2019-04-30 15:00:54
465
原创 设置图层组中图层的显隐
/// <summary> /// 设置图层组的显隐 /// </summary> /// <param name="pLayer"></param> /// <param name="visible"></param> publ...
2019-04-30 14:59:47
1313
原创 为FeatureClass的特定属性赋值
public static void AssignFieldValue(IFeatureClass pFeatureClass, int[] fields, List<object>[] values) { ITable pTable = pFeatureClass as ITable; ICursor ...
2019-04-30 14:54:01
424
原创 Postgresql踩坑记
1:通过postgis插件导入shape文件后,原来的空间列不再是shape字段了,变成了geom字段。2:postgresql是区分大小写的,当不加双引号时,默认回去找大写的表或者列,如果没有小写,只有大写,则会报错。如果需要找到大写的表或者列,则需要加双引号。3:postgresql没有dual表,所以需要新建一个名为dual的视图 CREATE OR REPLACE VI...
2018-12-20 15:30:41
1826
原创 JS控制页面全屏(兼容IE10 谷歌 火狐)
之前有一个项目可能需要全屏展示图标信息,所以在网上找到一段代码,如下: var element = document.documentElement; if (!$('body').hasClass("full-screen")) { $('body').addClass("full-screen"); $('#alarm-fullscreen-tog...
2018-12-12 15:42:32
2875
2
原创 SpringMVC中的MultipartResolver,LocaleResolver
用于解析multipart request的策略接口。最经典的实现是CommonsMultipartResolver。这个MultipartResolver的bean的名称是multipartResolver,默认是没有的,所以涉及到文件上传需要配置这个bean到ApplicationContext中 MultipartHttpServletRequest resolveMultipar...
2018-08-03 14:44:16
208
原创 SpringMVC中的View
如果用户没有提供视图或者视图名称,那么配置好的RequestToViewNameTranslator将会将当前的请求转换成一个视图名称。这个转换器对应的bean 名称是viewNameTranslator。其默认是DefaultRequestToViewNameTranslator。View负责渲染内容,公开model。一个单个的视图会公开出多个model属性。 视图实现之间区别很大。一般...
2018-08-03 14:21:33
1929
原创 SpringMVC中的ViewResolver
ViewResolver将符号化的视图名称解析成视图对象,默认的视图解析器是InternalResourceViewResolver;有三种解析器InternalResourceViewResolver ResourceBundleViewResolver XmlViewResolverView resolveViewName(String viewName, Locale loc...
2018-08-03 14:00:15
241
原创 SpringMVC中的HandlerExceptionResolver
接口的实现能够解决在处理器映射、执行过程中发生的异常,通过情况下是提供错误视图。错误视图与JSP的错误页面类似;提供了一个唯一的待实现的方法 ModelAndView resolveException( HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex);...
2018-08-03 13:49:21
282
原创 SpringMvc中的HandlerAdapter
MVC框架的接口,允许参数化核心的mvc流程接口必须被实现,用于每个处理器类型处理一种请求。这个接口使得DispatcherServlet能够无限制的扩展。DispathcerServlet通过这个接口访问所有已经安装好的handler.,意味着他没有包含特定于某个处理类型的代码。public interface HandlerAdapter { /** * 判断是否支持给...
2018-08-03 12:21:25
1090
原创 SpringMVC中的HandlerMapping
这是一个定义请求与处理器对象之间映射关系的接口。这个类能够被应用程序开发人员实现,但其实这个不是必要的,因为框架本身包含了BeanNameUrlHandlerMapping和SimpleUrlHandlerMapping,DefaultAnnotationHandlerMapping。前面那个是默认的,在application context中没有注册HandlerMapping bean的情...
2018-08-03 11:48:08
804
原创 Spring 的WebApplicationContext是如何被实例化的
ContextLoaderListener是ServletContextListener的一种实现,这个接口的作用就是监听ServletContext的生命周期内发生的事件,包括其初始化和销毁public interface ServletContextListener extends EventListener { /** * Receives notification ...
2018-08-02 22:41:38
507
原创 SpringMVC中DispatcherServlet的doService->doDispatch方法
我们知道Servlet的service方法是被Servlet容器调用的,这个时机是发生的有客户端向servlet请求服务时调用的,而这些都将其委托给DispatcherServlet的doDispatch方法。我们查看其关键代码。 processedRequest = checkMultipart(request); multipartRequestParsed = processedR...
2018-05-18 15:24:29
3466
1
原创 SpringMvc中的RequestMappingHandlerAdapter初始化源码阅读
RequestMappingHandlerAdapter中有大量的属性用于对于Request的解析属性,它通俗的讲就是对请求参数和返回值进行解析,当然它也只是一个适配器,具体的实现在由它的一些属性决定。 RootBeanDefinition handlerAdapterDef = new RootBeanDefinition(RequestMappingHandlerAdapter.class)...
2018-05-18 11:38:33
824
原创 SpringMvc的RequestMappingHandlerMapping初始化源码阅读
首先,我们在AnnotationDrivenBeanDefinitionParser中会实例化一个RequestMappingHandlerMapping实例,然后向Spring容器中注册这个实例。查看其父类可知,实现了InitializingBean接口。所以在实例化后会调用afterPropertiesSet方法public abstract class AbstractHandlerMeth...
2018-05-18 11:11:13
856
原创 SpringMvc的AnnotationDrivenBeanDefinitionParser的ContentNegotiationManager
在parse方法中 RuntimeBeanReference contentNegotiationManager = getContentNegotiationManager(element, source, parserContext); //获取设置的ContentNegotiationManager对象 RootBeanDefinition handle...
2018-05-17 16:53:00
323
原创 Spring对于xml配置文件的解析
当spring在注册BeanDefinition的过程中,会解析自定义的元素BeanDefinitionParserDelegate public BeanDefinition parseCustomElement(Element ele, BeanDefinition containingBd) { String namespaceUri = getNamespaceURI(ele); ...
2018-05-17 14:10:57
258
原创 SpringMvc杂记
1:ServletContext定义了一组Servlet和Servlet容器进行交互的方法。2:一个web应用程序有一个ServletContext.3:如果web应用程序是一个分布式的,ServletContext则不能作为一个全局的数据共享的位置,考虑选择其他的数据源。4:ServletContext被包含一个ServletConfig对象中,这个对象是在Servlet被初始化的时候Web服务...
2018-05-17 11:34:04
149
原创 Spring如何通过定义在META-INF/spring.handlers中的属性进行配置文件解析
毫无疑问这些东西肯定在Spring的入口函数refresh()之中进行的。AbstractApplicationContextConfigurableListableBeanFactory beanFactory = obtainFreshBeanFactory();//获得一个新的beanFactory,并进行一些相关的load protected ConfigurableListableBea...
2018-05-16 18:09:15
4543
原创 Spring是如何对bean进行初始化的。
简单来说在Spring的ApplicationContext被调用了refresh方法后,就会获取刷新后的BeanFactory,在刷新后就对将配置文件进行解析,生成BeanDefinition,并用其BeanName作为key,BeanDefinition为value,放入初始化好的DefaultListableBeanFactory的beanDefinitionMap中存放。BeanName作...
2018-05-16 15:38:05
335
原创 BeanDefinitions如何被加载到BeanFactory中的
我们知道,在wac.refresh()中对beanFactory进行刷新操作,在刷新操作里会对BeanDefinition进行加载,调用loadBeanDefinitions;loadBeanDefinitions(beanFactory); protected void loadBeanDefinitions(DefaultListableBeanFactory beanFactory) thr...
2018-05-16 14:42:34
655
原创 DefaultListableBeanFactory如何被实例化
我们知道在WebApplicationContext初始化的时候需要进行Refresh操作,即调用refresh方法。wac.refresh();在这个过程中会对BeanFactory进行刷新。 // Tell the subclass to refresh the internal bean factory.告诉其子类刷新内部的bean factory ConfigurableList...
2018-05-16 11:47:54
1443
原创 SpringMvc中是如何对策略进行初始化的
我们对DispatcherServlet进行初始化的过程中,会有对他进行监听器的注册操作。wac.addApplicationListener(new SourceFilteringListener(wac, new ContextRefreshListener())); public void addApplicationListener(ApplicationListener<?>...
2018-05-15 17:56:08
276
原创 SpringMvc中DispatcherServlet的init方法阅读
Web容器构造DispatcherServlet完成之后,调用Servlet的init方法 public void init(ServletConfig config) throws ServletException { this.config = config; this.init(); }这个方法将Web容器传入的ServletConfig赋予config属性,并调...
2018-05-15 17:26:28
1078
原创 Spring中如何实例化一个WebApplicationContext.
在web应用启动时,会去web.xml读取配置信息,并由Web容器实例化ContextLoaderListener。当ServletContext被初始化创建完毕后,会调用监听里的contextInitialized方法, public void contextInitialized(ServletContextEvent event) { this.contextLoader = creat...
2018-05-15 15:22:01
774
原创 AOF策略译文
############################## APPEND ONLY MODE ################################ By default Redis asynchronously dumps the dataset on disk. This mode is# good enough in many applications, but an is...
2018-04-11 17:37:19
284
原创 Netty中关于引用计数的retain()/release()方法原子特性的关键compareAndSet
我们知道,实现了ReferenceCounted接口的类的对象都会在引用计数的作用下进行显式的回收。当引用计数为0时,这个对象就不能再被访问了。而这个接口提供了两个方法给我们来操作引用计数。 retain()release()而这个操作是必须保证是在多线程的情况下是安全的,所以他们的操作都是原子的。以retain为例 private ReferenceCounted retain0(int ...
2018-04-07 23:22:41
3740
原创 Netty中ByteBuf的回收机制ReferenceCounted
Netty中ByteBuf采用引用计数的方式进行资源的回收,当ByteBuf中的引用计数值为0时,Netty则不允许应用程序采用任何的方式对这个资源进行访问。它通过实现ReferenceCounted维护引用计数。package io.netty.util;/** * A reference-counted object that requires explicit deallocation...
2018-04-07 22:47:27
983
原创 关于JDK中的ByteBuffer与Netty中的ByteBuf的对比
JDK中ByteBuffer的缺点只是用一个标志位position来进行读写标记,读写操作要使用flip方法进行切换,不太友好。因为ByteBuffer中的实际存储数据的数组是使用final修饰符修饰的,所以不可以 在原来buffer的基础上动态扩容或者缩小。如果需要扩容,需要另外新建一个ByteBuffer,并将旧的ByteBuffer里面的数组复制到已经扩容的ByteBuffer. final...
2018-04-07 22:28:34
810
原创 Netty在注册完之后的bind方法所产生的作用
我们在分析完initAndRegister方法之后,随后就进入了bind端口号的操作了。 abstract void init(Channel channel) throws Exception; private static void doBind0( final ChannelFuture regFuture, final Channel channel...
2018-04-05 20:20:58
763
原创 我们在接收一个新的连接请求之后是如何生成一个新的socketchannel并注册读写事件的呢
我们知道,在NioEventLoop当中,我们会循环处理得到的selectedKeys,调用的方法 private void processSelectedKey(SelectionKey k, AbstractNioChannel ch) {其中有代码会去处理Accept事件 // Also check for readOps of 0 to workaround poss...
2018-04-05 11:34:55
1548
原创 我们在调用EventLoop.execute()方法时究竟做了一些什么工作
我们在研究注册过程中的源码可以看到这样的一段代码 eventLoop.execute(new Runnable() { @Override public void run() { register0(promi...
2018-04-04 17:35:07
1912
2
原创 Netty中的EventExecutorChooserFactory
我们在研究Netty对channel的注册实现时 ChannelFuture regFuture = config().group().register(channel);其中config()方法返回ServerBootstrapConfig对象,其中带有ServerBootstrap的引用。private final ServerBootstrapConfig config = new Serv...
2018-04-04 11:31:25
797
原创 Netty中的ChannelPipeline及其实现
下面是ChannelPipeline的java doc文档的部分介绍/** * A list of {@link ChannelHandler}s which handles or intercepts inbound events and outbound operations of a * {@link Channel}. {@link ChannelPipeline} implemen...
2018-04-03 17:40:57
644
Cesium 3dtile 转换工具集
2019-01-02
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人