以下代码位于角度指令中:
// -- Regions stuff
var regions = {};
regions.us = {};
var lod = ge.createLod('');
var ne = {n:37.3214096102,s:26.9898707181,e:-90.4503326416,w:-107.730612278};
lod.set(128, -1, 0, 0);
//107.730612278,26.9898707181 -90.4503326416,26.9898707181 -90.4503326416,37.3214096102 -107.730612278,37.3214096102
var usNe = ge.createLatLonAltBox('');
usNe.setAltBox(
ne.n, // north
ne.s, // south
ne.e, // east
ne.w, // west
0, // rotation
0, // min altitude
0, // max altitude
ge.ALTITUDE_RELATIVE_TO_GROUND // mode
);
regions.us.ne = ge.createRegion('');
regions.us.ne.set(usNe, lod); // lat lon alt box, level of detail
// --
var icon = ge.createIcon('');
var offIcon = ge.createIcon('');
var style = ge.createStyle('');
var offStyle = ge.createStyle('');
icon.setHref(window.location.href + '/assets/images/lightbulb.png');
offIcon.setHref(window.location.href + '/assets/images/lightbulb_off.png');
style.getIconStyle().setIcon(icon);
offStyle.getIconStyle().setIcon(offIcon);
style.getIconStyle().setScale(1);
offStyle.getIconStyle().setScale(1);
icon.setViewRefreshMode(ge.VIEW_REFRESH_ON_REGION);
offIcon.setViewRefreshMode(ge.VIEW_REFRESH_ON_REGION);
icon.setW(16);
icon.setH(16);
offIcon.setW(16);
offIcon.setH(16);
scope.control.createPlacemark = function (lat, lng, sale, to) {
to = to || 0;
var placemark = ge.createPlacemark('');
var point = ge.createPoint('');
point.setLatitude(+lat);
point.setLongitude(+lng);
placemark.setGeometry(point);
placemark.setStyleSelector(style);
ge.getFeatures().appendChild(placemark);
if (+lng <= ne.e && +lng >= ne.w && +lat >= ne.s && +lat <= ne.n) {
placemark.setRegion(regions.us.ne);
console.log('done!');
}
$timeout(function () {
placemark.setStyleSelector(offStyle);
}, to);
return placemark;
};
调用scope.control.createPlacemark
时,它会创建地标,区域内的地标设置区域,但在缩放级别/可见性方面没有任何变化。我希望边界内的那些将出现在与其他地标不同的高度,但它们同时出现。关于什么可能导致这种行为的任何想法?好像地区根本不起作用。
答案 0 :(得分:0)
事实证明,创建与我的区域相关联的文件夹解决了我的问题。我有很多地标,很难分辨哪个地方与该地区有关联,而上述代码只关联了其中一个地标(不确定这是否是预期的行为)。
结果代码类似于
var folder = ge.createFolder('');
folder.setRegion(region);
ge.getFeatures().appendChild(folder);
// Then later in the placemark creation method
folder.getFeatures().appendChild(placemark);