在看过谷歌开发者最近的一段视频后,我决定制作一张英国的区域地图。在这个网站上提到了一些可能性,但后来我不得不放弃*
所以我最终使用了这个网站(数据下载的示例页面):http://mapit.mysociety.org/area/11804.html
注意到GeoJSON下载作为第三个链接关闭了吗?它的文件大小大约为1Mb。当我第一次尝试将其用于我的地图时:
function initMap(){
var ukc = new google.maps.LatLng(54.8, -4.6);
var mapOptions = {
zoom: 5,
center: ukc
};
map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
map.data.loadGeoJson('http://local.mapsite.com:8080/app/jsondata/eastern.json');
}
$(document).ready(function(){
initMap();
});
我得到了上面的错误:未捕获的无效值错误:不是一个功能或功能集合
用谷歌搜索错误时,没有任何有用的结果。
我想也许是野兽的体型,所以我用mapshaper.org把它缩小到更容易控制的10K。还是没有运气!
也许我的GeoJSON格式不好?但它怎么会认为它就在mapit.org上工作,但我发现了一个很棒的用于linting GeoJSON数据的站点:http://geojsonlint.com/ -绒线起作用了!很明显,GeoJSON工作得非常好,它在英国绘制了我的东安格利亚多边形(注意geojsonlint使用OpenStreetMap)。但还是没有运气
我希望能够在合并区域和压缩的同时,拼命地想topojson会起作用。我试过了,但还是犯了同样的错误。这里有一个指向我在谷歌硬盘上共享的topojson文件的链接:someregions.json不走运。
当前GeoJSON文件开始于{“bbox”:[-0.745702,51.448473,1.767999,52.98991],“type”:“GeometryCollection”,“geometries”:。。。
我补充说:
{"type": "Feature", "bbox":[-0.745702,51.448473,1.767999,52.98991],"type":"GeometryCollection","geometries":
请重试不同的区域,因为它们在开始位置附近不包含bbox参数,只需开始{“type”:“Polygon”,“coordinates”:[[[-3.155785,53.427385],-3.151533,53.427328]。。。
还是不走运。
尽管我证明了我的文件足够小,在其他地方工作过,但当我试图将它们放到地图上时,仍然从控制台收到了这些恼人的错误消息。
Uncaught InvalidValueError: not a Feature or FeatureCollection
这是我的压缩GeoJSON文件,通过GDrive公开共享:https://drive.google.com/file/d/0B42Aec8RKcHtNVNZZUxqV0Y5Rkk/edit?usp=sharing
我的下一个尝试将涉及topojson,将所有区域压缩为一个具有内部边界的区域,但我想首先检查一下这里,看看是否有人知道我的问题可能是什么?因为那可能是又浪费了几个小时的无用能量。
*尝试使用军械测量数据失败,因为他们提供了SHD数据,而不是上一个问题中提到的SHP数据。所以我不能使用ogr2ogr将其转换为GeoJSON。
如果您希望将数据加载到JavaScript变量,请使用此
var-map=new google.maps.map(document.getElementById(“googleMap”),mapProp);var data=map.data.loadGeoJson(“GeoJSONfilename.geojson”)
Google Map是显示地图的div id,GeoJSONfilename.geojson保存GeoJSON数据的地方。
我遇到了同样的问题(或者至少类似的问题),并通过引入一个额外的步骤来解决它。
数据来源:我的语义网络在第一轮请求中以GeoJSON格式提供了关于法国南部洞穴的数据。这是通过以下方式直接导入的:
map.data.loadGeoJson(URL);
由于我们可能希望独立于语义网络使用这些数据(应用程序是一个厚客户端),所以洞穴通过jStorage
本地存储。由于循环引用,迭代地图的特征并将这些对象直接存储在jStorage
中失败。我制作了一个手工制作的例程(不够通用,但符合目的)将map.data.Feature
转换成一个可以存储的javascript对象。
从存储获取数据时:
var cave = $.jStorage.get(key);
map.data.addGeoJson(cave);
抛出未捕获的InvalidValueError:不是功能或功能集合错误。
但是:
var geojson = JSON.parse(cave);
map.data.addGeoJson(geojson);
工作罚款。
我的解释是,函数addGeoJson
需要一个javascript对象,而不是字符串。
示例geoJson(原始“cave”)值:
{ "type": "Feature", "geometry": {"type": "Point", "coordinates": [5.368743302306143, 44.0421921072459]},"id": "84.MON.014", "properties": {"nom": "Aven du Grand Guérin", "nid": "7b4703-f387f6f544-0750e59f441be7bb30a7e097c5d725f7", "nature": "Aven", "nodeTime": 1400743203325, "dataId": "5b66137c-1461fdfe5ca-f528764d624db129b32c21fbca0cb8d6", "status": 1}}
GeoJSON的规范可以在http://geojson.org/geojson-spec.html相关(尽管是实验性的)谷歌地图应用编程接口留档可以在https://developers.google.com/maps/documentation/javascript/3.exp/reference#Data找到
因此,要使GeoJSON被Google Maps接受,您需要将MapIt返回的多边形(或类似多边形)包装到Feature或FeatureCollection中,下面是百慕大三角的一个示例:
{ "type": "FeatureCollection",
"features": [
{ "type": "Feature",
"geometry": {
"type": "Polygon",
"coordinates":
[
[
[-80.190262,25.774252],
[-66.118292,18.466465],
[-64.75737,32.321384],
[-80.190262,25.774252]
]
]
}
}
]
}
有关http://mapit.mysociety.org/area/11804.html 它必须是:
{ "type": "FeatureCollection",
"features": [
{ "type": "Feature",
"geometry": /** paste here the complete output of
http://mapit.mysociety.org/area/11804.geojson **/
}
]
}
我正在听我部署的合同的事件。每当事务完成并激发事件时,接收响应将导致以下错误: 未捕获的错误:返回的值无效,是不是没气了?在abicoder.push./node_modules/web3-eth-abi/src/index.js.abicoder.decodeParameters(index.js:227)在abicoder.push./node_modules/web3-eth-abi/src
问题内容: 给定以下表人员(ec,名称,代码,dob,薪水) 问:列出收入高于平均工资的工作人员 我的儿子 这有什么问题? 问题答案: 除非在子句或选择列表中包含的子查询中,否则聚合可能不会出现在子句中,并且正在聚合的列是外部引用。 使用子句示例: 使用子句示例: 子句指定组或集合的搜索条件。只能与该语句一起使用。通常在子句中使用。当不使用时,就像一个条款。
我正试图让OpenCV在我的Ubuntu机器上使用Python。我已经下载并安装了OpenCV,但是当我尝试运行以下python代码时(应该从网络摄像头捕获图像并将其推送到屏幕上) 我得到以下错误: 所以我按照他们的要求去做:安装软件包,移动到我安装OpenCV的文件夹,然后运行 但是当我试图运行python时,它会给我同样的错误。我是不是漏了什么?
问题内容: 关于使用/的最佳实践,我有一个非常基本的问题。我有一个像这样的简单函数(DAO) 并在Web服务中使用DAO功能: OR最好在DAO函数中使用/,如下所示: 问题答案: 没有完美的规则。 如果需要尽早但尽可能晚地捕获异常,通常代码会更清晰,更简单。 您应该考虑在发生这种情况时谁必须采取行动,这决定了您是在方法(addVehicle)内进行操作还是调用方必须执行该操作。 例如: 在此示例
我在创建Azure函数时注意到,一个函数App可以有多个函数。 有人能给我解释一下这背后的原理吗? 我的猜测 - 由于函数应用决定了托管(应用服务计划或消耗计划),因此你可以在应用服务计划上有一个函数应用,然后在该函数应用内有多个函数共享同一应用服务计划。 但这在消费计划中没有意义,因为如果你有一个具有“消费”计划的功能应用程序,其中包含2个功能,这与将两个功能拆分为具有消费计划的2个功能应用程序
本文向大家介绍集的功能,包括了集的功能的使用技巧和注意事项,需要的朋友参考一下 一个功能分配给集合的每个元素,恰好是相关集合的一个元素。函数可以在各种领域中找到其应用,例如表示算法的计算复杂性,计算对象,研究序列和字符串等等。本部分的第三章也是最后一章重点介绍了功能的重要方面。 功能-定义 函数或映射(定义为f:X→Y)是从一组X的元素到另一组Y(X和Y是非空集)的元素的关系。X称为功能域,Y称为