2010-11-11 55 views
0

這可能是不可能的,但你永遠不知道。確定正方形島嶼的外邊界

我在由PK,TopLeftLatitude,TopLeftLongitude,LowerRightLatitude,LowerRightLongitude的表廣場一堆平方和由PK,國家或地區名稱的表稱爲國家一堆國家。國家和廣場之間有一個m:m的關係,所以我也有一個由PKCountry,PKSquare組成的CountriesSquares表。

我想確定一些使用SQL的國家/地區的相鄰方塊的外部點。顯然,一些國家可能會包括這使得這個更復雜的「平方孤島」 ......

你認爲這是可能的嗎?任何反饋將非常受歡迎。

謝謝。

最良好的祝願,

基督教

PS:

讓我們說這是兩個相鄰的廣場(很簡單的例子):

5,1,3,3 5, 3,3,

結果將是

5,1,3,5

我想我可以在C#中通過遍歷所有東西並檢查一些東西來做到這一點,但我正在尋找一種基於集合的方法,可能涉及到破解者。

+3

究竟是什麼意思,通過確定鄰接方塊的外部點?你能給個例子嗎? – pavanred 2010-11-11 17:15:59

+0

看PS希望這樣做更有意義。 – cs0815 2010-11-11 17:40:41

回答

-1

我被問了一次類似的書面面試測試。我寫道,我不知道,但舉了一些方法不去做的例子。他們爲我提供了這份工作。

當我回到家時,我查了一下,找到了一個配方。不幸的是,我不記得公式被稱爲什麼,但它是以某人的名字命名的。所以對於你的問題的回答是「是的,有」,但你可能會因爲說「不是我知道的」而獲得更多的評價。

+0

這不是一個測試,而是一個我試圖解決的問題,但是謝天謝地。 – cs0815 2010-11-11 17:34:37

+0

不用擔心。你說「任何反饋都會非常受歡迎」,所以我只是給了你我的反饋。 – 2010-11-12 08:55:40

1

你也許可以有一個臨時表與數據 - PK,TopLeftLatitude,TopLeftLongitude,LowerRightLatitude,LowerRightLongitude,LowerLeftLatitude,LowerLeftLongitude,TopRightLatitude,TopRightLongitude。 - 這意味着存儲正方形所有角落的所有座標。既然你提到這些是正方形,我敢打賭,你可以找到2個正方形的對角座標,知道另外兩個座標。

現在,查找給定國家的記錄並查找與相鄰方塊沒有任何公共座標的座標,即例如查找與(TopLeftLatitude,TopLeftLongitude)不相等的組合(TopRightLatitude ,TopRightLongitude)或(LowerLeftLatitude,LowerLeftLongitude)或(LowerRightLatitude,LowerRightLongitude)。

對(TopRightLatitude,TopRightLongitude)和(LowerLeftLatitude,LowerLeftLongitude)和(LowerRightLatitude,LowerRightLongitude)和LowerRightLatitude,LowerRightLongitude進行類似的檢查會給你最外面的座標。我猜測這個應該可以在島上工作,因爲它會給你所有的外部座標(經度和緯度),有多少次。

+0

謝謝,我明天看看這個 – cs0815 2010-11-11 18:40:35

0

如果重申你的問題是「我怎樣才能找到包圍知道正方形的一組方形的左上和右下座標」是正確的,那麼一個方法可能是:

  1. 移動知道方值到表
  2. 此時,相應的值添加到座標,使得所有值都是正

EX廣場1 =左上-5,2(緯度,經度)右下-7,5(LAT,長) 正方形2 =左上3,3(lat,long)Bott OM右-10,4(緯度,經度)加入10標準化後 表值,以使所有的值正(LLAT,Llong,RLAT,RLONG)

Square1 5,2,3,15

Square2 13,13,0,4

max(Llat),min(Llong)應該是TopLeft,min(L1lat),max(L1long)應該在右下方。

+0

謝謝。不幸的是,它不那麼容易,因爲它可以是堅固的(沒有整體方塊),它可以有洞。 – cs0815 2010-11-15 11:13:20