Leaflet 为什么传单/地图框缩放和图层控件缺少标记?

Leaflet 为什么传单/地图框缩放和图层控件缺少标记?,leaflet,mapbox,Leaflet,Mapbox,我们使用mapbox 1.5.2加载自己的磁贴,代码如下: var mapLayer = L.tileLayer('http://192.168.1.2/tiles/{z}/{x}/{y}.png', {maxZoom: 18} ); var satLayer = L.tileLayer('http://192.168.1.2/images/{z}/{x}/{y}.png', {max

我们使用mapbox 1.5.2加载自己的磁贴,代码如下:

var mapLayer = L.tileLayer('http://192.168.1.2/tiles/{z}/{x}/{y}.png',
                            {maxZoom: 18}
);
var satLayer = L.tileLayer('http://192.168.1.2/images/{z}/{x}/{y}.png',
                            {maxZoom: 18}
);
var hybridLayer = L.tileLayer('http://192.168.1.2/roads/{z}/{x}/{y}.png',
                               {maxZoom: 18}
);
var satGroup = L.layerGroup([satLayer,hybridLayer]);
var baseLayers = {"OSM":mapLayer, "Sat":satGroup};
L.control.layers(baseLayers).addTo(map);
并获得以下地图:


控制装置怎么了?我应该有一个加号/减号在缩放和层'煎饼堆栈'为多个层。FWIW,控件工作正常。

很可能您包含了mapbox.js文件,但没有包含mapbox.css,或者是mapbox.css的错误版本。

在脱机模式下使用时,至少需要三个文件,mapbox.css、mapbox.js和images/icons-404040.png。我使用以下url获取png文件(可能会随着版本的更改而更改):

在mapbox.css级别创建一个images子目录,并将该文件放入其中。我的应用程序正在运行

以下是该文件的图片:


根据css文件,您需要在css文件旁边包含一个“map/images/”文件夹,其中包含:

  • icons-4040.png
  • 图标-4040@2x.png
第二个由mapbox用于高分辨率屏幕

如果地图框主题为黑色,则可能还需要包含其他图片(请参见)

  • icons-ffffff.png
  • 图标-ffffff@2x.png
图像位于下方,但白色背景使其不可见


我遇到了一个类似的问题,影响到“层控件”不可见(即使它们没有完全丢失)和+/-控件稍微向左对齐

在我的例子中,我使用的是CDN中的MAPBOX.CSS,这是由于与floaple.CSS

使用一个或另一个CSS文件解决了这个问题MAPBOX.CSS似乎也会影响我的标记工具提示功能,所以我个人使用了spool.CSS,只是保留了MAPBOX.JS


上述问题包含了“传单/Mapbox”和“控件缺失””这两个词,这两个词首先让我来到这里。现在,任何一个偶然看到这篇文章的人都可以很好地分享我的特殊问题以及传单地图框之间的css冲突

请提供您的完整代码以及任何记录到控制台的错误或警告?杰拉尔德,谢谢你的Chrome控制台创意。我一直在使用Firefox,它在加载时有各种各样的错误——甚至是Mapbox网站上的示例。Chrome控制台显示加载文件“icons-404040.png”时出现问题。哎呀!正如我在tmcw的回答中指出的,我正在将其加载到一个专用网络上。你知道我在哪里可以得到我可能需要的所有图像吗?你是正确的,这是一个css文件的问题,但我无法找出原因。我所做的是在本地托管文件,因为这是在一个封闭的网络上进行的,无法访问Internet。它在使用本地css文件之前就已经工作了,我从mapbox服务器重新复制了该文件,但没有成功。我将按照gerald的要求发布代码,但它基本上是mapbox开发者页面上的简单地图示例。是否需要其他文件?谢谢你的时间。事实证明这不是css的问题。它找不到本地图标文件。我不知道为什么我以前认为它有效。要么是这样(这似乎不太可能),要么我没有注意到。