美文网首页
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