2017-08-29 37 views
0

我期待在一个更大的区域中间占据一个正方形区域并排除/去除这些结果。GPS映射排除区域:SQL,数学,冷聚变

这段代码抓住我的外部区域,工作正常。

<cfquery name="q" datasource="ds"> 
    select * from master 
    where (gpslat > #area.bgpslat# and gpslat < #area.tgpslat#) and (gpslong > #area.lgpslong# and gpslong < #area.rgpslong#) 
    and eventdate like '%2016%' 
    </cfquery> 

在同一个概念,我已经创建了一个禁区:exbgpslat,extgpslat,exlgpslong,exrgpslong

而且我想从搜索结果中删除除权的...我使用此代码...

<cfquery name="q" datasource="ds"> 
    select * from master 
    where (gpslat > #area.bgpslat# and gpslat < #area.tgpslat#) and (gpslong > #area.lgpslong# and gpslong < #area.rgpslong#) 
    and (gpslat > #area.exbgpslat# and gpslat < #area.extgpslat#) and (gpslong > #area.exlgpslong# and gpslong < #area.exrgpslong#) 
    and eventdate like '%2016%' 
    </cfquery> 

我从里面的箱子里得到了这个结果......并且排除了外面的箱子。

我是不是做数学和SQL语句不好。

这EXCEPT语句不起作用。

<cfquery name="test" datasource="fire_report"> 
    select * from master 
    where (gpslat > #area.bgpslat# and gpslat < #area.tgpslat#) and (gpslong > #area.lgpslong# and gpslong < #area.rgpslong#) 
    and statignore = 0 and eventdate like '%2016%' 
    EXCEPT 
    select * from master 
    where (gpslat > #area.exbgpslat# and gpslat < #area.extgpslat#) and (gpslong > #area.exlgpslong# and gpslong < #area.exrgpslong#) 
    and statignore = 0 and eventdate like '%2016%' 
</cfquery> 

回答

0

你知道地理散列wikilink。 这对处理您的问题很有帮助。

+0

我正在使用Google Maps API,这不是Geo问题。它如何编写SQL调用来获取外部区域并排除内部区域。 –