leaflet - 只有一些标记显示
问题描述
将地图上传到我的网站后,我遇到了一种奇怪的行为。一个标记层被显示,其他的则不显示。当我打开本地 html 文件时,它在本地运行良好。上传后,我得到了这个: http: //maps.dungeonmasterresources.com/Kisandra_map.html
标记存在并且可以单击,但不显示。在 Firefox 中,您甚至可以看到它应该在的框架。但让我感到困惑的是,它在本地工作,但上传后只显示城镇图层。
相关代码如下所示:
//create map icon class
var TaladasIcon = L.Icon.extend({
options: {
iconSize: [50, 50],
iconAnchor: [25, 25],
popupAnchor: [0, -25]
}
});
//define icons
var metropolisIcon = new TaladasIcon({iconUrl: 'img/metropolis.png'}),
cityIcon = new TaladasIcon({iconUrl: 'img/city.png'}),
townIcon = new TaladasIcon({iconUrl: 'img/town.PNG'});
villageIcon = new TaladasIcon({iconUrl: 'img/village.png'});
//TODO - define map marker coordinates. Pull icon coordinates from Photoshop after vertical mirror
var yaurah = xy(619, 1210);
var schwarzhafen = xy(227, 1500);
var wolynsfurt = xy(324, 1082);
var khazatwurn = xy(454, 1734);
var khazatvallhir = xy(733, 1715);
var khazatmigdahl = xy(541, 1591);
var tannenburg = xy(590, 1406);
var kondeori = xy(1529, 1331);
var gantol = xy(1038, 1089);
var styria = xy(969, 1044);
var karamorkia = xy(893, 998);
var khirruku = xy(760, 979);
var quellburg = xy(490, 935);
//TODO - define map marker popups
//metropolises first
var yaurahMarker = L.marker( yaurah, {icon: metropolisIcon}).bindPopup('<h2>Yaurah</h2><p>Hauptstadt des Reiches</p>').bindTooltip("Yaurah");
//cities next
var schwarzhafenMarker = L.marker( schwarzhafen, {icon: cityIcon}).bindPopup('<h2>Schwarzhafen</h2><p>Hauptstadt der Schnittlande</p>').bindTooltip("Yaurah");
//towns after that
var wolynsfurtMarker = L.marker( wolynsfurt, {icon: townIcon}).bindPopup( 'Wolynsfurt').bindTooltip("Wolynsfurt");
var khazatwurnMarker = L.marker( khazatwurn, {icon: townIcon}).bindPopup( 'Khazat Wurn').bindTooltip("Khazat Wurn"),
khazatvallhirMarker = L.marker( khazatvallhir, {icon: townIcon}).bindPopup( 'Khazat Vallhir').bindTooltip("Khazat Vallhir"),
khazatmigdahlMarker = L.marker( khazatmigdahl, {icon: townIcon}).bindPopup( 'Khazat Migdahl').bindTooltip("Khazat Migdahl"),
tannenburgMarker = L.marker( tannenburg, {icon: townIcon}).bindPopup( 'Tannenburg').bindTooltip("Tannenburg"),
kondeoriMarker = L.marker( kondeori, {icon: townIcon}).bindPopup( 'Konde Ori').bindTooltip("Konde Ori"),
gantolMarker = L.marker( gantol, {icon: townIcon}).bindPopup( 'Gantol').bindTooltip("Gantol"),
styriaMarker = L.marker( styria, {icon: townIcon}).bindPopup( 'Styria').bindTooltip("Styria"),
karamorkiaMarker = L.marker( karamorkia, {icon: townIcon}).bindPopup( 'Karamorkia').bindTooltip("Karamorkia"),
khirrukuMarker = L.marker( khirruku, {icon: townIcon}).bindPopup( 'Khir Ruku').bindTooltip("Khir Ruku"),
quellburgMarker = L.marker( quellburg, {icon: townIcon}).bindPopup( 'Quellburg').bindTooltip("Quellburg");
//villages last
//TODO - group layers
var metropolises = L.layerGroup([yaurahMarker]);
var cities = L.layerGroup([schwarzhafenMarker]);
var towns = L.layerGroup([wolynsfurtMarker, khazatwurnMarker, khazatvallhirMarker, khazatmigdahlMarker, tannenburgMarker, kondeoriMarker, gantolMarker, styriaMarker, karamorkiaMarker, khirrukuMarker, quellburgMarker]);
// villages = L.layerGroup([]);
map.addLayer(metropolises);
//show cities only at zoom level 0
map.on('zoomend', function() {
var zoomlevel = map.getZoom();
if (map.getZoom() <0){
map.removeLayer(cities);
}
else {
map.addLayer(cities);
}
});
//show towns only at zoom level 1
map.on('zoomend', function() {
var zoomlevel = map.getZoom();
if (map.getZoom() <1){
map.removeLayer(towns);
}
else {
map.addLayer(towns);
}
});
请原谅可能混乱的代码,我对这一切都很陌生。
解决方案
这是因为您的 img 路径错误new TaladasIcon({iconUrl: 'img/metropolis.png'})
http://maps.dungeonmasterresources.com/img/metropolis.png
编辑: img 后缀为大写,但在代码中为小写: http : //maps.dungeonmasterresources.com/img/metropolis.PNG http://maps.dungeonmasterresources.com/img/metropolis.png