我正在开发一个openlayers地图
我需要获得用户绘制的直线的所有点。经度和纬度应保存在数据库中
问题是,我不能使用保存策略保存所有点,我不知道如何获取所有点的经度和纬度。
有人能帮我吗
这是我在保存策略中的代码
var saveStrategy = new OpenLayers.Strategy.Save();
saveStrategy.events.register('success', null, saveSuccess);
saveStrategy.e
获取OpenLayers.Feature.Vector像素坐标的最快方法是什么?我的意思是,我想得到像素(顶部,左侧)相对于已绘制特征的贴图容器的位置,如果可能的话,不需要计算,因为性能提高了
感谢和问候,Rafael。在ol3中:
var geometry = feature.getGeometry();
var coordinate = geometry.getCoordinates();
var pixel = map.getPixelFromCoordinate(coordinate);
如果在OpenLayers.Control.LayerSwitcher中添加了一个带有isBaseLayer:false的层,那么它将显示一个复选框,而baselayers会添加一个单选按钮,以便一次只能激活一个。可以更改默认值,这样非Baselayer也会显示单选按钮而不是复选框。是,在层上设置isBaseLayer:true,然后它们将成为LayerSwitcher控件中的单选按钮。嗨,John,我想为非底图图层提供单选按钮功能。我认为您必须覆盖重画功能,请参见此处第292行:
基本WMS协议无法提供该信息
由于您正在查看的示例似乎是特定于GeoServer的,因此您可以在同一层上运行WFS DescribeFeatureType来获取该信息
更标准的方法是首先运行WMS/SLD DescribeLayer请求(假设服务器支持该请求,这是可选的,GeoServer确实支持该请求),这反过来会给您一个指向WFS DescribeFeatureType的链接,因此,最后,您只需再执行一个步骤(但这样做时您完全遵循了OGC规范)
var wmsLayer = new
我正在查看ol.FeatureOverlay的文档
并以ol.FeatureOverlay为例进行了介绍
像这样
var featureOverlay = new ol.FeatureOverlay({
map: map,
style: function (feature, resolution) {
var style;
var geom = feature.getGeometry();
我查看并尝试获取与给定功能最接近的功能,如下所示:
var foo = pretendLocation.getGeometry();
console.log(getClosestPoint(foo));
我还尝试:
console.log(pretendLocation.getClosestPoint());
location是我这样创建的一个功能
var pretendLocation = new ol.Feature({
geometry: new ol.geom
我想重新创建OSM在编辑多边形时使用的相同样式。我称之为“内部冲程”或“内部缓冲”
OSM示例:
我知道我可以使用ol.style.style数组,其中一个将几何体发送回内部缓冲区。然而,创建新的几何图形仅仅是为了用缓冲区表示原始几何图形,这似乎是资源密集型的。这是推荐的方式吗?我可以以某种高级方式使用ol.style.Stroke
另一个特点是,“内部笔划”的屏幕像素宽度是恒定的,与缩放级别无关。例如,下面是缩小和放大的多边形:
这与我在项目中使用的类似。我从中得到了这段代码,如果你想要
如何使用Feature on方法在OpenLayers功能上添加事件?这对我不起作用
从“ol”导入{Map,View,Feature};
从'ol/render'导入{getVectorContext};
从“ol/layer/Tile”导入TileLayer;
从“ol/层”导入*作为层;
从“ol/layer/VectorImage”导入矢量图像;
从“ol/源”导入*作为源;
从“ol/proj”导入*作为项目;
从“ol/geom”导入*作为geom;
从“ol/style”导入*作为
我已经创建了开放层地图,并使用一些动态纬度和经度在地图中设置了标记
有些纬度和经度值是相同的,所以
单击标记时如何打开spider视图
let path = this.props.waypts;
path.map((lat,index)=>{
let fill = new style.Fill({color:'rgba(255,255,255,1)'}),
stroke = new style.Stroke({colo
我使用的是openlayers版本6.5.0
我用drawinteraction画了一条线
这条线可能与其他线相交
相交时,我能知道相交点和相交线的特征信息吗
绘制完成后,将触发“抽屉”事件
此时,交点应添加到我绘制的直线上
如何向绘制的直线添加交点
交点不是特征,它应该作为我绘制的线的几何图形的坐标添加。您可以使用turp.js查找交点
html,body,.map{
保证金:0;
填充:0;
宽度:100%;
身高:100%;
}
#地图{
位置:相对位置;
}
#形式{
z指数:1;
我使用openlayer生成了一张地图,并使用openSpace添加了一个baundary,openSpace.Layer.Boundary,但是当我在特定级别缩小时,我的图层消失了,我如何保持图层显示?OpenSpace在后台使用openLayer,因此,如果您能告诉我如何在缩小时防止层消失,我想我可以将解决方案应用到OpenSpace
谢谢您是否尝试过使用OS OpenSpace论坛进行此类查询或使用OS OpenSpace Wiki?您将发现大量有用的代码片段,这两个片段都可以从OS Op
我使用OpenLayers来显示与Google地图、Bing等相同投影的地图(即方形墨卡托地图)。据我所知,要启用此投影,我需要使用SphereCalmercator标志。然而,这似乎也改变了LonLat方法等使用的单位,因此我必须将十进制度数转换为米
有没有一种方法可以使用墨卡托投影,但仍然使用十进制度数来指定地图上的位置
谢谢。这取决于“在地图上指定位置”的含义:如果你想添加标记、矢量特征等,你必须重新投影它们的坐标,但你可以这样做
如果您只想以“只读方式”指定位置(例如,在特定坐标系中使用
我试图用下面的代码在向量层上显示标记
var map;
function init(){
map = new OpenLayers.Map('map_element',{});
var wms = new OpenLayers.Layer.WMS(
'OpenLayers WMS',
'http://vmap0.tiles.osgeo.org/wms/vmap0',
{layers: 'basic'},
{}
我想通过单击启用在OpenLayer中选择线要素。如何通过单击它或其附近来选择它?例如:看一看。通常,当功能已经在vectorLayer上时,您应该能够仅通过使用控件来启用选择功能
当您仅在地图上使用WMS时,您必须编写一个tu,以通过WFS as从地图服务器获取要素,将其添加到矢量图层,并使用上面的selectFeature控件选择/高亮显示它们
我想将wms覆盖添加到网站上现有的openlayers地图。
图层存储在geoserver上。当我在geoserver上打开图层时,它工作正常。
数据本身在EPSG:31297中
但当我加载网站时,openlayers是空的。尽管图层显示在图层开关中
我知道有一些关于这个话题的问题,通常都和这个项目有关。但是,在这种情况下,投影应该很好。
我不明白为什么它不起作用
代码如下:
// My layer
var wms_layer = new OpenLayers.Layer.WM
我只想在给定的日志中标记所有医院。我试了很多。但是找不到我的错
var-lat=12.933;
var-lon=77.612;
var=13;
var映射;
函数init(){
map=新建OpenLayers.map(“demoMap”{
控制:[
新建OpenLayers.Control.Navigation(),
新建OpenLayers.Control.PanZoomBar(),
新建OpenLayers.Control.LayerSwitcher(),
新建OpenLayers.Con
为了最大限度地提高我的许可证,我正在尝试理解加载Bing地图分幅的方法
从Bing文档
“当涉及到什么原因时,需要了解一件重要的事情
计费与非计费事务是指API调用是否
在Bing映射“会话”内完成。Bing映射的任何时间都会开始会话
映射AJAX控件、Bing映射Silverlight控件、Bing映射WPF
控件或Bing Maps Windows Phone控件已加载。例如,如果
首先加载这些贴图控件中的任何一个,然后
调用Bing地图静止位置API(即对位置进行地理编码),
REST L
删除并重新添加XYZ层是在ol5中更新它的唯一方法吗
我知道TileWMS有一个updateParams()方法,这很好,但是我使用的一些层是带有时间查询参数的XYZ
下面是我如何处理它的伪代码,但这似乎不是正确的方法
function createLayer() {
return new TileLayer({
source: new XYZ({
url: 'https://url?x={x}&y={y}&z={z}&am
我试图从OpenLayers 5中的一个区段创建一个多多边形
我通过dragBox的地图交互来获取范围
let extent = selectBox.getGeometry().getExtent();
myService.select(extent);
select(extent){
let topLeft = extent.getTopLeft();
let topRight = extent.getTopRight();
let bottomLeft = extent.getBo
在OpenLayers概览图被实例化后,有没有一种方法可以将图层添加到OpenLayers概览图中?添加图层或图层数组作为构造器道具不起作用,因为在加载时,创建地图时我没有图层 默认情况下,概览地图将使用父地图的图层集合,因此添加到一个也会添加到另一个。使用.setLayerGroup为其提供一个新集合,然后可以添加到其中而不影响父集合
var ovControl=新ol.control.OVVIEWMAP;
var map=新ol.map{
控件:ol.control.defaults.ex
我在使用wkhtmltopdf将带有Openlayers地图的网页转换为pdf时遇到问题。我允许在转换脚本中使用javascript,因此顶层脚本可以工作。我的问题是底部没有。目前,我使用type=“module”来构建映射。地图在pdf之前的版本中构建良好,但在pdf转换之后会出现空白
这是一个测试一个基本的javascript
<script type="text/javascript">
document.getElementById
我使用openlayers版本6.4.3和geoserver 2.15.5
我尝试使用wfst插入一个特性,但它不起作用
它作为success函数输入,但结果返回为{}
下面是我的代码,出了什么问题
function editWfst(mode, f)
{
f.set('geom', f.getGeometry());
var format = new ol.format.WFS({featureNS:"schema",featureType:
标签: Openlayers
bingprojectionopenstreetmapcloudmade
我有一个openlayers地图,有不同的图层,比如bing或openstreetmap,还有一个CloudMake图层。bing和openstreetmap显示了完全相同的位置。
如果我把图层切换到CloudMake,位置会跳200米左右
你知道怎么改变吗
var map, options;
function init(){
map = new OpenLayers.Map('map', {
controls: [
您好,我是openlayers的新手,我从openlayers提供的示例中获取了以下代码,我尝试通过单击创建4个多边形,然后将每个多边形拖放到新位置,这可能吗
提前感谢您的帮助
代码:
var映射、向量、控件;
函数init(){
map=newOpenLayers.map('map');
var options={numZoomLevels:3};
var graphic=新OpenLayers.Layer.Image(
“某个头衔”,
'image.png',
新的OpenLayers.B
我已经构建了一个本地平铺服务器来为本地javascript应用程序服务,并且通过openlayers以Layer.XYZ的形式接收地图平铺
我从thinkgeo获得了马萨诸塞州的原始数据。它在正确的坐标处注册,因为它与tilemill内置的国家地图对齐
我通过mapnik从tilemill导出地图(也通过mbtiles以极大的尺寸缩减完成),并配置tilestache以使用相关的输出文件。它的服务似乎是正确的,因为当我加载javascript时,国家地图被成功地拉出来,当我找到马萨诸塞州时,道路
我在Openlayer中有一张地图,并使用矢量功能将一些标记添加到它作为一个新图层。然而,作为默认设置,我得到了一个米色的圆圈,我想使用样式来更改外观,但是即使我检查了文档,我也没能让它工作。基本上,我希望每个标记都有不同的外观,所以我需要为每个标记单独设置。添加标记的代码为:
var point = new OpenLayers.Geometry.Point(16.373056, 48.208333);
point = point.transform(proj, map.getProjecti
在openlayers中是否仍然可以获取wms层的几何类型?如果是,请告诉我怎么做!
在我的代码中,我定义了wms层,如下所示:
layerThuadat = new OpenLayers.Layer.WMS("Thua dat", url + "wms",
{
LAYERS: sLayer, STYLES: '', format: format,transparent : true
},
{
singleTile : true, ratio : 1, isBaseLaye
是否有可能禁用某些ol4组件上的某些默认事件侦听器或停止触发某些基本事件?例如,我希望在不触发“添加”事件的情况下推送ol.Collection中的元素,或者在不触发“更改”事件的情况下更改ol.Feature的几何图形 ol.source.Vector.addFeatures()将添加传递的特性,然后触发单个更改事件-注意,它确实会为每个特性触发一个ADDFEATURE事件。可以创建一个示例JSFIDLE或任何地方。。我们可以在哪里重现相同的错误,或者看到您迄今为止尝试过的任何东西?请参阅结束
当使用ol.format.WFS(GML2和GML3)读取特征时,如果投影为EPSG:4326,则将始终假定这些特征为YX。所以我把它们翻过来。我在Geoserver2.11中使用了这一点,从这个版本开始,服务器可以将坐标作为XY发送,具体取决于通过投影的方式。你可以读到它
通过OL代码,我可以看到它从xml中读取投影,并根据轴方向(对于4326是neu)决定将其翻转,从而导致翻转
问题是我的配置取决于客户端,而服务器可能已经在发送XY。我想知道这是OpenLayers的一个bug还是一个决定
错误:未捕获(承诺中):类型错误:
vectorLayer.getSource(…).getFeatures(…)[i].getStyle(…).getStroke不是函数
我正在尝试获取功能的颜色,但我遇到了这个错误。这就是我正在做的:
for(让i=vectorLayer.getSource().getFeatures().length-1;i>=0;i--){
阵列颜色({
特征颜色:向量层。getSource().getFeatures()[i]。getStyle().getStroke
我是这个OpenLayers API的新手,我被指派使用OpenLayers制作bing地图并在上面放置指针,我找不到任何使用bing的OpenLayers初学者网站,请有人给我提供一个合适的链接,在哪里可以找到“初学者”教程OpenLayers示例页面(3.x版本的其他示例页面不再可用),API文档应该提供更多的信息。如果您是一名完全的初学者,可以在
我正在OpenLayers中从Geoserver提供wms层,并试图在单击地图时从该层中的对象提取特定属性
我是这样定义我的wms层的:
oas = new OpenLayers.Layer.WMS(
"oas",
"http://www.bwgeoserver.com/geoserver/UK_Admin/wms",
{
"LAYERS": 'wealthmap_bdy',
transparent: 'true',
extractAttributes
我正在使用geoserver和POSTGIS
我试图从openlayers上的postgis获取数据库信息,所以我的问题是:
有没有办法将请求sql发送到openlayers上的postgis
或者是否有一个geoserver api将请求sql方言发送到postgis并返回结果
有没有其他方法可以从postgis获取数据库信息
您可以在Geoserver端使用SQL视图。您可以使用要查询的参数编写SQL请求,如选择国家/地区信息,其中国家/地区=“%param%”,然后使用mergeParam
我在OpenLayers v5中添加了带有“declutter”选项的矢量层。
源特征为500(五百),渲染结果几乎为50(五十)。
渲染后,我只想从层实例中获得50个渲染列表。
我知道“forEachFeatureAtPixel”API,但它只能捕获单个像素点
有没有办法获取此列表?您可以使用源上的getFeaturesInExtent获取放置在特定区域中的功能。但目前无法使用declutter选项仅获取可见功能。您可能需要向OpenLayers团队请求新方法。我查看了OpenLayers代码
我是Openlayers的新手,我看过几乎所有的示例和文档。。。。
我有几个.tiff格式的图像,有些具有相同的坐标。我想用angular 8在前端坐标处显示这些图像。
我只是想知道我该怎么做?
我是否需要使用服务器来共享mapserver或geoserver等地理空间数据?
或者我可以将我的.tiff图像转换为PNG并在其坐标中显示它吗
你能告诉我什么是最好的方法吗?有什么例子吗?欢迎来到堆栈溢出。有两种方法可以在web浏览器上渲染geotiff图像。首先,有一种提到它的方式,它涉及到使用诸如
类似网站:
当我尝试在上面的站点上平移或缩放时,感觉非常好,类似于谷歌地图,对于这种用户体验来说非常流畅
我的问题是如何分别使用openlayers实现平移和缩放效果?
我至少在openlayers示例中找不到它们
谢谢你的关注
下面是我源代码的一部分,也许它可以工作,但并不像我想的那样顺利
47.078001399.909001261.796001)
“tilecache/8f/”,
{
“格式”:“图像/png”,
transitionEffect:“调整大小”
});
效果称为传递效果
您
我从示例中看到OpenLayers支持KML。当我查看KML文档时,我看到了非常广泛的功能,我想知道OL是否支持所有这些功能?也就是说,如果我看到Google描述的KML中的功能,我可以简单地假设这将在OL映射中工作吗?如果没有,支持的程度如何?我看过OL文档,但我只看到很少提到KML。谢谢 简单的回答是肯定的,openlayers可以很好地读取KML
虽然并非所有功能都能像google earth那样正常工作,但基本功能(大多数适用于google地图的功能)并不成问题:样式、图标、多边形、线串
我试图在OpenLayers中绘制国家位置,但在更改默认图标时遇到问题
我的基本代码如下:
function addCountryMarker(ll, popupClass, popupContentHTML, closeBox, overflow) {
var feature = new OpenLayers.Feature(alumniCountries, ll);
feature.closeBox = closeBox;
featu
我正在将Openlayers与Mapstraction v1(Mapstraction.js)一起使用,但我无法注册标记。标记根本不响应事件。
功能在这里,任何帮助都将不胜感激
//Add marker manager for specified zoom level
function addmmangerforzoom(zoomlevel) {
try {
nocache_urladdon = "&nocache=" + new Date().getTime();
g
我在图层上绘制了几个功能(OpenLayers.Feature.Vector),呈现如下:
问题是如何在单击特征标记“H”时将其置于前面
我使用'drawFeature()'方法重新绘制它,但它仍然保持原样
有人知道为什么吗?非常感谢 如果你用“悬停”把它带到最前面怎么样?像这样:
http://openlayers.org/dev/examples/highlight-feature.html
如果使用以下工具绘制两个重叠多边形:
http://openlayers.org/dev/exa
请帮我解决这个问题
我有一个路线查找器,可以显示车辆经过的各个点的列表和地图。当我单击列表中的某个项目时,该点可以在地图中看到,但当我在同一位置有两个点时(例如点1、点2),只显示最后一个点(点2)
当我点击点1时,我不知道该怎么做。该点位于点2上方,反之亦然
我的代码是:
// When I clic in a item of the list
function searchPoint(x, y, zoom) {
if (x != 0 && x != '0' &&am
是否有本地方式打印“map”div
我试过几种不同的方法
var printContents = document.getElementById("map").outerHTML;
var popupWin = window.open('', '_blank', 'width=600,height=300');
popupWin.document.open();
popupW
我有一个关于openlayers中多边形之间的拓扑和关系的问题
情况是:
我用两种方法来检查多边形是否重叠,但我得到了一些奇怪的交互作用
如您所见,在蓝色矩形中,多边形被捕捉到红色多边形,这是一个很好的行为,但问题是黄色矩形中的多边形对于它们,我得到了真实的效果,并自动重叠红色样式。蓝色矩形中的多边形和黄色矩形中的多边形仅捕捉到红色多边形的边界
所以我的问题是,;是否有可能忽略限制性多边形(红色)的边界,或者我是否应该找到另一种方法
我正在检查多边形是否重叠的代码示例:
vectorLaye
我是openlayers的新手。我已经做了一些有分数的测试,效果很好。我试图取消理解GeoJSON特性,并尝试从openlayers复制该示例:
我应该缺少一些基本的东西,使用这个我得到了这个错误:
RegularShape.js:362 Uncaught TypeError: this.fill_.getColor is not a function
at e.draw_ (RegularShape.js:362)
at e.render (RegularShape.js:32
我在手机上实现了一个功能,就是在上面的例子中画一个方框,然后删除那个区域,问题是当我切换到触摸时(在Chrome的设备工具栏上有mobile对mobile not touch,以模拟手机屏幕上的触摸事件)。在绘图过程中只有两点。当切换到“移动不接触”时,会出现很粗的蓝线,因为点击触发事件的方式不同
用户将不知道如何使用它,因为我的功能是绘制一个框,然后删除层中的内容(在“抽屉”事件侦听器中用其他所有内容重新绘制层)
我想在触摸绘图过程中显示一个方框,有什么解决方法吗?我用徒手绘图解决了这个问题。
我在一张简单的地图上使用OpenLayers的编辑工具栏。到目前为止一切都很好,我可以画点、线和多边形
通过在给定地图上绘制简单的线字符串,我得到了以下结果:
我真正想要的是,OpenLayers会自动将点添加到线字符串中,如下所示:
这可能吗?您应该查看可以找到的功能样式(样式图、基于规则的样式等)文档。它会给你你所需要的
编辑
我记得,点是线串的一部分,似乎我错了。。。我现在明白了,这是你一直在寻找的要点,而不是它们的样式。对不起,回答错了
我在地理信息系统网站上找到了一个帖子,看起来你
我正在使用OpenLayers 2.13.1开发一个大型软件。我估计将软件迁移到3.8.2版本,但似乎4版即将到来,我担心它是否会再次更改所有api
有人知道吗?没有计划推出OpenLayers的第4版(主要修订版,有突破性的更改)
主要版本3
次要版本8(有8个版本具有新功能)
修订版2(错误修复)
8之后是9、10、11、12、13等等…以下链接文档更改:
“就在拐角处?”当我说这句话时,我的意思是,“在”。。。看来第4版很快就要发布了。但这只是一个猜测,因为这里也讨论了版本号(3.8
在openlayers 4.6.5中
如何将下一个标记移动到新坐标。我试过:
var transform = ol.proj.getTransform('EPSG: 4326', 'EPSG: 3857');
var coordinate = transform([lng, lat]);
var geometry = new ol.geom.point();
geometry.setCoordinates(coordinate);
feature.setGeometry(geometry);
有人能建议我如何将示例上的动画更改为从端点(多段线的端点)开始,而不是从起点开始吗?我已尝试更改以下代码:
var i = 0, interval;
var animation = function(){
if(i == path.length){
i = 4;
}
marker.setPosition(path[i]);
i++;
};
下面是小提琴:你可以这样做
var i = path.length - 1,
interval;
v
Opanlayers当前版本具有用于查看矢量或平铺图像的图层和源对象
图层类型:图像、平铺和矢量
源类型:ImageWMS、TileWMS、Geojson、OSM、光栅、矢量等
那么,我如何确定哪个源与哪个层一起工作呢?我在第页中找不到。接受的源类型显示在层类型的文档中。它适用于图像、矢量和矢量文件。如果源类型的文档中列出了子类,则通常使用它们而不是基类。文档将基类Tile显示为Tile层的源类型,这令人困惑。的子类包括VectorTile,这是不合适的,因为它仅由VectorTile层使用,而
上一页 1 2 ...
5 6 7 8 9 10 11 ...
下一页 最后一页 共 26 页