2017-08-29 82 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調用來獲取外部區域並排除內部區域。 –