我正在从事一个使用类型记录开发的第3层项目,因此:
let ol = require("openlayers");
我想使用未在NPM ()上发布的转换扩展插件。
我尝试了以下几点:
let ol = require("openlayers");
require("<path>/ol/transforminteraction");
但是,我得到以下错误:
错误TypeError: ol.interaction.Transform不是构造函数
和
未定义的ReferenceError: ol
如何能够正确地包含/集成此资
我目前正在使用openlayers并使用新的ol.source.ImageStatic作为我的地图。 我希望在地图的顶部有一个透明的图像,并使用带有element.innerHTML的ol.Overlay来覆盖图像。然而,我现在遇到了这种方法的缩放问题。我希望透明的图像随着地图的缩小而缩小,并在放大锚定到地图中的一点时放大。 目前看来,当你在地图上缩小时,覆盖的图像会扩展,而不是固定在相同的位置,而当你放大时,图像会变小,并返回到它的位置。 如有任何帮助,将不胜感激,谢谢! var element = document.createElement('div');
eleme
我正在尝试将弹出窗口分配给标记。我已经创建了一个弹出式窗口,并将其绑定到一个标记。然而,它并没有出现。我测试了一个显示的alert(),但弹出窗口没有。
有人能帮我解决这个问题吗?
var lonLatMarker = new OpenLayers.LonLat( 78.447876 ,17.371610 )
.transform( new OpenLayers.Projection("EPSG:4326"), // transform from WGS 1984
map.getProjectionObject() // to Spherical Mercator Pr
我有一张地图,上面显示了一个带有一些标记的KML向量层。当你点击标记时,它会弹出一个信息框。我希望能够自动弹出一个信息框,基于传递到页面中的参数。我认为我需要使用getFeaturesByAttribute()来查找名称,但是features数组似乎总是空的。(虽然我在使用FireBug时可以看到内容)
我需要做什么来获取数组中的项?
代码:
function init()
{
var options = {
projection: new OpenLayers.Projection("EPSG:900913"),
单击标记时未显示OSM弹出窗口。我已尝试单击标记上的事件。它起作用了吗?建议我如何在单击时在标记上显示弹出窗口。
我尝试过的JS代码
var newlonLat = new OpenLayers.LonLat( 78.447876 ,17.371610 )
.transform( new OpenLayers.Projection("EPSG:4326"), // transform from WGS 1984
map.getProjectionObject() // to Spherical Mercator Projection
);
var zoom=9;
下午好,我在地图上有一个弹出窗口,我只想向左移动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 lonla
我有一个关于OpenLayers.Marker事件的问题。我想要一张地图,上面有少量的标记和弹出窗口。默认情况下-点击标记显示弹出。单击任何其他标记隐藏prevous弹出并显示新的。它可以很好地应用于:
marker.events.register('click', marker, function(e){
var popup = new OpenLayers.Popup.FramedCloud("Popup",
new OpenLayers.LonLat(v
在我的应用程序中,ol-ext: map控件条有问题。它没有在地图上显示,我也不明白为什么。这是我的密码:
// Main control bar
var mainbar = new ol.control.Bar();
/* Standard Controls */
mainbar.addControl (new ol.control.ZoomToExtent({ extent: [ 265971,6243397 , 273148,6250665 ] }));
mainbar.addControl (new ol.control.Rotate());
mainbar.addContro
我正在使用Openlayers创建一个关于1000+点的地图。目前,当我单击一个点的图标时,该点的描述会显示在弹出窗口中,要退出弹出窗口,我需要再次单击该点的图标。有没有办法修改代码,这样我就可以按下关闭按钮,或者我可以在地图上的任何地方单击,这样弹出窗口就会再次关闭?我知道有一种方法,如果我只是使用常规的弹出窗口,但我使用的是Openlayers.layer.text层。
var pois = new OpenLayers.Layer.Text( "Frequencies",
{ location:"./frequencyrange.t
当我把一个功能放在地图上时,我想确保它在视图中。
我目前正在使用panTo()和特性的质心来实现这一点。但是,这会使地图每次都以特征为中心。这可能是一个非常紧张的地图时,特征附近。
我想要的是一些地图平底,足以确保弹出窗口在视图中(例如,在地图的边缘与中心位置)。如果地图上已经有了这个特征.别动。
下面是生成特性的代码(注意:这是一个高频循环,快速添加/删除功能以创建动画):
var feature = new OpenLayers.Feature.Vector(
new OpenLayers.Geometry.Collection(geometries
我有一个从geoserver加载的wfs图层的地图,这些要素是使用bbox策略加载的,因为有超过60,000个要素。我有一个简单的点击功能,可以显示每个功能的ups信息
map.on('click', function(evt) {
//random stuff to do here
var pixel = evt.pixel;
displayFeatureInfo(pixel); //function to get features and display the info
});
对于我的搜索栏,我使用了easyAutocomplete,它搜索一个json,其中每个
嗨,我正在使用OpenLayers 3弹出窗口,我试图将弹出位置集中在弹出位置的底部-中间,我点击了任何宽度和高度,我找不到我怎么做的.
我想要动态的东西,而不是基于预定义的高度和宽度。
我在openlayers 3的例子上创建了一个JSfiddle
如果left:50%;工作的话,这会很简单,但是因为它是position:absolute,所以没有效果。
.ol-popup {
position: absolute;
...
//left:-50%; Doesn't work so I don't know what to do
left: -50px;
我正在构建一个页面,从一个文本文件加载gpx跟踪点作为POI的谷歌地图层。当用户单击POI时,他们会看到从该位置拍摄的照片的缩略图。我想要的是当用户点击缩略图时,Fancybox弹出一个放大的照片版本。这不能正常工作,因为页面加载时还没有创建弹出窗口。看起来我需要将我的jQuery代码添加到事件侦听器中,但是我不知道如何添加。我的无效代码是:
<script type="text/javascript">
var map;
function init() {
map = new OpenLayers.Map('map'
我有一个OpenLayers地图,上面有一个标记和一个弹出窗口,当我点击这个标记时,弹出窗口就会出现。这在IE8中运行良好,但在Firefox3.6中就不行了。你知道为什么吗?据我所知,mousedown事件没有被触发,因为我的日志消息没有出现。地图在上,我用来创建标记和弹出窗口的代码是:
function addMarker() {
var map = g_waze_map.map;
var markers1 = new OpenLayers.Layer.Markers( "Markers1" );
g_waze_map.map.addLayer(m
在openlayers中,我正在读取一个kml字符串,该字符串是用Perl从oracle动态创建的。我是这样读kml的。
function GetFeaturesFromKMLString (strKML) {
var format = new OpenLayers.Format.KML({
'internalProjection': new OpenLayers.Projection("EPSG:900913"),
'extranalProjection': new OpenLayers.Projection("
我已经修改了弹出行为js文件: openlayers_behavior_popup.js直接在模块中,位于openlayers/plugins/behaviors。
它按照我的预期很好地工作,但我不想把我自己的修改放在原来的模块中,我想把它附加到我现有的模块中,但是我不知道怎么做。
我希望网站不要采取的行为在第一层/插件/行为,但遵循我的弹出行为代码从我自己的模块。
Drupal.openlayers.addBehavior('openlayers_behavior_popup', function (data, options) {
// normal
var
我正在使用OpenLayers查看地图,但标记的弹出窗口有问题。当标记被加载时,我给它们分配了两个事件: moouseover和mouseout,但是当任何一个标记被这些事件触发时,即使我将鼠标移到其他标记上,也只会显示第一个创建的标记的弹出窗口。这就像我只为第一个标记创建这些事件,而不是为所有标记创建。有什么想法吗?谢谢
var listMarkers = getMarkers();
for (var i = 0; i < listMarkers.length; i++) {
var size = new OpenLayers.Size(21,
我用地图创建了一个简单的站点,在那里我连接到一个wms服务器。现在的问题是,地图没有显示,只是一张小图片。这是我创建的站点:
下面是我一直使用的代码:
<script type="text/javascript">
var map;
var wms;
var map_controls = [new OpenLayers.Control.LayerSwitcher(),
new OpenLayers.Control.PanZoomBar(),