我从谷歌地球导出3D模型的KML文件(ICBC.kml),我想将3D模型加载到谷歌地球插件,但我无法得到结果,非常感谢你的建议。
加载kml的javascript代码
// Create the placemark.
var placemark = ge.createPlacemark('');
// Get the current view`enter code here`
var myCamera = ge.getView().copyAsCamera(ge.ALTITUDE_RELATIVE_TO_GROUND);
// Set new latitude and longitude values
myCamera.setLatitude(30.55552076525944);
myCamera.setLongitude(114.3344795151639);
myCamera.setAltitude(500);
// Placemark/Model/Location
var loc = ge.createLocation('');
loc.setLatitude(myCamera.getLatitude());
loc.setLongitude(myCamera.getLongitude());
// Update the view in Google Earth
ge.getView().setAbstractView(myCamera);
var fso = new ActiveXObject("Scripting.FileSystemObject");
var f = fso.OpenTextFile("http://localhost/ICBC.kml",1,true);
var kmlobject = ge.parseKml(f.ReadAll());
ge.getFeatures().appendChild(kmlobject);
var la = ge.createLookAt('');
la.set(30.55552076525944, 114.3344795151639, 500, ge.ALTITUDE_RELATIVE_TO_GROUND, 0, 45, 900);
ge.getView().setAbstractView(la);
答案 0 :(得分:2)
如果您拥有KML file
,则不应使用parseKml
,使用fetchKml
更好的做法是不需要传递Kml的字符串,只是KML的URL
。
在你的情况下,你应该使用这一行:
var href = UrlOfKML;
google.earth.fetchKml(googleEarthInstance, href, function(kmlObject) {
if (kmlObject)
ge.getFeatures().appendChild(kmlObject);
});
如果您对fetchKml
和parseKml
的差异有更多疑问,请点击此链接:Importing KML - GE docs