forge Viewer - проблема смены камеры в разметке - PullRequest
0 голосов
/ 04 марта 2020

В моем средстве просмотра у меня есть разметка, построенная в облачном режиме, и во время события смены камеры я не могу сопоставить связанную метку с разметкой, когда она движется дальше. Для этого я сохраняю координаты, и во время события смены камеры я использую worldToClient, чтобы найти новые координаты, но это не работает

Так что проблема в том, чтобы найти оригинальные мировые координаты. Я пробовал несколько способов, как показано ниже, но мне кажется, что ничего не работает. Очень ценю помощь в этом. Просто для идеи, прилагаю скриншоты модели до и после смены камеры.

/*** option 1***/
worldCoord = markup.markups[0].generateBoundingBox().max;
/*** option 2***/
var coords = viewer.impl.clientToViewport(pos.x, pos.y);
worldCoord = coords.unproject(viewer.impl.camera)
/*** option 3***/
worldCoord = markup.markups[0].getClientPosition()
/*** option 4***/
worldCoord = viewer.clientToWorld(pos.x,pos.y,true);
/***option 5***/
worldCoord = markup.markups[0].getBoundingRect()

до смены камеры: enter image description here

после смены камеры enter image description here

1 Ответ

0 голосов
/ 05 марта 2020

Наконец-то я понял.

Мы можем сохранить информацию об имени слоя с вашей меткой и извлечь ее в событии смены камеры, используя следующий код.

position = markup.svgLayersMap [layerName] .markups [0] .getClientPosition ()

надеюсь, это кому-нибудь поможет

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...