我使用 react-leaflet 来显示地图。我也使用传单路由机进行路由。路线显示正确,但标记未被汽车图标覆盖。我尝试使用 divIcon 对路由和 react-leaflet 进行覆盖标记,但还没有成功。
这是我的代码
class CarRouting extends MapLayer {
componentWillMount() {
super.componentWillMount();
const { map, from, to, position, ...props } = this.props;
props.icon = L.divIcon({
className: 'my-div-icon',
});
this.leafletElement =
L.Routing.control({
position: 'topleft',
waypoints: [
L.latLng(from[0], from[1]),
L.latLng(to[0], to[1]),
],
}).addTo(map);
const source = L.marker([from[0], from[1]], props);
const destination = L.marker([to[0], to[1]], props);
const cities = L.layerGroup([source, destination]);
}
render() {
return null;
}
}
export default CarRouting;
汽车结果.js
const icon = divIcon({
className: 'my-div-icon',
iconSize: [30, 30]
});
return (
<Map center={position} zoom={5} style={{ height: 600 }}>
<TileLayer
url='https://mt{s}.google.com/vt/lyrs=m&x={x}&y={y}&z={z}'
subdomains='0123'
/>
<Marker position={position} icon={icon} />
<CarRouting from={[cityOrigenLat, cityOrigenLng]} to={[cityDestinoLat, cityDestinoLng]} />
</Map>
);
};
main.css
.my-div-icon {
background: url('../../../public/assets/img/icons/shared_car.png');
background-size: contain;
background-repeat: no-repeat;
width: 25px;
height: 25px;
}
我错过了什么吗?
更新
路由现在也被破坏了,但标记仍然没有被汽车图像覆盖。