在OpenLayers3中有两种加载图层的方法:ol.layer.Tile()和ol.layer.Vector();ol.layer.Tile()是加载瓦片地图(底图)的,ol.layer.Vector()是加载图层的(覆盖物)等。
OpenLayers3里面的常用方法有singleclick(左键点击)dblclick(右键点击),pointermove(地图鼠标移动),moveend(地图移动),click(地图点击),还有一种是ol.getView()层的事件change:resolution(地图缩放事件);
事件的自定义是 需要用 dispatchEvent来触发自定义事件;
取得所有Feature的方法是,某一个layer.getSource().getFeatures();
取得某一个值来选中Feature的方法是for循环
$('.MapSearchBtn').click(function(){
var Search=$('.chuanbozhuangtai').val();
var Features=chuanLayer.getSource().getFeatures();
for(var j=0;j<Features.length;j++){
if(Features[j].get('id')==Search){
olMap.getView().setCenter(Features[j].get('zuobiao'))
$('#popupMap').fadeIn()
document.getElementById('popup-content').innerHTML = Features[j].get('id') + ': ' + Features[j].get('name');
PopupMap.setPosition(Features[j].get('zuobiao'))
}
}
或者用另一种
var feature = olMap.forEachFeatureAtPixel(pixel, function (feature) { return feature; });
if (feature) {
if(feature.get('id')&&feature.get('name')){
$('#popupMap').fadeIn()
document.getElementById('popup-content').innerHTML = feature.get('id') + ': ' + feature.get('name');
}
PopupMap.setPosition(evt.coordinate)
} else {
document.getElementById('popup-content').innerHTML = '';
$('#popupMap').hide()
}
增加覆盖物的方法还有一种是用html节点;var sb=new ol.Overlay({
element:document.getElementById('ahcor_overlay')
});
sb.setPosition([213,23])
olMap.addOverlay(sb);
网友评论