如何解决传单 - 两点之间的路径不是最短的
我正在尝试使用 Leaflet.js 在地图上的两点之间绘制一条路径。我应该在开始时指出 Web/JS 不是我的经验领域,但我已经设法让我的数据呈现 - 但是......当我查看生成的地图时,它似乎表明传单可以不绘制从 +180E 到 -180W 的线。
我的基地位于菲律宾马尼拉。
这是我的数据……我目前存储的是一个名为 2.json 的文件。
[
{
"Band": "20","Date": "2021-07-10T12:00:00.00Z","Receiver": {
"Lat": 36.400001525878906,"Lon": 138.3800048828125,"Receiver": "JAPAN"
},"Sender": {
"Lat": 13,"Lon": 122,"Sender": "DX0HQ"
}
},{
"Band": "20","Date": "2021-07-10T12:01:00.00Z","Receiver": {
"Lat": 19.54,"Lon": -155.66,"Receiver": "HAWAII"
},"Sender": "DX0HQ"
}
}
]
我通过一些 JS 操作它 - 生成这样的 GEOJSON 对象...
var map = L.map('map',{
center: [15.24701,121.29425],zoom: 2
});
L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png',{
attribution: '© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'
}).addTo(map);
$.getJSON('2.json',function (geojson) {
$.each(geojson,function (recnum,val) {
var i = 0;
console.log(recnum);
console.log(val);
var geojsonFeature = {
"type": "Feature","properties": {
"receiver": val["Receiver"]["Receiver"],"sender": val["Sender"]["Sender"],"band": val["Band"],},"geometry": {
"type": "LineString","coordinates": [[val["Receiver"]["Lon"],val["Receiver"]["Lat"]],[val["Sender"]["Lon"],val["Sender"]["Lat"]]],}
};
var geojsonLayer = new L.GeoJSON(geojsonFeature).addTo(map);
map.fitBounds(geojsonLayer.getBounds());
}
)
});
我希望这清楚地表明从马尼拉到东京 - 使用了最短路径。太好了...
但是从马尼拉到夏威夷——“路径”是穿过欧洲——穿过美国——然后是太平洋的一半!!不不不!!!
问题出在哪里?
- 地图不是在某种特殊模式下吗?
- 需要一些额外的 GeoJson 数据信息吗?
欢迎提出任何建议。
谢谢。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。