利用Sql Server实现电子地图围栏
一、多边形
1、Sql Server 2008及以上版本有 geography类型,用来存储geography的各个坐标点。(注意各个坐标点必须以逆时针的顺序存储)
2、插入geography类型数据----- insert into TableName(A,B,C,D,Polygon) values(A,B,C,D,geography::STGeomFromText('POLYGON((经度 纬度;经度 纬度;....... ))', 4326))
3、判断点是否在多边形内部
DECLARE @Point geography;
DECLARE @isIn INT;
SET @Point = geography::Point(@Latitude, @Longitude, 4326);
SELECT @isIn = @PolygonFencePolygon.STIntersects(@Point);
结果: @isIn=1 多边形内 ;@isIn=0 多边形外
二、圆形
1、通过Function判断所在坐标点与圆心的距离,并与半径对比
2、方法:CREATE FUNCTION [dbo].[GetDistance]
(
@LatA FLOAT,
@LatB FLOAT,
@LonA FLOAT,
@LonB FLOAT
)
RETURNS FLOAT
AS
BEGIN
DECLARE @R FLOAT,
@C FLOAT
SET @R = 6371004 --地球半径(米)
SET @C = Sin(DBO.Rad(@LatA)) * Sin(DBO.Rad(@LatB)) + Cos(DBO.Rad(@LatA)) * Cos(DBO.Rad(@LatB)) * Cos(DBO.Rad(@LonA - @LonB))
RETURN (@R * Acos(@C));
3、结果判断:DBO.GetDistance(@FenceLatitude,@Latitude,@FenceLongitude,@Longitude) < @Radius--入围栏
三、行政区域边界坐标
本人遇到的案例是行政区域的多边形围栏,中国行政区域边界坐标获取---http://download.csdn.net/detail/dyc107/8428165
四、参考
https://msdn.microsoft.com/zh-cn/library/bb933968.aspx
http://tech.it168.com/a2008/0923/206/000000206157_2.shtml
利用Sql Server实现电子地图围栏相关推荐
- 利用SQL Server EXISTS结构
有件东西我观察了很多年,那就是很少有开发者会去使用SQL Server中的一个非常有用的东西--EXISTS结构.你可以在各种情况中用到EXISTS结构,在这篇文章中我会向大家介绍其中的一些. EXI ...
- 在基于数据库的任务派发系统中利用SQL Server 2005 中新的查询提示来提高系统的效率...
1.READPAST ReadPast会让SQL Server在查询数据时如果遇到数据行被锁定可以跳过继续搜索数据,从而避免了锁定. 2.UPDLOCK UPDLOCK会让SQL Server在查询数 ...
- 如何利用SQL Server的事务日志?
介绍 (Introduction) SQL Server keeps track of all database modifications and every database transactio ...
- 利用SQL Server 2005特性删除表中重复数据
http://www.cnblogs.com/haosola/archive/2010/02/04/1663150.html 转载于:https://www.cnblogs.com/modernsky ...
- 利用Visual Studio Project自动将数据加载到SQL Server数据库中
介绍 (Introduction) A few months back, I encountered an interesting challenge at a client site. For th ...
- ASP.NET 2.0在SQL Server 2005上自定义分页
这篇文章讲述了如何利用SQL Server 2005的新特性来简单高效的实现分页.对于那些暂时还没用到SQL Server2005的人们,请看在大规模数据中的高效分页方法.如果需要,这篇文章会补上这里 ...
- 适用于SQL Server生产环境DBA的七大技巧
摘自:http://database.ctocio.com.cn/452/8976452.shtml 1.使用forfiles命令删除陈旧的数据库备份文件 从Windows Server 2003开始 ...
- SQL SERVER 2008自动备份维护计划
日常工作中利用SQL SQLSERVER 2008 的维护计划对数据库进行定期的备份,这样一方面可以对数据库进行备份保证数据安全另一方面也可以减轻对维护人员的负担.一般对于WEB 服务器进行维护都是在 ...
- SQL Server native client与sqlcmd单独安装
背景 我有一台虚拟机,想要连接sql server,但是又不想安装sql server怎么办. 方案 sql server有专门的访问客户端叫做sql server native client,然后还 ...
最新文章
- 波士顿动力一只48.8万,美女沙滩遛「狗」,网友直呼:壕
- .ajax显示加载动画,jQuery Ajax 加载数据时异步显示加载动画
- 基于 Storyboard 多种方式的页面跳转、参数传递
- 传统APP与微信端APP十大优劣对比
- skip-gram模型结构
- Spring Cloud Feign 负载均衡
- EXC_BAD_ACCESS
- 求1+2!+3!+......+20!的和
- extjs 按钮小箭头展开panel_汽车按钮都是英文看不懂?视频教你认清车内所有按钮,看完秒懂...
- 川菜为什么会成为食者最多的地方菜系?
- 如何进行网站性能优化
- PBOC规范研究之六、变长记录文件(转)
- 案例4-2 树种统计 (25 分)(map映射)
- 深度学习(二十)基于Overfeat的图片分类、定位、检测-2014 ICLR
- Dockerfile: max depth exceeded
- 我过去的那些编程思想
- DevOps自动化测试的原则和实践
- 我想,这才是情侣之间的幸福,好羡慕他们。
- 【视觉注意力机制】SE、CBAM、ECA三种可插拔注意力模块结构实现与详解
- R语言:wilcox 无法精确计算带连结的p值