go --计算地球上两个坐标点(经度,纬度)之间距离sql函数 --作者:lordbaby --整理:www.aspbc.com CREATE FUNCTION [dbo].[fnGetDistance](@LatBegin REAL, @LngBegin REAL, @LatEnd REAL, @LngEnd REAL) RETURNS FLOAT AS BEGIN --距离(千米) DECLARE @Distance REAL DECLARE @EARTH_RADIUS REAL SET @EARTH_RADIUS = 6378.137 DECLARE @RadLatBegin REAL,@RadLatEnd REAL,@RadLatDiff REAL,@RadLngDiff REAL SET @RadLatBegin = @LatBegin *PI()/180.0 SET @RadLatEnd = @LatEnd *PI()/180.0 SET @RadLatDiff = @RadLatBegin - @RadLatEnd SET @RadLngDiff = @LngBegin *PI()/180.0 - @LngEnd *PI()/180.0 SET @Distance = 2 *ASIN(SQRT(POWER(SIN(@RadLatDiff/2), 2)+COS(@RadLatBegin)*COS(@RadLatEnd)*POWER(SIN(@RadLngDiff/2), 2))) SET @Distance = @Distance * @EARTH_RADIUS --SET @Distance = Round(@Distance * 10000) / 10000 RETURN @Distance END
博客
-
计算地球上两个坐标点(经度,纬度)之间距离sql函数
-
All I have hold is technology
这几天最大的感受是“穷得只剩下技术了”。与最大上的Boss比起来,最大的优势就是技术了。对于一个Boss来讲,一个报名系统,登记一下报名人员的姓名、联系方式,都是技术,是门槛。从技术的角度来讲,堆几行代码,就出来了,而其商业价值却在Boss的使用下真正体现出来。我们的优势,就是技术了。
一个非常浅显的例子,早几年前,有位同事问我能否加一个链接,这是网页制作里,最最基础的东东啦,但是同事会感觉到很兴奋,很有意义。这显然是两种不同的视角。从技术的角度来看,这不过是一个A标签,仅起而已,心里再默念一句“激动个毛”。当我再次回味的时候,总是觉得是一个让人难以忘却的场景。仔细体会,就能将技术、业务的思维进行区分,找到乐趣。
最开始使用Token是使用调研系统,而不是做调研系统。按本人技术的思维,不会用Token这个东东来描述,我能想到的是“唯一标识”,自增ID。当我第一次听到Token时,着实花了些时间去思考这是神马东东,好高大上。当同事使用Token来沟通的时候,第一感觉,专业啊。
略去N多感慨… ….
如何将掌握的一点点技术进行转化,是穷码农未解的迷。码农的必杀技术“没日没夜的加班,还不要加班费”,是硬伤。从硬伤的痕迹里寻找解迷的道路。将技术与业务进行一个适当的平衡,不要一味纯技术,也得考虑业务。 -
SignalR中文教程
本教程翻译来源:http://www.asp.net/signalr 亲也可以直接阅读英文版原文。本翻译不一字一字翻,直按本人理解翻译。如觉得很奇怪的地方,可以直接参考原文。
1.SignalR介绍
什么是SignalR?
ASP.NET SignalR是用于帮助ASP.NET开发者简化实时Web交互。实时Web交互意味着服务器端主动推送内容至处于链接状态的客户端,而不用让服务器等客户端请求数据。
SignalR可用于添加各种需要实时交互的场景,最常见的就是聊天室。
SignalR自动管理客户端连接,允许服务端向所有客户端推送信息,如聊天室。也可以向特定的客户端发送信息。客户端与服务商之间的链接是持久化的,不像每次都开启一个新链接的传统HTTP连接方式。
SignalR可以通过服务总线、SQL SERVER数据库或Redis扩容至数千客户端。
SignalR是开源的,可以通过Github获取。
SignalR 与WebSocket
SignalR支持WebSocket,当遇到不支持的环境时,会使用老的传输方式。采用SignalR可以发挥WebSocket的功效,而不用担心老客户不支持WebSocket。
未完待续… …
-
Knockout: radio switch
<html> <head> <script src="../lib/require/require.js" data-main="ko1_radio1_main"></script> </head> <body > <input id="Radio1" name="rdoCunKuanType" data-bind="checked:CunKuanType" value="H" checked type="radio" />活期存款 <input id="Radio2" name="rdoCunKuanType" data-bind="checked:CunKuanType" value="D" type="radio">定期存款 <br />定期几年:<input type="text" />年 <font data-bind="visible:ShowStar" color="red">*</font> </body> </html>
require.config({ paths: { "knockout": "../lib/knockout/knockout-2.3.0", "jquery": "../lib/jquery/jquery-1.9.1.min" } }); require(['jquery', 'knockout'], function ($, ko) { //数据绑定 $(document).ready(function () { var viewModel = { CunKuanType: ko.observable("H") }; viewModel.ShowStar = ko.dependentObservable(function () { if (viewModel.CunKuanType() == "H") { return false; } else { return true; } }, viewModel); ko.applyBindings(viewModel); }); });转自:http://www.cnblogs.com/liuzhendong/p/3520030.html
(真巧)