2015-10-03 206 views
-2

在我的工作中,我需要從dbpedia中找到貨幣,人口等鄰國的屬性。我該怎麼辦? 一個解決方案可能是這樣的.. 一個sparql查詢,它可以從dbpedia獲取所有國家的經度和緯度,並找到配套的國家離德國很近。那怎麼辦?但我是sparql新手?所以,我不確定,對此的查詢將如何?我怎樣才能得到一個國家的鄰居國家?

供參考:我不需要所有的鄰居。三個鄰居對我來說就夠了。

+0

你只有在德國的鄰國有興趣(在這種情況下,你不需要DBpedia,我現在可以告訴你)還是隻是一個隨機提到的例子? – stakx

+0

這只是一個例子 –

回答

0

通過只查詢dbpedia,不可能得到鄰居國家。最簡單的方法可能是,通過一個數學方程得到經度和緯度的距​​離。以下是獲得的距離

private double getDistance(double submittedCountryLat,double submittedCountryLong,double countryLat,double countryLong){ 

     double distance = 0; 
     double submittedCountryLatRadian=Math.toRadians(submittedCountryLat);  
     double submittedCountryLongRadian=Math.toRadians(submittedCountryLong); 
     double countryLatRadian=Math.toRadians(countryLat); 
     double countryLongRadian=Math.toRadians(countryLong); 

     double absoluteDistanceLat=submittedCountryLatRadian-countryLatRadian; 
     double absoluteDistanceLong=submittedCountryLongRadian-countryLongRadian; 

     distance=Math.sin(absoluteDistanceLat/2)*Math.sin(absoluteDistanceLat/2) + 
       Math.cos(submittedCountryLatRadian)*Math.cos(countryLatRadian)* Math.sin(absoluteDistanceLong/2)*Math.sin(absoluteDistanceLong/2); 

     distance=2* Math.asin(Math.sqrt(distance)); 
     return distance*6371; 

    } 

然後排序的所有距離,國名,並採取國家名稱距離最短的java的植入

相關問題