0

GoogleAPIとSketchupを使用してインタラクティブマップを開発しています。次のコードを使用して3Dオブジェクトを作成して配置しました。

var loc = ge.createLocation('');
loc.setLatitude(lookAt.getLatitude());
loc.setLongitude(lookAt.getLongitude());
model.setLocation(loc);

// set up the model's link (must be a COLLADA file).
// this model was created in SketchUp
var link = ge.createLink('');
model.setLink(link);
link.setHref('http://earth-api-samples.googlecode.com/svn/trunk/' +
             'examples/static/splotchy_box.dae');

// create the model placemark and add it to Earth
var modelPlacemark = ge.createPlacemark('');
modelPlacemark.setGeometry(model);
ge.getFeatures().appendChild(modelPlacemark);

// zoom in on the model
lookAt.setRange(300);
lookAt.setTilt(80);
ge.getView().setAbstractView(lookAt);

// persist the placemark for other interactive samples
window.placemark = modelPlacemark;

このサンプルWebサイトから: http: //earth-api-samples.googlecode.com/svn/trunk/demos/interactive/index.html

通常の目印のオプションを3Dモデルに追加しようとしています(マウスをホバーしてクリックするとサイズが変わります)。

私はGoogleAPIに比較的慣れていないので、疑問に思っていました。これらの関数を3Dオブジェクトに追加するにはどうすればよいですか。

(同じWebサイトから)通常の目印を作成する方法は知っていますが、3Dモデルを目印にする方法がわかりません。

ありがとうございました。

4

1 に答える 1

1

var placemark はグローバル変数です。これは、目印の代わりに 3D モデルを作成しています。このコードを試してみてください。ここでは Google Earth プラグインを使用しました。

    function createPlacemark() {
        console.log("in create placemark");
        placemark = ge.createPlacemark('');
        placemark.setName('placemark ' + counter);

        var model = ge.createModel('');
        ge.getFeatures().appendChild(placemark);
        var loc = ge.createLocation('');
        model.setLocation(loc);
        var link = ge.createLink('');

        // A textured model created in Sketchup and exported as Collada.
        link.setHref('https://sites.google.com/site/siddharthuit/downloads/crane.dae');
        model.setLink(link);


        var la = ge.getView().copyAsLookAt(ge.ALTITUDE_RELATIVE_TO_GROUND);

        // set location
        loc.setLatitude(la.getLatitude());
        loc.setLongitude(la.getLongitude());

        placemark.setGeometry(model);

        la.setRange(300);
        la.setTilt(45);
        ge.getView().setAbstractView(la);

    }

別の問題があります。データベースから動的に指定された座標に従って目印を移動する方法を知っていますか?

于 2013-01-28T04:50:38.430 に答える