Ios 室内地图-如何使用iBeacons手动设置跟踪用户位置和方向?
大家好 我正在创建一个演示项目来跟踪用户在室内区域的位置,并使用Estimote邻近信标显示实时跟踪。和SDK使用Estimote室内位置SDK。但我被困在这一点上了 SDK委托函数始终发送响应错误,错误为: 无法确定位置以外的位置 在这里,我代表我的代码和功能,我在我的演示中使用,所以请任何人对此有想法,请建议我在哪一点上可能会犯错误,所以我将解决这一问题,并实施正确的解决方案。请提前向我推荐和感谢Ios 室内地图-如何使用iBeacons手动设置跟踪用户位置和方向?,ios,iphone,swift,Ios,Iphone,Swift,大家好 我正在创建一个演示项目来跟踪用户在室内区域的位置,并使用Estimote邻近信标显示实时跟踪。和SDK使用Estimote室内位置SDK。但我被困在这一点上了 SDK委托函数始终发送响应错误,错误为: 无法确定位置以外的位置 在这里,我代表我的代码和功能,我在我的演示中使用,所以请任何人对此有想法,请建议我在哪一点上可能会犯错误,所以我将解决这一问题,并实施正确的解决方案。请提前向我推荐和感谢 let beaconManager = ESTBeaconManager() let loca
let beaconManager = ESTBeaconManager()
let locationManager = EILIndoorLocationManager()
var location = EILLocation()
let locationBuilder = EILLocationBuilder()
var positionView = EILPositionView()
var position = EILOrientedPoint()
override func viewDidLoad() {
super.viewDidLoad()
self.beaconManager.delegate = self
self.beaconManager.requestAlwaysAuthorization()
// TODO: put your App ID and App Token here
ESTConfig.setupAppID("Id i am use Registed Estimote Id", andAppToken: "Token also use provided by register app on Estimote")
ESTConfig.isAuthorized()
locationBuilder.setLocationName("DCX Retail Store")
locationBuilder.setLocationBoundaryPoints([
EILPoint(x: 0.00, y: 0.00),
EILPoint(x: 0.00, y: 1.00),
EILPoint(x: 1.00, y: 1.00),
EILPoint(x: 1.00, y: 0.00)])
locationBuilder.addBeacon(withIdentifier: "B9407F30-F5F8-466E-AFF9-255556B57FE6D", withPosition:EILOrientedPoint.init(x: 0.00, y: 0.00), andColor: ESTColor.blueberryPie)
locationBuilder.addBeacon(withIdentifier: "B9407F30-F5F8-466E-AFF9-255556B57FE6D", withPosition:EILOrientedPoint.init(x: 0.00, y: 1.00), andColor: ESTColor.mintCocktail)
locationBuilder.addBeacon(withIdentifier: "B9407F30-F5F8-466E-AFF9-255556B57FE6D", withPosition:EILOrientedPoint.init(x: 1.00, y: 1.00), andColor: ESTColor.icyMarshmallow)
locationBuilder.addBeacon(withIdentifier: "B9407F30-F5F8-466E-AFF9-255556B57FE6D", withPosition:EILOrientedPoint.init(x: 1.00, y: 0.00), andColor: ESTColor.blueberryPie)
// Add door in Indoor area...
locationBuilder.addDoors(withLength: 0.3, atBoundarySegmentIndex: 0, inDistance: 0.7, from: .rightSide)
locationBuilder.setLocationOrientation(0)
//set up location...
self.location.randomPointInside()
location = locationBuilder.build()!
// Set the location manager's delegate
self.locationManager.delegate = self
self.locationManager.start()
self.locationManager.state(for: self.location)
self.locationManager.mode = EILIndoorLocationManagerMode.light
self.locationView.showTrace = true
self.locationView.showWallLengthLabels = true
self.locationView.rotateOnPositionUpdate = true
self.locationView.locationBorderColor = UIColor.black
self.locationView.locationBorderThickness = 2
self.locationView.doorColor = UIColor.green
self.locationView.doorThickness = 2
self.locationView.traceColor = UIColor.yellow
self.locationView.traceThickness = 2
self.locationView.wallLengthLabelsColor = UIColor.blue
//Start Location Drawing..
self.locationView.drawLocation(self.location)
self.locationManager.startPositionUpdates(for: self.location)
}
//EilindoorlLocationManager委派方法
func indoorLocationManager(_ manager: EILIndoorLocationManager, didFailToUpdatePositionWithError error: Error) {
print("failed to update position: \(error)")
}
func indoorLocationManager(_ manager: EILIndoorLocationManager, didUpdatePosition position: EILOrientedPoint, with positionAccuracy: EILPositionAccuracy, in location: EILLocation) {
var accuracy: String!
switch positionAccuracy {
case .veryHigh: accuracy = "+/- 1.00m"
case .high: accuracy = "+/- 1.62m"
case .medium: accuracy = "+/- 2.62m"
case .low: accuracy = "+/- 4.24m"
case .veryLow: accuracy = "+/- ? :-("
case .unknown: accuracy = "unknown"
}
print(String(format: "x: %5.2f, y: %5.2f, orientation: %3.0f, accuracy: %@", position.x, position.y, position.orientation, accuracy))
self.locationManager.startPositionUpdates(for: self.location)
self.locationView.updatePosition(position)
lblCoordinate.text = "X:\(position.x),Y:\(position.y),accuracy:\(accuracy)"
}
谢谢你,
伙计们。你们的代码看起来不错,只要重新检查一下你们的室内定位点就行了。
您可以使用室内定位应用程序设置位置。尝试从Estimote Cloud下载信标位置(如果可能),并在应用程序中手动设置相同的值。您的代码看起来正常,只需重新检查您的室内位置点。
您可以使用室内定位应用程序设置位置。尝试从Estimote云下载信标位置(如果可能),并在应用程序中手动设置相同的值。您确定必须从Estimote在室内位置应用程序中绘制准确的室内位置点吗??因为我已经在我的应用程序中使用了estimote室内位置sdk,它的效果非常好。您可以使用estimote室内位置应用程序设置您的位置吗?并将您的位置点存储在estimote云中??是的,我必须将我的办公室室内位置存储在estimote室内位置上。是的,如果我正在使用estimote室内位置SDK并使用云配置ibecons,那么它就可以工作了。但我正在尝试手动配置ibecons,在这种情况下它不起作用。你确定你必须从estimote在室内位置应用程序中绘制准确的室内位置点吗??因为我已经在我的应用程序中使用了estimote室内位置sdk,它的效果非常好。您可以使用estimote室内位置应用程序设置您的位置吗?并将您的位置点存储在estimote云中??是的,我必须将我的办公室室内位置存储在estimote室内位置上。是的,如果我正在使用estimote室内位置SDK并使用云配置ibecons,那么它就可以工作了。但我正在尝试手动配置ibecons,在这种情况下,它不起作用。