我很难理解OpenLayers使用的坐标系。英国莱斯特大约在。Latitude:52.63973017532399Longitude:-1.142578125但要使用OpenLayers显示相同的位置,我必须使用:Latitude:6915601.9146245Longitude:-125089.1967713例如:varcenter=newOpenLayers.LonLat(-125089.1967713,6915601.9146245);varmap=newOpenLayers.Map("demoMap");map.addLayer(newOpenLayers.Layer.OSM(
我正在编写一个页面,您可以在其中查看有关区域和map的详细信息。详细信息在一个选项卡上,map在另一个选项卡上。HTML的相关部分如下,类来自Bootstrap.DetailsMap图block层来自OSM,矢量图层通过提供KML文件的URL加载。它使用OpenLayers3.0.0执行此操作如下:functionShowMap(){vararea=$('#AreaCode').val();$('#map-container').empty();if(area!=null&&area!=''){varkmlUrl='/kml?code='+area;vartile=newol.laye
我不知道为什么这不起作用。我想答案很简单。在添加新层之前,我需要删除一层。if(graphic){window.map.removeLayer(graphic);}vargraphic=newOpenLayers.Layer.Image('Sightline'+''+SC,url,newOpenLayers.Bounds(derWesten[0].firstChild.nodeValue,derSueden[0].firstChild.nodeValue,derOsten[0].firstChild.nodeValue,derNorden[0].firstChild.nodeValue
当我在OpenLayersmap中绘制多边形时,我想知道标记是否在多边形内部。我在OpenLayersAPI中搜索,但没有找到解决方案。你可以在这个link中看到我的完整代码.我的印象是我必须修改这个功能:functionaddInteraction(){varvalue=typeSelect.value;if(value!=='None'){draw=newol.interaction.Draw({source:vectorSource,type:/**@type{ol.geom.GeometryType}*/(typeSelect.value)});map.addInteracti
OpenLayers.Feature.Vector的API文档说Vector本身根本没有方法。我知道如何让用户通过添加OpenLayers.Control.DragFeature来移动Vector控制映射。因此,如果用户可以移动Vector,那么也必须有一种以编程方式移动它的方法。但我不知道该怎么做。 最佳答案 你移动一个OpenLayers.Feature.Vector通过在其geometry上调用方法来对象对象,而不是向量本身。这些方法包括移动、旋转、调整大小和变换。请注意,您不会在OpenLayers.Geometry基础对象
因此,我的openlayers实现的背景似乎被压成垂直条纹。奇怪的是,它并不总是这样,但即使我将所有更改存储回我知道它正在工作的地方,它仍然是坏的。这让我想知道瓷砖Assets的交付方式是否发生了变化。我已经尝试在使用osm和wms层之间切换而没有任何变化,我们将不胜感激。相关代码如下:initMap:function(){varview=this;varmap=this.map=newOpenLayers.Map();map.render(this.$map[0]);varwmsLayer=newOpenLayers.Layer.WMS("OpenLayersWMS","http:/
我们公司目前正在开发一种新的网络map解决方案。到目前为止,我们决定使用React构建应用程序和OpenLayers4.因为我们要使用Redux我们架构的模式将有一个保存应用程序状态的redux存储。这个栈我们面临的问题如下:map是我们应用程序的核心元素,它的实例需要传递给许多不同的组件。例如,在map上绘制要素的工具需要引用map实例,以便它可以将自己作为交互工具添加到其中。我们讨论了如何构建我们的应用程序以集成OpenLayers与React以最可靠的方式并最终采用两种不同的方法:我们讨论的第一种方法是在应用程序范围的redux存储中保存对map对象的引用,这样它就可以通过@co
如何获取map上的所有标记以便用户可以看到所有标记?我有一些标记。我在map上显示它们。中心LonLat我从我所有标记的lon和lat的最高和最低数字的平均值中得到。所以我使用以下方法将map设置为所有标记的中心点:map.setCenter(centerLonLat,8);8只是一个随机的缩放级别。有什么方法可以计算出完美的缩放级别,以便所有标记都显示在map上吗? 最佳答案 OpenLayers提供了一种类似的方法来避免循环getDataExtent()functionhere.您需要将它应用到包含标记的图层上:varnewBo
我试图找到一些提示,我应该在哪里搜索这个主题,但我什么也没找到-我在这上面花了很多时间。我还试图从OpenLayersmap中获取当前显示视口(viewport)的当前坐标,以仅添加当前视口(viewport)的当前边界框中的这些矢量。 最佳答案 对于OpenLayers2:Map.getExtent()...将返回一个Bounds,然后您可以使用它以多种方式获取纬度/经度坐标:http://dev.openlayers.org/apidocs/files/OpenLayers/BaseTypes/Bounds-js.html#Op
我使用OpenLayers并想在左上角创建另一个导航控件。我知道如何添加控件,但在创建OpenLayers-Map时默认添加此导航。所以我想删除那个控件,添加一个自己的控件。我已经知道,默认控件是OpenLayers.Control.PanZoom。 最佳答案 map对象有一个名为controls的属性,它是OpenLayers.Control对象的数组。如果未明确设置此属性,则OpenLayers将假定您需要默认控件集,包括OpenLayers.Control.Navigation()、OpenLayers.Control.Pan