问题描述
我使用Leaflet markercluster插件:https://github.com/Leaflet/Leaflet.markercluster
当我将标记的默认坐标更改为其他坐标时,标记会放错地方。 此问题的示例:https://jsfiddle.net/allu1/nbv17oqc/5/
在“ geoJsonData”标签下,第一个标记的坐标已更改,但标记的位置完全错误。
而且我也无法设置地图的中心点。我已经尝试了所有这些方法,但是没有任何效果:
var tiles = L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png',{
maxZoom: 18,attribution: '© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'
});
var centermap = L.latLng(64.299791,27.182384);
var map = L.map('map')
.setView(centermap,5)
.addLayer(tiles);
和
var tiles = L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png',attribution: '© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'
}),latlng = L.latLng(64.299791,27.182384);
var map = L.map('map',{center: latlng,zoom: 5.5,fullscreenControl: true,}).addLayer(tiles);
和
var tiles = L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png',attribution: '© <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors'
});
var map = L.map('map',{
center: L.latLng(64.299791,27.182384),zoom: 4})
.addLayer(tiles);
我使用了Leaflet全屏插件:https://github.com/Leaflet/Leaflet.fullscreen 全屏选项显示得很好,但是地图的中心点不起作用。最主要的是中心点将起作用。
如有需要,我会提供更多信息。感谢您的回答!
解决方法
您似乎正在混淆Eastings和Northings。我不确定您要在哪里结束积分,但是(N64,E27)在芬兰,而(N27,E64)在巴基斯坦。
在Leaflet中,您指定了类似var latlng = L.latLng(latitude,longitude);
的坐标(请参见the docs)。
在GeoJSON中(有关规范,请参见RFC7946),反之亦然。坐标以"coordinates": [longitude,latitude]
格式指定。您可以从JSFiddle代码中的新西兰点开始以这种方式进行查找,因为175°作为纬度无效。
我从您的JSFiddle中看不到为什么将地图居中不起作用。但是,可能是因为您在脚本末尾使用了map.fitBounds(markers.getBounds());
。这将使地图在标记群的中心居中,从而覆盖您最初可能设置为中心点的所有内容。因为您的测试坐标相距太远(一个在巴基斯坦,另一个在新西兰),所以JSFiddle中的代码将中心点设置为婆罗洲附近的某个地方。