gpt4 book ai didi

javascript - 使用 D3.js 和 GeoJson 在 map 上的某些坐标上设置小图像

转载 作者:行者123 更新时间:2023-11-27 23:00:04 25 4
gpt4 key购买 nike

我想将用户给出的一些坐标与geojson文件中的坐标进行比较,如果条件成立,那么我想在坐标定义的位置上绘制一个小圆形图像(非常小,就像一个符号什么的)。我必须在 d3.json 方法中编写什么才能访问 geojson 文件中的坐标,进行比较并在其上绘制图像?任何帮助将不胜感激。

这是我的 geojson 文件的一小部分

{
"type": "FeatureCollection",
"features": [
{ "type": "Feature", "properties": {}, "id":"Andhra Pradesh", "geometry": { "type": "MultiPolygon", "coordinates": [ [ [ [ 80.149167, 13.618300 ], [ 80.142031, 13.544708 ], [ 80.126421, 13.584849 ], [ 80.158087, 13.591093 ], [ 80.120622, 13.605812 ], [ 80.149167, 13.618300 ] ] ], [ [ [ 82.258801, 16.689980 ], [ 82.285562, 16.697563 ], [ 82.368074, 16.723877 ], [ 82.311876, 16.602562 ], [ 82.258801, 16.689980 ] ] ],

最佳答案

我相信您需要另一个数据集来满足您的需求。 geometry 集合中的这些坐标用于绘制路径。请参阅文档:

http://geojson.org/geojson-spec.html#geometry-objects

换句话说,这些只是您在 map 上看到的“线”(边界)的坐标。我相信您想要比较每个州(路径)内位置的坐标,例如城市或其他 POI,这是正确的吗?

在这种情况下,你有两个选择:你可以根据用户给出的坐标轻松绘制一个圆或其他任何东西,或者如果这些坐标是城市,你可以搜索另一个包含这些城市地理数据的 JSON 文件,并将用户的输入与这些坐标进行比较。

一旦获得这些坐标(我们称之为经度纬度),您就可以像这样绘制它们:

svg.append("circle")
.attr("cx", function() {
return projection(longitude);
})
.attr("cy", function(d) {
return projection(latitude);
})
.attr("r", whatever)
.style("fill", whatever);

svg 是用于附加 SVG 的变量,projection 是用于设置投影的变量。

关于javascript - 使用 D3.js 和 GeoJson 在 map 上的某些坐标上设置小图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37194188/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com