2017-01-23 11 views
0

マークアップツールを実装する方法についてはフィリップ・リーフマのチュートリアルに従いましたが、運がありません。ここにリンク:http://adndevblog.typepad.com/cloud_and_mobile/2016/02/playing-with-the-new-view-data-markup-api.htmlmarkupCore拡張用のボタンがドッキングパネルに表示されない

、ここで:https://developer.api.autodesk.com/viewingservice/v1/viewers/docs/tutorial-feature_markup.html

私はrequireJSを含める必要があり、エラーを取得し、私はそれを使用する必要はありません。代わりに、私は自分のhtmlファイルでこのスクリプトを使用しました:

<script src="https://autodeskviewer.com/viewers/2.2/extensions/MarkupsCore.js"> 

これは正しい方法ですか?コンソールにエラーは表示されませんが、マークアップボタンはドッキングパネルに表示されません。

これは、視聴者に拡張をロードするための私のコードです:

viewerApp = null; 

function initializeViewer(containerId, urn, params) { 
function getToken(url) { 

    return new Promise(function (resolve, reject) { 

     $.get(url, function (response) { 
      resolve(response.access_token); 
     }); 
    }); 
} 
var initOptions = { 
    documentId: 'urn:' + urn, 
    env: 'AutodeskProduction', 
    getAccessToken: function (onGetAccessToken) { 
     getToken(params.gettokenurl).then(function (val) { 
      var accessToken = val; 
      var expireTimeSeconds = 60 * 30; 
      onGetAccessToken(accessToken, expireTimeSeconds); 
     }); 
    } 
} 

function onDocumentLoaded(doc) { 
    var rootItem = doc.getRootItem(); 
    // Grab all 3D items 
    var geometryItems3d = 
     Autodesk.Viewing.Document.getSubItemsWithProperties(
     rootItem, { 'type': 'geometry', 'role': '3d' }, true); 
    // Grab all 2D items 
    var geometryItems2d = 
     Autodesk.Viewing.Document.getSubItemsWithProperties(
     rootItem, { 'type': 'geometry', 'role': '2d' }, true); 
    // Pick the first 3D item otherwise first 2D item 
    var selectedItem = (geometryItems3d.length ? 
      geometryItems3d[0] : 
      geometryItems2d[0]); 

    var domContainer = document.getElementById('viewerContainer'); 

    var config = { extensions: ["Autodesk.Viewing.MarkupsCore"] }; 

    // GUI Version: viewer with controls 
    var viewer = new Autodesk.Viewing.Private.GuiViewer3D(domContainer, config); 
    viewer.loadExtension("Autodesk.Viewing.MarkupsCore"); 

    viewer.initialize(); 

    viewer.loadModel(doc.getViewablePath(selectedItem)); 

    var extension = viewer.getExtension("Autodesk.Viewing.MarkupsCore"); 

    viewerApp = viewer; 


} 

function onEnvInitialized() { 
    Autodesk.Viewing.Document.load(
     initOptions.documentId, 
     function (doc) { 
      onDocumentLoaded(doc); 
     }, 
     function (errCode) { 
      onLoadError(errCode); 
     }) 
} 

function onLoadError(errCode) { 
    console.log('Error loading document: ' + errCode); 
} 

Autodesk.Viewing.Initializer(
    initOptions, 
    function() { 
     onEnvInitialized() 
    }) 
} 

すべてのヘルプは高く評価されます!

答えて

0

残念ながら、私はそのブログ記事を書いて以来、APIにいくつかの変更がありました。 MarkupCore.jsがviewer3D.jsソースに含まれるようになりました。最新のバージョンのビューアAPIを使用する場合は、余分なファイルを参照する必要はなく、requireJSを使用する必要もありません。

これはAPIのみの機能なので、マークアップ拡張機能を読み込んだ後でも、UIは表示されません。たとえば、APIを呼び出すことによって最終的にマークアップを作成するボタンを含むダイアログを作成するなど、自分で実装する必要があります。

私のブログ記事のコードのいくつかはまだ有効であり、あなたが何をする必要があるかについてのアイデアを提供するかもしれません。

希望に役立ちます。

+0

ああ、残念です。私は単にこのロジックを実装しようとします。あなたの答えをありがとう、フィリップ! –

+0

ようこそ、APIを使用する際に問題が発生した場合は、質問を投稿してください。 –

関連する問題