博客园 - 索夫特威尔
uuid:24b78886-0ed1-41c2-8670-e3f31dcf42c4;id=88799
2018-01-17T07:36:12Z
索夫特威尔
https://www.cnblogs.com/sillyemperor/
feed.cnblogs.com
https://www.cnblogs.com/sillyemperor/p/8260742.html
如何办理《网络预约出租汽车经营许可证》 - 索夫特威尔
网约车证全称《网络预约出租汽车经营许可证》是经营网约车业务的企业必须具备的资质证明,如果没有这个证书,就不能在当地(市县)进行网约车业务,否则将面临高额的罚款。PS:当然如果你很资深就另当别论了。办理过程其实很简单:原文:http://www.cnblogs.com/sillyemperor/p/8
2018-01-10T12:55:00Z
2018-01-10T12:55:00Z
索夫特威尔
https://www.cnblogs.com/sillyemperor/
【摘要】网约车证全称《网络预约出租汽车经营许可证》是经营网约车业务的企业必须具备的资质证明,如果没有这个证书,就不能在当地(市县)进行网约车业务,否则将面临高额的罚款。PS:当然如果你很资深就另当别论了。办理过程其实很简单:原文:http://www.cnblogs.com/sillyemperor/p/8 <a href="https://www.cnblogs.com/sillyemperor/p/8260742.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sillyemperor/p/4442590.html
Python装饰器(Decorator)简介 - 索夫特威尔
Python有许多出色的语言特性,装饰器(Decorator)便是其中一朵奇葩。先来看看一段代码:def deco1(f): print 'decorate 1' return fdef deco2(f): print 'decorate 2' return f@deco1@...
2015-04-24T13:47:00Z
2015-04-24T13:47:00Z
索夫特威尔
https://www.cnblogs.com/sillyemperor/
【摘要】Python有许多出色的语言特性,装饰器(Decorator)便是其中一朵奇葩。先来看看一段代码:def deco1(f): print 'decorate 1' return fdef deco2(f): print 'decorate 2' return f@deco1@... <a href="https://www.cnblogs.com/sillyemperor/p/4442590.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sillyemperor/p/3862179.html
扩展GeoServer数据源 - 索夫特威尔
今天我们来讲讲怎么扩展GeoServer(简称GS)的数据源。大家都知道,GS支持多种数据源,而且都提供了友好的界面供操作。下面我们就来简单介绍一下,如何把自定义的数据源增加到GS中,让我们可以在统一风格的界面上愉快的操作。要完成这个任务,需要如下四个步骤(以矢量数据为例):1 创建一个类实现接口...
2014-07-23T00:52:00Z
2014-07-23T00:52:00Z
索夫特威尔
https://www.cnblogs.com/sillyemperor/
【摘要】今天我们来讲讲怎么扩展GeoServer(简称GS)的数据源。大家都知道,GS支持多种数据源,而且都提供了友好的界面供操作。下面我们就来简单介绍一下,如何把自定义的数据源增加到GS中,让我们可以在统一风格的界面上愉快的操作。要完成这个任务,需要如下四个步骤(以矢量数据为例):1 创建一个类实现接口... <a href="https://www.cnblogs.com/sillyemperor/p/3862179.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sillyemperor/p/3853772.html
如何实现复杂的导航功能 - 索夫特威尔
本文要求读者具备如下知识和技术背景:1 熟悉Java开发,知道如何正确的编译运行Java代码;2 知道GIS的基本概念,知道地图导航的基本概念;3 对GeoTools有一定的认识。一开始先来明确我们的任务:在基本的路径查询基础上1 实现单行道限制2 实现左右拐弯限制3 实现动态路况限制4 选择最短距...
2014-07-18T08:16:00Z
2014-07-18T08:16:00Z
索夫特威尔
https://www.cnblogs.com/sillyemperor/
【摘要】本文要求读者具备如下知识和技术背景:1 熟悉Java开发,知道如何正确的编译运行Java代码;2 知道GIS的基本概念,知道地图导航的基本概念;3 对GeoTools有一定的认识。一开始先来明确我们的任务:在基本的路径查询基础上1 实现单行道限制2 实现左右拐弯限制3 实现动态路况限制4 选择最短距... <a href="https://www.cnblogs.com/sillyemperor/p/3853772.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sillyemperor/archive/2013/01/02/2842235.html
使用GeoTools遇到的两个小问题:nvarchar类型字段无法识别,主键字段无法识别 - 索夫特威尔
问题一,无法识别nvarchar字段。版本,2.7.4及以前。问题描述:数据库中定义了nvarchar字段,但是GT没有识别。原因是2.7.4及其之前版本的Sqlserver扩展忽略了nvarchar类型,导致程序获得数据库字段时忽略该类型字段。这个问题已经被提交并且得到解决,具体见http://jira.codehaus.org/browse/GEOT-3609。解决方法:自己手动增加识别代码,见org.geotools.jdbc.SQLDialect.registerSqlTypeToClassMappings(Map<Integer, Class<?>>),或者下
2013-01-02T08:55:00Z
2013-01-02T08:55:00Z
索夫特威尔
https://www.cnblogs.com/sillyemperor/
【摘要】问题一,无法识别nvarchar字段。版本,2.7.4及以前。问题描述:数据库中定义了nvarchar字段,但是GT没有识别。原因是2.7.4及其之前版本的Sqlserver扩展忽略了nvarchar类型,导致程序获得数据库字段时忽略该类型字段。这个问题已经被提交并且得到解决,具体见http://jira.codehaus.org/browse/GEOT-3609。解决方法:自己手动增加识别代码,见org.geotools.jdbc.SQLDialect.registerSqlTypeToClassMappings(Map<Integer, Class<?>>),或者下 <a href="https://www.cnblogs.com/sillyemperor/archive/2013/01/02/2842235.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sillyemperor/archive/2012/02/16/2354243.html
WebGIS最佳实践4 使用pgRouting实现最佳路径搜索 - 索夫特威尔
下载代码 我在WebGIS最佳实践-2 在WebGIS程序中实现路径分析中提到过pgRouting,现在来看看这头小象能给我们带来些什么。 先上效果图给大家鼓鼓劲。:》 为了实现以上效果我用jsp和openlayers编写了服务端和客户端,但是本文的重点是介绍pgRouting所以不在这里详细介绍这些这些代码了,大家可以从下载包中找到这两个文件。要使用pgRouting得先安装,我假设大家已经安装了Postgresql和PostGIS。 从这里下载合适的二进制包,我下的是Windows版本,解压缩后把Lib下面的动态库复制到Postgresql的bin目录下,把Share...
2012-02-16T06:37:00Z
2012-02-16T06:37:00Z
索夫特威尔
https://www.cnblogs.com/sillyemperor/
【摘要】下载代码 我在WebGIS最佳实践-2 在WebGIS程序中实现路径分析中提到过pgRouting,现在来看看这头小象能给我们带来些什么。 先上效果图给大家鼓鼓劲。:》 为了实现以上效果我用jsp和openlayers编写了服务端和客户端,但是本文的重点是介绍pgRouting所以不在这里详细介绍这些这些代码了,大家可以从下载包中找到这两个文件。要使用pgRouting得先安装,我假设大家已经安装了Postgresql和PostGIS。 从这里下载合适的二进制包,我下的是Windows版本,解压缩后把Lib下面的动态库复制到Postgresql的bin目录下,把Share... <a href="https://www.cnblogs.com/sillyemperor/archive/2012/02/16/2354243.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sillyemperor/archive/2011/05/14/2045914.html
WebGIS最佳实践-3 为GeoServer编写漂亮的Style - 索夫特威尔
凡是用过的人都知道,在GeoServer里面创建美观的Style是一件痛苦的事(如果有人觉得是种享受请不要反驳,当我哗众取宠就是了)。GeoServer直接支持OGC的SLD作为样式(Style)的描述。SLD是用XML描述的,而XML是由许多相互嵌套的“<"和">"搭建的。我很不喜欢手动编写XML,尤其是从空白文件开始编写,这是其一。其二,在GeoServer的Style页面编写Style无法立刻看到效果,经常需要重复几个枯燥的动作才能看到,大大降低了工作效率。这在“所见即所得”肆虐的年代,简直就是大逆不道。本文中我会把我配图的方法和常用的工具拿出来
2011-05-14T08:25:00Z
2011-05-14T08:25:00Z
索夫特威尔
https://www.cnblogs.com/sillyemperor/
【摘要】凡是用过的人都知道,在GeoServer里面创建美观的Style是一件痛苦的事(如果有人觉得是种享受请不要反驳,当我哗众取宠就是了)。GeoServer直接支持OGC的SLD作为样式(Style)的描述。SLD是用XML描述的,而XML是由许多相互嵌套的“<"和">"搭建的。我很不喜欢手动编写XML,尤其是从空白文件开始编写,这是其一。其二,在GeoServer的Style页面编写Style无法立刻看到效果,经常需要重复几个枯燥的动作才能看到,大大降低了工作效率。这在“所见即所得”肆虐的年代,简直就是大逆不道。本文中我会把我配图的方法和常用的工具拿出来 <a href="https://www.cnblogs.com/sillyemperor/archive/2011/05/14/2045914.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sillyemperor/archive/2011/04/26/2028863.html
WebGIS最佳实践-2 在WebGIS程序中实现路径分析 - 索夫特威尔
案例代码下载 问题:如何在WebGIS程序中实现路径(Route)分析。 方案: 先来简单介绍下路径分析,我们经常遇到这样的问题:要去一个什么地方,却不知道怎么走,于是只好问人家,人家会告诉你,向前走多远然后拐弯再走多远,看见个什么建筑过街就到了。这种描述很普遍但是说实话对于空间想象不好的人理解起来实在费劲,所以我往往还要问好几个人才能找到。后来有了Google地图,问题就简单多了,只需点两个点,它就会返回一条很明确的路线,一目了然,虽然有时会有点小错误,但是已经不影响大局了。我们在哪里,该怎么走,这附近有什么我们感兴趣的地方,等等一系列这类问题都是空间位置服务要解决的。路径分析就是空间位置服
2011-04-26T02:26:00Z
2011-04-26T02:26:00Z
索夫特威尔
https://www.cnblogs.com/sillyemperor/
【摘要】案例代码下载 问题:如何在WebGIS程序中实现路径(Route)分析。 方案: 先来简单介绍下路径分析,我们经常遇到这样的问题:要去一个什么地方,却不知道怎么走,于是只好问人家,人家会告诉你,向前走多远然后拐弯再走多远,看见个什么建筑过街就到了。这种描述很普遍但是说实话对于空间想象不好的人理解起来实在费劲,所以我往往还要问好几个人才能找到。后来有了Google地图,问题就简单多了,只需点两个点,它就会返回一条很明确的路线,一目了然,虽然有时会有点小错误,但是已经不影响大局了。我们在哪里,该怎么走,这附近有什么我们感兴趣的地方,等等一系列这类问题都是空间位置服务要解决的。路径分析就是空间位置服 <a href="https://www.cnblogs.com/sillyemperor/archive/2011/04/26/2028863.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sillyemperor/archive/2011/04/15/2017025.html
在GeoServer中使用“宋体” - 索夫特威尔
有时候需要在SLD中使用中文字体,例如“宋体”,如果采用默认的SLD,会发现字符集错误,这时可以把SLD的文件头改成<?xmlversion="1.0" encoding="gb2312"?>就OK了。 就这么简单
2011-04-15T05:17:00Z
2011-04-15T05:17:00Z
索夫特威尔
https://www.cnblogs.com/sillyemperor/
【摘要】有时候需要在SLD中使用中文字体,例如“宋体”,如果采用默认的SLD,会发现字符集错误,这时可以把SLD的文件头改成<?xmlversion="1.0" encoding="gb2312"?>就OK了。 就这么简单 <a href="https://www.cnblogs.com/sillyemperor/archive/2011/04/15/2017025.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sillyemperor/archive/2011/04/14/2015644.html
WebGIS最佳实践-1 为GeoServer增加GP(Geometry Processing)服务 - 索夫特威尔
源代码下载起源:QQ群中一个朋友问我怎么把GP服务增加到GeoServer中,当他描述他的需求时我脑海里大概就有了实现方案,但是要在QQ里把这个方案说清楚确实不太容易,于是我萌生了写一篇文章的念头。进而,我决定开始一个系列就叫“WebGIS最佳实践”,这里当然没有什么“最佳”,这里只有我遇到的,别人遇到的,或者我自己的突发奇想的关于WebGIS的问题,然后我会提供一个解决方案,这个方案可能是我设想的,也可能是别人提出我整理的。如果是别人的我会尽量注明出处。这个系列我会不定期更新,谢谢关注。问题:怎么把长度度量(Length)和缓冲区(Buffer)操作增加到GeoServer中,怎么调用它。方
2011-04-14T04:52:00Z
2011-04-14T04:52:00Z
索夫特威尔
https://www.cnblogs.com/sillyemperor/
【摘要】源代码下载起源:QQ群中一个朋友问我怎么把GP服务增加到GeoServer中,当他描述他的需求时我脑海里大概就有了实现方案,但是要在QQ里把这个方案说清楚确实不太容易,于是我萌生了写一篇文章的念头。进而,我决定开始一个系列就叫“WebGIS最佳实践”,这里当然没有什么“最佳”,这里只有我遇到的,别人遇到的,或者我自己的突发奇想的关于WebGIS的问题,然后我会提供一个解决方案,这个方案可能是我设想的,也可能是别人提出我整理的。如果是别人的我会尽量注明出处。这个系列我会不定期更新,谢谢关注。问题:怎么把长度度量(Length)和缓冲区(Buffer)操作增加到GeoServer中,怎么调用它。方 <a href="https://www.cnblogs.com/sillyemperor/archive/2011/04/14/2015644.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sillyemperor/archive/2011/03/11/1981368.html
在Mapnik中显示中文(网上资料整理) - 索夫特威尔
前提:数据源不能是Shapefile。步骤:1 下载字体2 把字体解压缩到Mapnik的字体文件夹下,我的是“C:\mapnik-0.7.1\lib\mapnik\fonts”3 修改Map文件,在里面增加这样一段1<FontSetname="my-fonts">2<Fontface_name="DejaVuSansBook"/>3<Fontface_name="unifontMedium"/>4</FontSet>4 把TextSymbolizer 中face_name=。。。换成fo
2011-03-11T05:51:00Z
2011-03-11T05:51:00Z
索夫特威尔
https://www.cnblogs.com/sillyemperor/
【摘要】前提:数据源不能是Shapefile。步骤:1 下载字体2 把字体解压缩到Mapnik的字体文件夹下,我的是“C:\mapnik-0.7.1\lib\mapnik\fonts”3 修改Map文件,在里面增加这样一段1<FontSetname="my-fonts">2<Fontface_name="DejaVuSansBook"/>3<Fontface_name="unifontMedium"/>4</FontSet>4 把TextSymbolizer 中face_name=。。。换成fo <a href="https://www.cnblogs.com/sillyemperor/archive/2011/03/11/1981368.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sillyemperor/archive/2011/02/02/1945789.html
GeoServer源码解析和扩展 (四)文件系统 - 索夫特威尔
上一章我介绍了GeoServer的一些重要的资源以及它们的访问接口,现在来看看它们的保存形式。GeoServer的数据没有保存到数据库,而是文件系统,这让我们的学习轻松不少。默认情况下,GeoServer的数据都会放到一个叫“data_dir”的文件夹下面,虽然你可以自己设置这个文件夹的路径,但是它的内部结果是固定的,如下图 这是2.0.2版本的data_dir,从子目录的名称基本上能够猜测它的作用。“coverages”保存的是影像数据。“data”保存了矢量数据,基本上是Shapefile。“styles”保存的是样式文件,即“*.sld”文件。“workspaces”保存的是工作空间,.
2011-02-02T03:14:00Z
2011-02-02T03:14:00Z
索夫特威尔
https://www.cnblogs.com/sillyemperor/
【摘要】上一章我介绍了GeoServer的一些重要的资源以及它们的访问接口,现在来看看它们的保存形式。GeoServer的数据没有保存到数据库,而是文件系统,这让我们的学习轻松不少。默认情况下,GeoServer的数据都会放到一个叫“data_dir”的文件夹下面,虽然你可以自己设置这个文件夹的路径,但是它的内部结果是固定的,如下图 这是2.0.2版本的data_dir,从子目录的名称基本上能够猜测它的作用。“coverages”保存的是影像数据。“data”保存了矢量数据,基本上是Shapefile。“styles”保存的是样式文件,即“*.sld”文件。“workspaces”保存的是工作空间,. <a href="https://www.cnblogs.com/sillyemperor/archive/2011/02/02/1945789.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sillyemperor/archive/2011/01/26/1933248.html
GeoServer源码解析和扩展 (三)结构篇 - 索夫特威尔
上一章我们通过实现一个服务对如何扩展GeoServer有了一定的了解,但是,对于为何要这样做并没有说明,本章我们重点来说说GeoServer的结构,下图来自GeoServer官网(希望没有侵权),它很好的揭示了GeoServer处理请求的全过程。 我们说GeoServer使用Spring框架来构建,这里就可以看到Spring的使用,虚线框中的Restlet就是用Spring引入系统的,每个服务包的“applicationContext.xml”文件里都包含了描述Route映射的信息,例如WMS就有如下片段: <bean id="wmsURLMapping" class
2011-01-26T13:13:00Z
2011-01-26T13:13:00Z
索夫特威尔
https://www.cnblogs.com/sillyemperor/
【摘要】上一章我们通过实现一个服务对如何扩展GeoServer有了一定的了解,但是,对于为何要这样做并没有说明,本章我们重点来说说GeoServer的结构,下图来自GeoServer官网(希望没有侵权),它很好的揭示了GeoServer处理请求的全过程。 我们说GeoServer使用Spring框架来构建,这里就可以看到Spring的使用,虚线框中的Restlet就是用Spring引入系统的,每个服务包的“applicationContext.xml”文件里都包含了描述Route映射的信息,例如WMS就有如下片段: <bean id="wmsURLMapping" class <a href="https://www.cnblogs.com/sillyemperor/archive/2011/01/26/1933248.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sillyemperor/archive/2011/01/11/1929420.html
GeoServer源码解析和扩展 (二)注册服务 - 索夫特威尔
先上源码下载 上一章我们介绍了GeoServer源码分析的必要性(这个就见仁见智了)以及诸项准备工作,并且在最后还给出了OWS请求处理流程的伪代码。 这一章我们来看看要注册自己的服务需要做哪些工作。假设我们要为一个物流公司GOODS开发系统,有一个功能是给定起点和终点的城市名称以及包裹的重量返回运费,运费的计算公式如下: 运费(¥) = 距离(千米) X 货物重量(千克) 我们需要知道城市间的距离,这就需要用到GIS系统(当然也可以不用),假设已经部署了GeoServer服务器(个人以为如果要求不高或者钱没有多到烫人,使用这种免费的软件足够用了)。基本设计是这样的,为GeoServer注册一.
2011-01-11T13:20:00Z
2011-01-11T13:20:00Z
索夫特威尔
https://www.cnblogs.com/sillyemperor/
【摘要】先上源码下载 上一章我们介绍了GeoServer源码分析的必要性(这个就见仁见智了)以及诸项准备工作,并且在最后还给出了OWS请求处理流程的伪代码。 这一章我们来看看要注册自己的服务需要做哪些工作。假设我们要为一个物流公司GOODS开发系统,有一个功能是给定起点和终点的城市名称以及包裹的重量返回运费,运费的计算公式如下: 运费(¥) = 距离(千米) X 货物重量(千克) 我们需要知道城市间的距离,这就需要用到GIS系统(当然也可以不用),假设已经部署了GeoServer服务器(个人以为如果要求不高或者钱没有多到烫人,使用这种免费的软件足够用了)。基本设计是这样的,为GeoServer注册一. <a href="https://www.cnblogs.com/sillyemperor/archive/2011/01/11/1929420.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sillyemperor/archive/2011/01/05/1926093.html
GeoServer源码解析和扩展 (一)基础篇 - 索夫特威尔
一 缘起 一直在使用GeoServer,从来没关心它的实现。也是GeoServer设计的实在太好,下载,安装,启动页面,根本不费力。这是其一,其二,GeoServer遵循OpenGIS的开放标准WMS,WFS,WCS,这3个标准涵盖了大部分WebGIS基础应用,一般情况下不太需要在服务端做什么开发了。 那么会不会有不一般的情况呢?如果直接用GeoServer实现业务级别的REST服务是不是会更高效呢?如果搞清楚它的结构遇到奇怪问题时是不是就不必到处求人了呢?如果,也许只是如果,有一天你自己不得不实现一个服务器,今天的学习是不是会有所帮助呢?除去以上原因,难道你就不想知道它是怎么工作的吗?好了,
2011-01-05T14:56:00Z
2011-01-05T14:56:00Z
索夫特威尔
https://www.cnblogs.com/sillyemperor/
【摘要】一 缘起 一直在使用GeoServer,从来没关心它的实现。也是GeoServer设计的实在太好,下载,安装,启动页面,根本不费力。这是其一,其二,GeoServer遵循OpenGIS的开放标准WMS,WFS,WCS,这3个标准涵盖了大部分WebGIS基础应用,一般情况下不太需要在服务端做什么开发了。 那么会不会有不一般的情况呢?如果直接用GeoServer实现业务级别的REST服务是不是会更高效呢?如果搞清楚它的结构遇到奇怪问题时是不是就不必到处求人了呢?如果,也许只是如果,有一天你自己不得不实现一个服务器,今天的学习是不是会有所帮助呢?除去以上原因,难道你就不想知道它是怎么工作的吗?好了, <a href="https://www.cnblogs.com/sillyemperor/archive/2011/01/05/1926093.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sillyemperor/archive/2010/06/27/1766218.html
Javascript prototype 元语言编程 - 索夫特威尔
昨天发了一篇小文Javascript 匿名函数的一种应用:封装,没想到来自Tony Zhou的第一个回复就把我带入到Javascript的元编程领域。我以前使用过的语言中Python和lua是支持元编程的。他们都使用了一种类似元表的结构来实现元编程。js也有同样的机制,尝试之后发现,一点都不逊色。而js的元表就是prototype。先来看一段代码: function A(){this.x = 10;this.add = function(s){ this.x += s; }}a1 = new A();alert(a1.x)//output 10a1.add(10)alert(a1.x)//ou
2010-06-27T13:24:00Z
2010-06-27T13:24:00Z
索夫特威尔
https://www.cnblogs.com/sillyemperor/
【摘要】昨天发了一篇小文Javascript 匿名函数的一种应用:封装,没想到来自Tony Zhou的第一个回复就把我带入到Javascript的元编程领域。我以前使用过的语言中Python和lua是支持元编程的。他们都使用了一种类似元表的结构来实现元编程。js也有同样的机制,尝试之后发现,一点都不逊色。而js的元表就是prototype。先来看一段代码: function A(){this.x = 10;this.add = function(s){ this.x += s; }}a1 = new A();alert(a1.x)//output 10a1.add(10)alert(a1.x)//ou <a href="https://www.cnblogs.com/sillyemperor/archive/2010/06/27/1766218.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sillyemperor/archive/2010/06/26/1765956.html
Javascript匿名函数的一种应用:封装 - 索夫特威尔
在一些Javascript库中可以看见这种写法: (function(){ //所有库代码代码 })(); 说实话,对于js初学者的我来说。这个东西太吓人了,在这些JS库中,这个函数基本上把整个库的所有代码全括起来了,这种写法完全超越了我的常识。难道不应该好好的划分一下吗,难道不应该体现出层次和功能划分吗,怎么会一个函数搞定呢。我一开始完全不敢去细想它的道理。直到使用JS一段时间后,某一天一位同事在闲聊时说起了这个问题,我才知道这个叫匿名函数。匿名函数我并不陌生,C#,Python,Lua中都有这个咚咚。我到网上去查了一下,介绍文章很多,也很详细,但是我心头的疑问却没有得到解决:为什么要这样.
2010-06-26T15:35:00Z
2010-06-26T15:35:00Z
索夫特威尔
https://www.cnblogs.com/sillyemperor/
【摘要】在一些Javascript库中可以看见这种写法: (function(){ //所有库代码代码 })(); 说实话,对于js初学者的我来说。这个东西太吓人了,在这些JS库中,这个函数基本上把整个库的所有代码全括起来了,这种写法完全超越了我的常识。难道不应该好好的划分一下吗,难道不应该体现出层次和功能划分吗,怎么会一个函数搞定呢。我一开始完全不敢去细想它的道理。直到使用JS一段时间后,某一天一位同事在闲聊时说起了这个问题,我才知道这个叫匿名函数。匿名函数我并不陌生,C#,Python,Lua中都有这个咚咚。我到网上去查了一下,介绍文章很多,也很详细,但是我心头的疑问却没有得到解决:为什么要这样. <a href="https://www.cnblogs.com/sillyemperor/archive/2010/06/26/1765956.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sillyemperor/archive/2009/12/12/1622506.html
养成重构的习惯有多重要 - 索夫特威尔
身为一个维护人员,我每天的工作就是研究产品的代码,修正各种bug,或者添加各种新功能。Martin Fowler在《重构》一书中使用了一个隐喻,“坏味道(bad smell)”。用这个隐喻来形容我目前的处境,那就是我正在粪坑里挣扎。这里充斥着“Copy/Past/Modify”而来的代码。为了实现一个功能而随心所欲添加的成员变量。长达一两千行的函数。几万行的类。到处都是public的成员变量。丰富多彩的编程风格。 这个程序运行起来很漂亮,用户也很满意(据说)。我想作为用户,是不需要关心代码如何如何的。作为老板也是不需要关心代码如何如何的(虽然他声称他很在乎)。那么正真关心代码的人是谁呢,我想.
2009-12-12T06:59:00Z
2009-12-12T06:59:00Z
索夫特威尔
https://www.cnblogs.com/sillyemperor/
【摘要】身为一个维护人员,我每天的工作就是研究产品的代码,修正各种bug,或者添加各种新功能。Martin Fowler在《重构》一书中使用了一个隐喻,“坏味道(bad smell)”。用这个隐喻来形容我目前的处境,那就是我正在粪坑里挣扎。这里充斥着“Copy/Past/Modify”而来的代码。为了实现一个功能而随心所欲添加的成员变量。长达一两千行的函数。几万行的类。到处都是public的成员变量。丰富多彩的编程风格。 这个程序运行起来很漂亮,用户也很满意(据说)。我想作为用户,是不需要关心代码如何如何的。作为老板也是不需要关心代码如何如何的(虽然他声称他很在乎)。那么正真关心代码的人是谁呢,我想. <a href="https://www.cnblogs.com/sillyemperor/archive/2009/12/12/1622506.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sillyemperor/archive/2009/12/03/1616042.html
多边形面上一点的算法 - 索夫特威尔
在GIS中Polygon可以是凹多边形,而且还可以带孔,一般我们把多边形的外轮廓叫做外环(Exterior Ring)把孔叫做内环(Interior Ring)。一个多边形必须且只能有一个外环,可以有若干个内环。所谓多边形上一点(Point On Surface)就是指一个必须落在多边形面上而不是空白处(凹多边形的凹口处和带孔多边形的孔洞里)的点。如下图 很多时候我们需要获得这样的点,例如给多边形加标注时,我们不希望标注显示在多边形的外面。 获得面上点的方法如下: 首先获得一个种子点,一般是多边形的几何中心。然后以此点做横线与多边形的所有环相交,将交点以X分量从左向右排序。此时的交点一定是如下
2009-12-03T03:28:00Z
2009-12-03T03:28:00Z
索夫特威尔
https://www.cnblogs.com/sillyemperor/
【摘要】在GIS中Polygon可以是凹多边形,而且还可以带孔,一般我们把多边形的外轮廓叫做外环(Exterior Ring)把孔叫做内环(Interior Ring)。一个多边形必须且只能有一个外环,可以有若干个内环。所谓多边形上一点(Point On Surface)就是指一个必须落在多边形面上而不是空白处(凹多边形的凹口处和带孔多边形的孔洞里)的点。如下图 很多时候我们需要获得这样的点,例如给多边形加标注时,我们不希望标注显示在多边形的外面。 获得面上点的方法如下: 首先获得一个种子点,一般是多边形的几何中心。然后以此点做横线与多边形的所有环相交,将交点以X分量从左向右排序。此时的交点一定是如下 <a href="https://www.cnblogs.com/sillyemperor/archive/2009/12/03/1616042.html" target="_blank">阅读全文</a>
https://www.cnblogs.com/sillyemperor/archive/2009/10/22/1588219.html
开放GIS标准OGC之路(4)之 解密Filter - 索夫特威尔
Filter是一中语言,一种XML实现的语言,这就使得它非常适合于分布式系统。我们接触过的OWS服务都不同程度的使用到它。SLD用它来实现复杂的Rule选择。WFS在所有需要定位操作对象的地方都会使用Filter。这一章我们换一种讨论的方式,我不想再罗列乏味的Tag,然后加上翻译过来的解说。我们应该实实在在的实现一个程序,在实现的过程中完成我们的讨论。 前面的章节我们一直维护着一个WMS服务器“ShapeMapServer”,刚开始我并没有把它当回事,我只是想把它作为一个范例来使用,但是随着话题的深入,这个范例也注定逐渐复杂,功能也慢慢丰富起来。这一章我们将一起来面对这个程序,我们一起来为他增
2009-10-22T09:42:00Z
2009-10-22T09:42:00Z
索夫特威尔
https://www.cnblogs.com/sillyemperor/
【摘要】Filter是一中语言,一种XML实现的语言,这就使得它非常适合于分布式系统。我们接触过的OWS服务都不同程度的使用到它。SLD用它来实现复杂的Rule选择。WFS在所有需要定位操作对象的地方都会使用Filter。这一章我们换一种讨论的方式,我不想再罗列乏味的Tag,然后加上翻译过来的解说。我们应该实实在在的实现一个程序,在实现的过程中完成我们的讨论。 前面的章节我们一直维护着一个WMS服务器“ShapeMapServer”,刚开始我并没有把它当回事,我只是想把它作为一个范例来使用,但是随着话题的深入,这个范例也注定逐渐复杂,功能也慢慢丰富起来。这一章我们将一起来面对这个程序,我们一起来为他增 <a href="https://www.cnblogs.com/sillyemperor/archive/2009/10/22/1588219.html" target="_blank">阅读全文</a>