2014-10-05 44 views
0

我試圖通過獲取2個信標與相同的id1,1d2的距離和id3爲信標1 1和2的信標2 ...但我的代碼不工作:(...我不是很好的編程,我不知道如何使用altbeacon的大部分功能或方法....有人可以幫我獲得標距離,並在2個信標的距離的condtion基地....是否有這樣一個示例代碼?如何獲得2個信標的距離,並在這個距離作出condtion基地

public void didRangeBeaconsInRegion(Collection<Beacon> beacons, Region region) { 

      if((beacon.getId3().equals(Identifier.parse("1")) && beacon.getDistance() < 0.5) && (beacon.getDistance() > 5 && beacon.getId3().equals(Identifier.parse("2")) 
      logToDisplay("1st floor"); 
      } 
    } 
+0

什麼「不工作」你的代碼?你需要更具體,是否崩潰,是不是被調用,是否是別的? – panini 2014-10-05 20:15:57

+0

logtoDisplay沒有被調用....我使用2個手機在我手上測試它有1找到altbeacon的應用程序知道2個信標的距離,並確保在<5距離信標1和> 5在另一隻手中同時在燈塔2米我有一個手機與我的應用程序,將不會顯示任何在測距活動 – KB24 2014-10-05 20:23:34

回答

0

這是距離數學

var R = 6371; // km 
    var φ1 = toRad(lat1); 
    var φ2 = toRad(lat2); 
    var Δφ = toRad((lat2-lat1)); 
    var Δλ = toRad((lon2-lon1)); 

    var a = Math.sin(Δφ/2) * Math.sin(Δφ/2) + 
     Math.cos(φ1) * Math.cos(φ2) * 
     Math.sin(Δλ/2) * Math.sin(Δλ/2); 
    var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a)); 

    var d = R * c; 

    // printing distance to 2 decimal points in KM 
    $("#distance").append(d.toFixed(2) + " Km") 

您將需要獲得兩個信標之間的距離,將它們保存到一個變量,然後寫類似這樣

+0

這是爲altbeacon? ....因爲有一個beacon.distance()在altbeacon庫和它的工作正常,但我的問題是當我試圖讓我condtion兩個信標涉及其不工作 – KB24 2014-10-05 21:02:08