美文网首页
OpenLayers3学习

OpenLayers3学习

作者: 未松松 | 来源:发表于2017-12-01 14:06 被阅读0次

在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);

相关文章

网友评论

      本文标题:OpenLayers3学习

      本文链接:https://www.haomeiwen.com/subject/sdxwbxtx.html