gpt4 book ai didi

javascript - Wikitude POI 不会出现在 Android 上

转载 作者:行者123 更新时间:2023-11-28 18:56:09 25 4
gpt4 key购买 nike

我创建了一个 Android Studio 项目并将 Wikitude 示例 (Wikitude SDK 5.0) 导入到 asset 文件夹中。我是 JavaScript 和 Wikitude 的新手,但我认为我能够获取 GPS 坐标,但没有出现 POI。

你们中有人有使用 Android 版 Wikitude 的经验吗?如何让 POI 出现?官方文档不会有帮助。

很抱歉源代码太长,但我已经被困了两天了,找不到任何好的解决方案:(感谢您的帮助!

POILOCATION.js:

// implementation of AR-Experience (aka "World")
var World = {
// true once data was fetched
initiallyLoadedData: false,



// POI-Marker asset
markerDrawable_idle: null,

// called to inject new POI data
loadPoisFromJsonData: function loadPoisFromJsonDataFn(poiData) {

/*
The example Image Recognition already explained how images are loaded and displayed in the augmented reality view. This sample loads an AR.ImageResource when the World variable was defined. It will be reused for each marker that we will create afterwards.
*/
World.markerDrawable_idle = new AR.ImageResource("assets/marker_idle.png");

/*
For creating the marker a new object AR.GeoObject will be created at the specified geolocation. An AR.GeoObject connects one or more AR.GeoLocations with multiple AR.Drawables. The AR.Drawables can be defined for multiple targets. A target can be the camera, the radar or a direction indicator. Both the radar and direction indicators will be covered in more detail in later examples.
*/
var markerLocation = new AR.GeoLocation(poiData.latitude, poiData.longitude, poiData.altitude);
var markerImageDrawable_idle = new AR.ImageDrawable(World.markerDrawable_idle, 2.5, {
zOrder: 0,
opacity: 1.0
});

// create GeoObject
var markerObject = new AR.GeoObject(markerLocation, {
drawables: {
cam: [markerImageDrawable_idle]
}
});

// Updates status message as a user feedback that everything was loaded properly.
World.updateStatusMessage('1 place loaded');
},

updateStatusMessage: function updateStatusMessageFn(message, isWarning) {
var themeToUse = isWarning ? "e" : "c";
var iconToUse = isWarning ? "alert" : "info";

$("#status-message").html(message);
$("#popupInfoButton").buttonMarkup({
theme: themeToUse
});
$("#popupInfoButton").buttonMarkup({
icon: iconToUse
});
},

// location updates, fired every time you call architectView.setLocation() in native environment
locationChanged: function locationChangedFn(lat, lon, alt, acc) {
if (!World.initiallyLoadedData) {
// creates a poi object with a random location near the user's location
var poiData = {
"id": 1,
"longitude": (lon + (Math.random() / 5 - 0.1)),
"latitude": (lat + (Math.random() / 5 - 0.1)),
"altitude": 100.0
};

World.loadPoisFromJsonData(poiData);
World.initiallyLoadedData = true;
}
},
};

/* Set a custom function where location changes are forwarded to. There is also a possibility to set AR.context.onLocationChanged to null. In this case the function will not be called anymore and no further location updates will be received.
*/
//AR.context.onLocationChanged = World.locationChanged;
AR.context.onLocationChanged = locationChangedFn(lat, lon, alt, acc) {
console.log("asdsadasdsadasasdadaello World");

if (!World.initiallyLoadedData) {
// creates a poi object with a random location near the user's location
var poiData = {
"id": 1,
"longitude": (lon + (Math.random() / 5 - 0.1)),
"latitude": (lat + (Math.random() / 5 - 0.1)),
"altitude": 100.0
};
world.markerDrawable_idle = new AR.ImageResource("assets/marker_idle.png");

/*
For creating the marker a new object AR.GeoObject will be created at the specified geolocation. An AR.GeoObject connects one or more AR.GeoLocations with multiple AR.Drawables. The AR.Drawables can be defined for multiple targets. A target can be the camera, the radar or a direction indicator. Both the radar and direction indicators will be covered in more detail in later examples.
*/
var markerLocation = new AR.GeoLocation(poiData.latitude, poiData.longitude, poiData.altitude);
var markerImageDrawable_idle = new AR.ImageDrawable(World.markerDrawable_idle, 2.5, {
zOrder: 0,
opacity: 1.0
});

// create GeoObject
var markerObject = new AR.GeoObject(markerLocation, {
drawables: {
cam: [markerImageDrawable_idle]
}
});

// Updates status message as a user feedback that everything was loaded properly.
World.updateStatusMessage('1 place loaded');
World.initiallyLoadedData = true;
}};

最佳答案

好的,我找到了解决方案:在 Android 中正常设置 GPS 位置更新后,我忘记添加“architectView.setLocation”行:

    private void makeUseOfNewLocation(Location location) {
try {
architectView.setLocation(location.getLatitude(), location.getLongitude(), location.getAltitude(), location.getAccuracy());
this.architectView.load("poi_1/index.html");
} catch (IOException e) {
e.printStackTrace();
}
}

现在,一切都很完美。

关于javascript - Wikitude POI 不会出现在 Android 上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33613580/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com