问题标签 [geojson]
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.
javascript - 在 JavaScript 中按类别对地图点进行分组
我通过解析动态创建的 GeoJSON 文件将点放在地图上。我想通过它的类别属性对这些点进行分组(每个点都有一个类别属性)。我已经找到了如何在我的映射库(传单:http: //leaflet.cloudmade.com/examples/layers-control.html )中向组对象添加点,但它假设我知道类别将是什么(例如var citiesLayer = new L.LayerGroup();
)。
我更喜欢做的是解析每个点(已经在做那部分),并检查是否存在类别 X 的组,然后将该点添加到该组或创建一个组并添加该点. 这将允许我一次打开/关闭某个类别的所有点。关于我如何做到这一点的任何想法?我对 JavaScript 知之甚少(我是一个 Python 人)。
这是我的 JS:
一个示例 GeoJSON 点:
用于对每个点进行分组的属性是e.properties.event_set__all[0].category__category
。
javascript - 在 D3.js 中使用 geoJSON 数据绘制线条
我正在尝试使用 D3 框架 (http://mbostock.github.com/d3/) 绘制美国州的轮廓,但在生成实际 SVG 数据时遇到问题。我已经编写了我的代码以遵循 Chloropleth 示例(因为它最接近于该项目所需的内容),确保提供的数据采用 geoJSON 格式,并且 AFAIK 的后端部分工作正常。
问题是,当我查看 DOM 时,该<svg>
对象仅包含一个<g>
元素(根据示例,我手动创建了该元素),并且没有任何子<path>
元素应该位于它之下。我的代码似乎与示例完全相同,并且我的数据看起来正确,尽管我输出的是 MultiPolygons 而不是示例使用的 Polygon 对象。
我们的应用程序是一个带有 jQuery 的 RoR 项目(我们只使用 D3 来实现 SVG 和地理功能)。测试页面尝试根据从美国各州的下拉选择中的选择,在<svg>
名为 的 div 下创建一个元素:theArea
我们提供给 D3 的数据如下所示:
有人能告诉我我们做错了什么吗?我是地理和地理信息系统的新手。我怀疑问题出在data()
函数上,因为它看起来应该<path>
为每个对象创建空白对象Feature
(尽管目前我们只有一个),但 D3 文档似乎不清楚(并且难以理解)。
编辑:只是想补充一点,我们生成的 geoJSON 是由 GeoRuby gem 的 geoJSON 扩展创建的。实际的地图线来源于美国人口普查局制图边界文件的合并数据,这些数据被转换为 SQL 并使用 postGIS 保存。我的一部分怀疑 geoJSON 扩展做错了什么,所以这是我的下一个攻击途径。
openlayers - GeoJSON:FeatureCollection 中是否允许使用属性?
我在规范中找不到任何相关信息:http: //geojson.org/geojson-spec.html
是否允许properties
在 a 中有密钥FeatureCollection
?还是只有功能才有可能?
如果可能,我如何访问其中的属性openlayers
?提前致谢。
json - 如何生成geoJson数据?
我想为一个国家及其所有州生成 geoJson 数据。在我看到的所有示例中,所有数据都是针对美国的。
我想知道在哪里以及如何获得其他国家的 geoJson 数据及其对应的所有州?甚至可能吗?
c# - C# DataContracts 是否足以正确描述 GeoJSON?
所以我一直在尝试将 GeoJSON 映射到 C# DataContracts,以便我们能够轻松地支持在 WCF/REST-apis 中返回 GeoJSON。我使用 DataContracts 和序列化的次数越多,我就越觉得这是一个我无法理解的魔法黑匣子。
无论如何,就我而言,这是:
GeoJSON.cs:
程序.cs:
程序的输出:
问题
- 我得到了这些 __type-tags
- 类型字段被序列化为“0”而不是它们的实际名称。
在 WCF 服务中使用它们时,我也会遇到这些问题。有任何想法吗?关于我是否会遇到反序列化这个问题或者这个想法是否合理的任何暗示?
php - 存储在 geoJSON 中的点不显示在地图上
我有一个 geoJSON 文件,其中包括:
这个 JSON 文件是在一个 php 脚本中构建的:
当我尝试通过 polymaps.org 框架加载它时,没有显示任何点。除了加载地图的标准内容外,我还使用此 javascript 来解析 geoJSON。
CSS如下,所以点应该看起来像一个红圈:
奇怪的是,当我将 geojson 文件指针更改为由 GIS 应用程序构建的文件时,它可以工作。所以我敢打赌我的 geoJSON 已损坏。但是当我通过http://jsonlint.com/运行它时,它会验证。
有谁知道这怎么可能?
svg - GeoJson 世界数据库
我正在做一个项目,需要使用 d3.js 显示国家和城市的地图。
实际上,D3 支持 GeoJson 格式。通常,我猜,GeoJson 格式是从其他格式转换而来的。
我用这个 GeoJson 数据发现了一些地方:
http://mbostock.github.com/protovis/ex/countries.js
但是,这只是一个国家列表,我正在寻找一些服务或程序,让我能够设置 ID、获取此格式并将其转换为 GeoJson,或者更好地在 GeoJson 中获取。
谢谢!!
javascript - 如何更新传单弹出窗口中的内容?
我正在使用带有Leaflet的Wax。我正在设置美国地图,使用传单的 L.GeoJSON 用 GeoJSON 绘制州边界。
我能够在地图加载期间设置所有内容,但我需要能够在绘制地图后调整弹出窗口中的内容。这是我正在做的精简版:
现在,一切都很好,弹出窗口有很好的内容,但是我想稍后对其进行更改,并且无法引用它。我在源代码中看到 bindPopup() 返回“this”,我认为它是 L.Popup 对象,但最终得到了其他东西。因此,例如,以下代码将更新活动弹出窗口,而不是我试图获取的特定 L.Path 对象(状态)的特定弹出窗口。
用 firebug 挖掘 DOM,我还可以看到弹出内容设置在一个内部变量中,我可以对其进行更新。但是,更新它不会更新 HTML,而且我无法发现 Alaska 的密钥为 52。 _layers[52] 也没有我希望的 setContent() 方法,如果它是 L .Popup 对象。
所以,我有点卡住了,找不到我需要的东西。在初始渲染后,我有什么方法可以参考和更新地图上特定弹出窗口的内容?
javascript - 传单 js:将 POI 绘制为画布
我想用 Leaflet 绘制许多地理点。因此我想使用 HTML5 画布来提高性能。我的数据源是geoJSON。正如我在 Leaflet 的文档中看到的那样,尚无法将地理位置绘制为画布。
我想我应该在这里联系:
pointToLayer: 函数 (latlng) { }
有人知道如何将我的 latlng 对象绘制为画布吗?
php - 在循环中分配带有 PHP/Postgresql 查询值的 javascript 数组
所以,我有一个 postgresql 数据库,我正在查询特定列的值并将每个值分配给一个 javascript 数组。现在我有一个 javascript 函数,可以在地图上输出这些数据。当我手动测试数组时(一一输入相应的数组索引),它完美地返回输出。但是在一个循环中(当我想一次全部输出时),我只能看到第一个元素的输出。数组的其余部分被简单地忽略或出现错误。我不明白错误在哪里。这是代码: