如何将自定义图标添加到地名AR.JS

时间:2019-12-13 10:26:27

标签: ar.js

我们如何在PNG image库中将{Place}图标替换为AR.js?我已经阅读了这篇文章,我认为我们可以使用PNG image来显示为位置图标,但是不能使用位置名称来显示。

根据这篇文章,这就是我们如何显示地点名称并使用其默认图标。

// add place name
                    const text = document.createElement('a-link');
                    text.setAttribute('gps-entity-place', `latitude: ${latitude}; longitude: ${longitude};`);
                    text.setAttribute('title', place.name);
                    text.setAttribute('href', 'http://www.example.com/');
                    text.setAttribute('scale', '13 13 13');

                    text.addEventListener('loaded', () => {
                        window.dispatchEvent(new CustomEvent('gps-entity-place-loaded'))
                    });

这是我们使用自定义图像的方式。

 const icon = document.createElement('a-image');
                    icon.setAttribute('gps-entity-place', `latitude: ${latitude}; longitude: ${longitude};`);
                    icon.setAttribute('name', place.name);
                    icon.setAttribute('src', '../assets/map-marker.png');

1 个答案:

答案 0 :(得分:0)

属性gps-entity-place是只读的。这意味着您不能使用setAttribute对其进行修改。

所以我以前的回答并未完全回答问题。深入研究AFrame文档,我发现可能会产生带有新实体的gps-projected-entity-place。但是,需要按照此处的概述进行操作:https://ar-js-org.github.io/AR.js-Docs/location-based-tutorial/#introducing-javascript-with-arjs

这意味着您应该执行以下操作: text.setAttribute('gps-projected-entity-place', { latitude: ${latitude}, longitude: ${longitude} });