问题标签 [openlayers]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
geometry - 如何在 OpenLayers 中获取多边形的坐标
我一直在寻找如何确定 OpenLayers 中包含多边形(特征)的点的坐标。
假设我创建了一个类似于本例中的多边形。我需要知道组成多边形的点,所以我可以将它们保存在某个地方。
我敢打赌,这很容易。我只是找不到任何东西,可能我不知道我应该搜索什么。
提前致谢。
javascript - OpenLayers 格式 JSON 返回空 responseText 字符串
在 OpenLayers 论坛发帖一周后没有收到我的问题的回复,我决定看这里。我用谷歌搜索和搜索,甚至发现了一个关于这个主题的精彩教程,用西班牙语,但写得很好,谷歌翻译能够完美地翻译它。
gisandchips.org/2010/05/04/openlayers-y-panoramio/
所以我遵循了本教程,现在我正在尝试访问 Panoramio 数据 API 来查询照片并将它们显示在我的地图上。但是,我的代码失败了:
var panoramio = json.read(response.responseText);
根据萤火虫和警报(response.responseText),我的responseText是一个空字符串......
在萤火虫中,我有 GET url
http://localhost/cgi-bin/proxy.cgi?url=http%3A%2F%2Fwww.panoramio.com%2Fmap%2Fget_panoramas.php%3Forder%3Dpopularity%26set%3Dfull%26from%3D0%26to%3D40%26minx%3D-20037508.3392%26miny%3D-20037508.3392%26maxx%3D20037508.3392%26maxy%3D20037508.3392%26size%3Dthumbnail
这向我展示了有效的 JSON。而且我知道我的响应对象不为空,因为 alert(response) 表明它正在获取 [object XMLHttpRequest]
老实说,我没有想法。在尝试解析 JSON 之前,我尝试解析 XML,但完全没有运气。我真的很喜欢将 RSS 和 API 数据放到我的地图上的想法。下面附上我的代码,感谢您提供的任何反馈:)
谢谢,
艾尔谢
drupal - openlayers drupal 缺少站点构建模块
我的 Acquia-drupal 安装 acquia-drupal-win-1.2.30-5322.19124 中没有http://xxx/ admin/build/openlayers/layers/
我可以做些什么来让 openlayers 在 drupal 的 Site-building 部分中?
目前我只能在http://xxx/admin/settings/openlayers(站点配置)中配置东西。这与 Acquia 版本的 drupal 有关系吗?
google-maps - Openlayers 商业应用:许可问题?
我正计划创建一个商业车队/资产跟踪网络应用程序,但当我发现 Google 和 Microsoft 在商业环境中使用他们的服务的高昂价格时,我感到沮丧。我找到了 Openlayers,它声称是免费的,所以我想知道是否有人有商业使用它的经验?
我看起来 API 的使用是免费的,但这是否也包括地图?Openlayers 还允许您使用谷歌作为地图提供者,但如果我这样做,我是否会违反谷歌的 TOS,因为它是商业的?
如果这不是提出此类问题的正确地方,我深表歉意,因为它与编程问题没有直接关系,但我在其他任何地方都找不到明确的答案,我想 SO 上的某个人有创建商业广告的经验测绘应用。
oracle - 坐标转换
我正在使用 OpenLayers、Google Maps 和另一个专有资源来处理一个用于在地图上显示多边形的 Web 门户的小组件。
用户在 PSAD56 (UTM) 基准中有点,我需要将其更改为 WGS84 才能与 Google 地图一起使用。我手头有没有空间扩展的 Oracle 9i 和 postgis。Oracle 定位器或 Postgis 可以进行这种转换吗?或者有没有开源可以做到这一点?
javascript - 根据缩放级别显示 WMS 图层
我整天都在做这个,老实说,我没有想法。我有一些 WMS 图层,我想根据当前的缩放级别显示/不显示。是的,我已经浏览了 API 文档,它们似乎很清楚,但是我遵循了建议的所有内容,但没有得到想要的结果:(
这是我查看的来源之一:http://trac.osgeo.org/openlayers/wiki/SettingZoomLevels
然后更糟糕的是,我发现如果您在加载时显示 Open Street Map 基础层,它似乎会限制您对地图的 numZoomLevels 的控制,这正是我所需要的,因为我确实想将其用作我的加载基础层...
所以我的问题是:
我究竟做错了什么?在加载时使用 Open Street Map 基础图层时,是否真的没有控制缩放级别的解决方法?还是有什么我不知道的?
以下是我的一些代码尝试: 采取 1:tib_villages 层应该只在缩放级别为 8-10 时显示,不起作用!
采取 2: tib_villages 图层应该只在缩放级别为 8-10 时显示,地图应该只有 10 个缩放级别,而是有 19 个,因为 Open Street Map Layer 强制执行它,不起作用!
;
采取 3:在加载时去掉 Open Street Map 基础图层后,地图只有指定的 10 个缩放级别,但 tib_villages 图层应该只在缩放级别为 8-10 时显示,不起作用!
衷心感谢您的所有建议!
艾尔谢
openlayers - OpenLayers - 如何从现有的 lonLat 点绘制多边形?
我的数据库中有来自用户定义的多边形的经纬度顶点。我的问题是:我现在如何在地图上重新创建和显示它们?使用 Google Maps API 很容易做到这一点,但我找不到任何关于如何使用 OpenLayers 做到这一点的文档或示例。有没有人有这样做的经验?
javascript - 仅在另一个事件被触发后触发一个事件
我有一个带有缩放控件的 GeoExt 地图面板。当我的地图上的图层“超出范围”时,我真的很想禁用树面板中的一些节点,也就是它们setVisibility
设置为 false。我有我的 zoomend 事件工作,我也有一个 checkchange 事件工作,但是如果用户将缩放栏推到一个以上级别,则 checkchange 事件会被多次评估,另一个问题是即使在 zoomend 事件结束后 checkchange 仍然每次用户仅单击打开或关闭节点的复选框时都会触发。我真的需要一种方法来控制这个 checkchange 事件只运行一次并在用户不使用缩放栏时阻止它触发......
感谢您所有的时间和反馈:)
艾尔谢
javascript - OpenLayers 弹出 contentDiv => 按钮中的 qx.ui.root.Inline 不会点击!
我正在开发一个集成 OpenLayers 和 Qooxdoo 的项目……到目前为止,我取得了很大的成功。但是现在我希望能够将 qooxdoo 小部件放置在 OpenLayers 弹出窗口(在本例中为 FramedCloud)中,并且发生了一些奇怪的事情——按钮不会点击!
悬停事件似乎正在工作,我已经确定 qx.event.handler.Focus.__onNativeMouseDown 正在执行,所以点击事件似乎正在进入 qooxdoo 事件系统(?),但是 qx.event.handler .Mouse._onButtonEvent 永远不会被调用!
要么 OL 中的某些东西妨碍了我,要么我做错了什么。有关测试用例,请参阅以下其中一个或两个链接:
http://s89238293.onlinehome.us/olisletest/build/index.html
http://s89238293.onlinehome.us/olisletest/source/index.html
(请注意,“源”链接会加载qooxdoo和OpenLayers的未压缩/调试版本,因此加载需要一段时间!)
上面的链接建立在骨架 qx Inline 应用程序上,这是代码的主要自定义部分:
谁能帮我弄清楚点击事件发生了什么?
== 编辑 ==
谢谢亚历克斯,我已经做了更多的尝试来解决这个问题。
我在 OL 映射之外尝试了基本相同的代码的测试,它可以工作,所以它被消除了。
我对 OL 弹出对象另外做了这个:
我认为这会禁用弹出窗口本身的所有事件处理(例如,请注意,您现在可以通过在弹出窗口中拖动来平移地图 - 这是次优的,但证明了这一点)。而且,这并没有帮助......这似乎表明地图本身的事件处理可能正在阻止事件。由于显而易见的原因,我无法在地图上禁用鼠标事件。
我将把它传递给 OpenLayers 邮件列表,希望得到更多帮助……但与此同时,有人对解决方法有任何想法吗?对我来说很奇怪,某些事件(鼠标悬停)可以正常工作,但单击却不行。在这一点上,我什至对黑客持开放态度。
另外,我很难调试这个...我尝试在 Firebug(和 Safari 调试器)中使用“Break on Next”功能,但由于 qooxdoo 在内部运行多个间隔计时器,我无法捕捉到点击,因为噪音(间隔代码总是在我点击之前出现)。任何有关如何在调试器中捕获点击事件的提示将不胜感激!
openlayers - 如何在 OpenLayers 图层名称中使用标记
我有许多按以下方式定义的数据层:
我添加到地图中,它出现在图层切换器上,一切都很好。但是,我注意到生成的 HTML 包含以下内容:
您会注意到表单输入 ID 和 NAME 都逐字包含图层名称。这对我来说似乎有点奇怪,因为 ID 和 NAME 属性很容易变得无效。更复杂的是,我希望在图层标签上添加一些标记,以便以不同的语言显示/隐藏图层名称。在表单字段中有标记是 a) 垃圾和 b) 导致 IIS 在提交表单时抱怨“可能不安全的请求”(asp.net webforms,包装页面的单个表单,因此如果没有负载就无法真正逃脱它工作!)
我知道如何规避不安全页面请求警告,但如果我这样做,我的管理员会停下来。我想知道是否有人知道在不干扰底层控制标记的情况下巧妙地设置图层标签的方法?
干杯,史蒂夫