DeE*_*gge 6 javascript tms geojson leaflet
我正在尝试基于16384x16384像素的图像创建地图,但我还想使用此给定图像的像素坐标在特定位置添加标记.
我创建了一个tile图层,一个map元素并设置了最大边界,这样我就无法使用以下代码滚动出图像:
var map = L.map('map', {
maxZoom: 6,
minZoom: 2,
crs: L.CRS.Simple
}).setView([0, 0], 2);
var southWest = map.unproject([0,16384], map.getMaxZoom());
var northEast = map.unproject([16384,0], map.getMaxZoom());
map.setMaxBounds(new L.LatLngBounds(southWest, northEast));
L.tileLayer('tiles/{z}/{x}/{y}.png', {
tms: true
}).addTo(map);
Run Code Online (Sandbox Code Playgroud)
我想要添加到地图中的点存储在外部文件中作为GeoJSON,它们看起来像这样http://www.de-egge.de/maps/terranigma/terraPoints.js
我使用这段代码加载它们:
var terraPoints = new L.geoJson(points, {
onEachFeature: function (feature, layer) {
layer.bindPopup(
"<b>Ort: </b>" + feature.properties["points[, 1]"]
);
}
});
map.addLayer(terraPoints);
Run Code Online (Sandbox Code Playgroud)
但是,当然,他们没有出现,因为参考系统不匹配.点使用像素坐标,但我的地图使用地理坐标.
有没有办法在加载点时"取消项目"?
任何帮助非常感谢,并提前感谢!
小智 6
var geoJsonTest = new L.geoJson(geojsonFeature, {
coordsToLatLng: function (newcoords) {
return (map.unproject([newcoords[1], newcoords[0]], map.getMaxZoom()));
},
pointToLayer: function (feature, coords) {
return L.circleMarker(coords, geojsonMarkerOptions);
}
});
Run Code Online (Sandbox Code Playgroud)
这是你如何使用,以防你还没弄明白.看到坐标被反转,我在选项中改变了它们.适合我的工作.
归档时间: |
|
查看次数: |
8298 次 |
最近记录: |