我正在使用Google API和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;
来自此样品网站:http://earth-api-samples.googlecode.com/svn/trunk/demos/interactive/index.html
我试图添加到3D模型中的常规placemark的选项(因此,当鼠标悬停在可单击时,它会改变大小)。
我对Google API相对较新,所以我想知道:如何将这些功能添加到3D对象?
我知道如何创建一个常规的placemark(来自同一网站),但是我没有如何使3D模型成为placemark。
谢谢。
var placemark是一个全局变量,这是创建一个3D模型代替placemark。尝试此代码,对我有用。我在这里使用了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);
}
我还有一个问题,您知道如何根据数据库动态给出的坐标