看到最近的一个video由 Google 开发人员制作 我决定制作一张英国的区域地图。这个网站上提到了几种可能性,但我后来不得不放弃*
所以我最终使用了这个网站(数据下载的示例页面):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();
});
我收到上述错误:未捕获的 InvalidValueError:不是功能或功能集合
修复尝试 1 - Google 一下
谷歌搜索错误没有返回任何有用的信息。
修复尝试 2 - 缩小它
我想这可能是因为这头野兽太大了,所以我使用mapshaper.org将它缩小到更易于管理的10K。还是没有运气!
修复尝试 3 - Lint it
也许我的 GeoJSON 格式错误?但怎么可能考虑到它就在 mapit.org 上工作,但我发现了这个很棒的用于检查 GeoJSON 数据的网站:http://geojsonlint.com/- linting 起作用了!显然,GeoJSON 工作得非常好,以至于它在英国绘制了我的东安格利亚多边形(注意 geojsonlint 使用 OpenStreetMap)。但仍然No Luck
修复尝试 4 - TopoJson
希望我可以合并区域并同时压缩,我绝望地认为 topojson 会起作用。我尝试过 - 我仍然遇到同样的错误。以下是我在 Google 云端硬盘上共享的 topojson 文件的链接:一些地区.json No luck.
修复尝试 5 - 将功能代码添加到 JSON 的开头
当前 GeoJSON 文件开始
{“bbox”:[-0.745702,51.448473,1.767999,52.98991],“类型”:“几何集合”,“几何”:...
I added:
{"type": "Feature", "bbox":[-0.745702,51.448473,1.767999,52.98991],"type":"GeometryCollection","geometries":
修复尝试 6
重试不同的区域,因为它们在开始附近不包含 bbox 参数,而只是开始 { "type": "Polygon", "coordinates": [ [ [ -3.155785, 53.427385 ], [ -3.151533, 53.427328 ], [.. 。
Still no luck.
在(失败)结论中
即使我证明我的文件是足够小, linted and 在其他地方工作过当我尝试将它们放在我的地图上时,我仍然从控制台收到那些令人恼火的错误消息。
Uncaught InvalidValueError: not a Feature or FeatureCollection
这是我通过 GDrive 公开共享的缩小的 GeoJSON 文件:https://drive.google.com/file/d/0B42Aec8RKcHtNVNZZUxqV0Y5Rkk/edit?usp=sharing
我的下一次尝试将涉及 topojson 将所有区域压缩为具有内部边界的区域,但我想首先检查这里,看看是否有人知道我的问题可能是什么?因为那可能又浪费了几个小时的无用能量。
* 尝试使用地形测量数据失败,因为它们提供了 SHD 数据,而不是上一个有关该主题的问题中所述的 SHP。所以我无法使用ogr2ogr将其转换为GeoJSON。