Я загрузил SDK из Wikitude 3.1, установил образцы в рабочее пространство Eclipse и на моем Gnexus все работает. Я разделяю вопросы в точках, поэтому может быть проще ответить:wikitude 3.01: добавление некоторых функций между примерами не получилось правильно
Я добавил метод «onMarkerSelectedFn» в файл «limitsVisiblePois.js», потому что мне захотелось, чтобы мои POI были кликируемыми, и при нажатии на них появляется информационная страница, например, 5.1. Я добавил метод, но он не работает, и я не понимаю, где я делаю ошибки. Каждый другой файл одинаковый для образцов 5.x.
Кодекс "limitingVisiblePois.js" отредактированные мною
var World = {
markerDrawable_idle: new AR.ImageResource("assets/marker_idle.png"),
markerDrawable_selected: new AR.ImageResource("assets/marker_selected.png"),
markerDrawable_directionIndicator: new AR.ImageResource("assets/indi.png"),
markerList: [],
// called to inject new POI data
loadPoisFromJsonData: function loadPoisFromJsonDataFn(poiData) {
PoiRadar.show();
document.getElementById("statusElement").innerHTML = 'Loading JSON objects';
var poiImage = new AR.ImageResource("img/marker.png", {
onError: World.errorLoadingImage
});
// TODO: call single POI-creation statement instead
for (var i = 0; i < poiData.length; i++) {
var singlePoi = {
//EDIT BRUS: adding the ID of each POIs
"id": poiData[i].id,
"latitude": parseFloat(poiData[i].latitude),
"longitude": parseFloat(poiData[i].longitude),
"altitude": parseFloat(poiData[i].altitude),
"title": poiData[i].name,
"description": poiData[i].description
};
World.markerList.push(new Marker(singlePoi));
}
document.getElementById("statusElement").innerHTML = 'JSON objects loaded properly';
},
// user's latest known location, accessible via userLocation.latitude, userLocation.longitude, userLocation.altitude
userLocation: null,
// location updates
locationChanged: function locationChangedFn(lat, lon, alt, acc) {
World.userLocation = {
'latitude': lat,
'longitude': lon,
'altitude': alt,
'accuracy': acc
};
},
//EDIT BRUS: Adding onMarkerSelected function
onMarkerSelected: function onMarkerSelectedFn(marker) {
// notify native environment
document.location = "architectsdk://markerselected?id=" + marker.poiData.id;
},
// called from slider.js every time the slider value changes
onSliderChanged: function onSliderChangedFn(value) {
if (value > 0) {
var valueMeters = value * 1000;
PoiRadar.setMaxDistance(valueMeters);
AR.context.scene.cullingDistance = valueMeters;
}
}
};
// forward locationChanges to custom function
AR.context.onLocationChanged = World.locationChanged;
2) Я не был в состоянии понять, где LatLong POIs координаты где declareated. В том же коде, размещенных впереди, есть функция
loadPoisFromJsonData: функция loadPoisFromJsonDataFn (poiData)
, но я не понимаю, как poiData принимаются.
Я использовал последний 3.1 SDK в Android и телефонном разговоре.
заранее спасибо,
Сердечные приветы
Брус
Привет, Андреас, спасибо за ваш ответ. Я получил то, что вы объясняете, и я попытаюсь исправить свою проблему. Такая же информация доступна в документации вашего веб-сайта. С уважением, – Bebbolin