OpenLayers移动.弹出最多10像素,左侧15像素
Move OpenLayers.Popup up to 10 pixel and left 15 pixel?
下午好,我在地图上有一个弹出窗口,我只想移动10像素高,15像素到左边,问题是,当你改变它的位置在纬度和经度,是在另一个位置完全,当我缩放远离标记,我想要的只是移动到新的位置,不管缩放,总是保持在标记之上。
var size = new OpenLayers.Size(21,25);
var offset = new OpenLayers.Pixel(-(size.w/2), -size.h);
var icon = new OpenLayers.Icon('/openlayers/img/marker.png',size,offset);
var lonlat = new OpenLayers.LonLat(long,lat);
var proj_1 = new OpenLayers.Projection("EPSG:4326");
var proj_2 = new OpenLayers.Projection("EPSG:900913");
var EPSG = lonlat.transform(proj_1,proj_2);
var marker = new OpenLayers.Marker(EPSG, icon);
markers.addMarker(marker);
marker.events.register("click", marker, function(e){ // on click popup
var popup = new OpenLayers.Popup.FramedCloud(id,
marker.lonlat,
new OpenLayers.Size(200,200),
'<div class="popup">info example</div>',
null,true);
map.addPopup(popup);
});
var labelepopup = new OpenLayers.Popup(null,
EPSG,
new OpenLayers.Size(37,13),
'<p style="font-size: 8.5px;">always info</p>'
);
map.addPopup(labelepopup);
标记上的弹出标签弹出出现,所有我想要的是容纳标记上方的标签弹出
您可以使用getPixelFromLonLat
map函数从纬度和经度获取精确像素,然后使用返回的Pixel
对象添加或删除所需像素。然后,您可以使用moveTo
弹出函数更改弹出位置,该函数需要Pixel
对象。
像这样:
var pixel = map.getPixelFromLonLat(popup.lonlat); //or use another OpenLayers.LonLat object
pixel.x += DESIRED_X_AMOUNT;
pixel.y += DESIRED_Y_AMOUNT;
popup.moveTo(pixel);
相关文章:
- 如何通过溢出来判断元素被切断了多少像素:隐藏在父级上
- 点击facebook像素跟踪注册(JS/JQUERY代码)
- 点击(右键点击)使用传单地图库获取图像覆盖的像素坐标
- 如何使线条的边缘像素保持半透明
- 画布:逐像素绘制图像并请求动画帧计时
- 如何's css标记"-webkit最小设备像素比”;在Javascript中实现
- javascript mootools平滑滚动'x'像素数量
- 逐像素碰撞检测弹球
- 获取图像的平均外部像素颜色
- 如何根据分辨率添加像素
- 仅当窗口宽度>940像素,无论是通过页面加载还是调整大小
- 使用画布在秒内逐像素显示图片
- JS/CSS:如何在向下滚动超过1200像素(高度)后更改z索引值
- 获取以屏幕像素为单位的旋转SVG元素的边界
- 获取元素左侧的像素Javascript似乎只有在窗口稍微调整大小时才起作用
- D3 在更新时调整路径大小(获得 10 像素宽度) - 为什么
- 如何在10秒后加载跟踪像素
- OpenLayers移动.弹出最多10像素,左侧15像素
- 当我的旋转木马动画到10,000+像素时,它会闪烁.这是jQuery的问题吗?
- 我想让按钮每次点击增加10像素,但它循环错误