我尝试在Mapbox中加载geoJson数据并使用插件Leaflet.Draw对其进行编辑
这是一个例子:小提琴
var featureGroup = L.featureGroup().addTo(map);
var geojson = {
"type": "FeatureCollection",
"features": [ ........... ]
}
L.geoJson(geojson).addTo(featureGroup);
Run Code Online (Sandbox Code Playgroud)
当我点击编辑按钮时,我有一个错误:
未捕获的TypeError:无法读取未定义的属性"enable"
对象似乎是可编辑的,但我无法修改它.
在mapbox 绘图层中添加geojson对象的正确方法是什么?
在 Google Big Query 中加载以下 geojson 文件的最佳方式是什么?
http://storage.googleapis.com/velibs/stations/test.json
我在 Google Storage 上有很多这样的 json 文件(更大),我无法下载/修改/上传它们(这将需要很长时间)。请注意,该文件不是换行符分隔的,所以我猜它需要在线修改。
谢谢大家。
我很好奇OpenLayers3中动画功能的可能性.
我非常了解这里提供的示例 http://openlayers.org/en/v3.0.0/examples/animation.html和 https://gis.stackexchange.com/questions/26546/openlayers-animation-examples -and-算法
但是,OL3的官方示例并不完全符合我的需求.
假设我有一个图层(例如geojson),它有一个带有大量时间值的"时间"列.
我想实现类似滑块的功能,根据用户的操作添加/删除功能(或更改其样式).
问题是有一些API可能能够做到这一点,但它们似乎已经过时(代码示例仍在使用ol2).
您对如何使用OL3构建简单动画滑块有任何建议吗?
编辑:它不一定是适当的动画.我想到的一种可能性是每当移动滑块时都会改变图层的样式.尽管如何实现这一点仍然没有任何线索.
这张图片说明了我的想法:

编辑:我目前的方法是有一个滑块,每次移动时触发代码.我试图动态地改变图层样式,但我仍然没有得到可行的结果.
我试图在 Python 中的 folium 地图中显示以下 geojson 文件,但它只显示一个没有任何数据的空地图。
以下是我尝试过的步骤:
我尝试使用下面的 python 代码,但没有显示任何内容。
我使用相同的代码尝试了下面 github 存储库中的其他 geojson 文件,并且数据显示没有任何问题,所以看起来我的 python 代码没问题
我在 github 和Mapshaper中打开了“census_tracts_2010.geojson”文件,数据显示完美,没有任何问题,所以看起来 geojson 文件没有损坏
谁能告诉我如何修复它?
Geojson 文件: https://github.com/dwillis/nyc-maps/blob/master/census_tracts_2010.geojson
Python代码:
import folium
m = folium.Map(location=[40.66393072,-73.93827499], zoom_start=13)
m.choropleth(geo_path="census_tracts_2010.geojson")
m.save(outfile='datamap.html')
Run Code Online (Sandbox Code Playgroud)
多谢!
我希望在地图上创建一个区域,并能够自动确定点(坐标)是否在该区域内。在本示例中,我使用整个美国的 geojson 文件和纽约市的坐标。
Geojson: https: //github.com/johan/world.geo.json
我已经阅读了 shapely 文档,只是不明白为什么我的结果返回 False。任何帮助将非常感激。
import json
from shapely.geometry import shape, GeometryCollection, Point
with open('USA.geo.json', 'r') as f:
js = json.load(f)
point = Point(40.712776, -74.005974)
for feature in js['features']:
polygon = shape(feature['geometry'])
if polygon.contains(point):
print ('Found containing polygon:', feature)
Run Code Online (Sandbox Code Playgroud)
我希望打印包含的坐标,但没有打印任何内容。
我希望在不同的层中使其颜色不同,因此请使用 style_function,如下所示:
style1 = {'fillColor': '#228B22', 'lineColor': '#228B22'}
style2 = {'fillColor': '#00FFFFFF', 'lineColor': '#00FFFFFF'}
test1=gpd.read_file('file2.geojson')
folium.GeoJson(test1,name='test1',style_function=lambda x:style).add_to(mainmap)
test2=gpd.read_file('file1.geojson')
folium.GeoJson(test2,name='test2', style_function=lambda x:style2).add_to(mainmap)
Run Code Online (Sandbox Code Playgroud)
不过上线后不起作用,仍然是默认的蓝色。
我想在我的地理地图上创建六边形,并希望保留 shapefile/geojson 指定的数字边界。如何使用 uber 的 h3 python 库来做到这一点?
我对 shapefile 或任何其他地理数据结构不熟悉。我对 python 最满意。
我有一张包含多个多边形的地图。多边形需要在用户单击/拖动时移动/更新。我想要的功能与此示例相同:https ://www.mapbox.com/mapbox-gl-js/example/drag-a-point/
我想让多边形像 mousedown 上的点示例一样可拖动,能够在地图上移动它,在整个事件中更新多边形节点的 x/y 坐标,但在整个拖动过程中保持 geojson 大小不变。
Mapbox 上的点教程效果很好,但我不确定如何使其与多边形一起使用。
所以我想在 javascript 中合并相邻的多边形,这就是我在代码中实际拥有的:
我想删除内部描边但保留边框描边。
所以我想从这里开始:
对此:
我想保留巴黎的洞 - 我可以定义哪些多边形必须分组,但我无法将它们与以下代码合并:
var map = L.map('map', {
center: [46.52863469527167, 2.43896484375],
zoom: 6,
maxZoom: 18,
minZoom: 7
});
$http.get("france.json").then(function (response) {
$scope.communeFr = response.data.features
$http.get(apiult).then(function (response) {
$scope.showCommune = response.data.Liste
$scope.communeFr.map(x => {
x.show = false
for (let i = 0; i < $scope.showCommune .length; i++) {
if (x.properties.insee == $scope.showCommune[i].insee) {
x.show = true
return
}
}
})
L.geoJson($scope.communeFr, {
filter: function (feature, latlng) {
return feature.show
}
}).addTo(map);
});
});
Run Code Online (Sandbox Code Playgroud)
更新 - …
我想从 geojson 文件导入一些航点/标记。然后确定所有点的质心。我的代码计算每个点的质心,而不是该系列中所有点的质心。如何计算系列中所有点的质心?
import geopandas
filepath = r'Shiloh.json'
gdf = geopandas.read_file(filepath)
xyz = gdf['geometry'].to_crs('epsg:3587')
print(type(xyz))
print(xyz)
# xyz is a geometry containing POINT Z
c = xyz.centroid
# instead of calculating the centroid of the collection of points
# centroid has calculated the centroid of each point.
# i.e. basically the same X and Y data as the POINT Z.
Run Code Online (Sandbox Code Playgroud)
print(type(xyz)) 和 print(xyz) 的输出
<class 'geopandas.geoseries.GeoSeries'>
0 POINT Z (2756810.617 248051.052 0.000)
1 POINT Z (2757659.756 247778.482 0.000)
2 POINT …Run Code Online (Sandbox Code Playgroud)