javascript - 如何使用角度在传单开放街道地图中放置来自 API 的 5KM 半径和经纬度的圆圈
问题描述
在我的角度项目中,我使用传单开放街道地图放置了地图。我必须放置半径为 5 公里的圆圈,经纬度来自 API。但我无法放置圆圈。
我从 API 中获取了 Json 数组,如下所示:
"Drone": {
"Droneid": 1001,
"latlong": [
{
"lat": 12.989839,
"lon": 80.198822
},
{
"lat": 13.051832,
"lon": 80.194480
},
{
"lat": 13.038453,
"lon": 80.227442
},
{
"lat": 13.009018,
"lon": 80.242550
},
{
"lat": 12.976903,
"lon": 80.237056
},
{
"lat": 12.956829,
"lon": 80.193107
},
{
"lat": 12.980917,
"lon": 80.150531
},
{
"lat": 13.007680,
"lon": 80.149158
},
{
"lat": 13.043805,
"lon": 80.154651
}
]
}
}
从 latlong 数组元素(纬度,经度)中,我必须将半径为 5 公里的圆与索引为 0 的元素(即第一个纬度、经度值)放在一起,其余的放在圆内。
仪表板.component.ts
constructor(private ds:DashboardService,private router: Router) { }
Drones:any;
Droneid:string;
latlong:any=[];
Drone:any;
var map = L.map('map').setView([13.0827, 80.2707], 8);
L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', {
attribution: '© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'
} ).addTo(map);
L.circle([this.drones.Drone.latlong.lat[0],this.drones.Drone.latlong.lon[0]],{radius:5000}).addTo(map);
dronedetails(){
this.drones=JSON.parse(localStorage.getItem("drones"));
console.log("drones",this.drones)
console.log("array",this.drones.Drone.latlong);
}
我已经尝试过但没有在地图上显示任何圆圈,任何人都可以帮助我解决这个问题。
解决方案
尝试:
L.circle([this.drones.Drone.latlong[0].lat,this.drones.Drone.latlong[0].lon],{radius:5000}).addTo(map);
代替:
L.circle([this.drones.Drone.latlong.lat[0],this.drones.Drone.latlong.lon[0]],{radius:5000}).addTo(map);
你想要latlong
数组中的第一个元素
更新
this.drones.Drone.latlong.forEach((latlong, idx)=>{
var latlng = L.latLng(latlong.lat,latlong.lon)
if(idx === 0){
L.circle(latlng,{radius:5000}).addTo(map);
}else{
L.marker(latlng).addTo(map)
}
})
推荐阅读
- angular - 角度单元测试无法读取未定义的属性
- flutter - MaterialApp 的主题原色不起作用
- docker - 运行 dockerfile 时修改身份验证令牌 npmrc
- shell - shell 脚本中的 2>&1(通常在 1>/dev/null 之后)变量有什么作用?
- mongodb - MongoDB 多重/嵌套聚合
- javascript - 在 React.js 中,如何在映射之前检查 prop 是否存在?
- mysql - 如何在一行上对数据进行分组(mysql)
- bert-language-model - 微调 BERT 句子转换器模型
- python - 替换两个数据框之间的单个单元格值
- video - FFmpeg 在视频上应用颜色过滤器