And*_*eth 4 javascript leaflet vue.js vue2leaflet
我有一个google-maps_pin.svg代表 google-maps pin的文件。
我想根据类别(餐厅、美术馆等)动态地为不同的标记(使用 v-for 生成)着色。
有没有办法用 vue2 传单来实现?
这是我的地图:
<l-map
style="z-index: 0"
ref="mapRef"
:zoom="zoom"
:center="center"
@update:zoom="zoomUpdated"
@update:center="centerUpdated"
@update:bounds="boundsUpdated">
<l-tile-layer :url="url"></l-tile-layer>
<l-marker
v-for="(markedLocation, index) in marker"
:key="'marker-' + index"
:lat-lng="markedLocation.location"
:icon-url="require('@/assets/googlemaps_markers/google-maps_pin.svg')">
</l-marker>
</l-map>
Run Code Online (Sandbox Code Playgroud)
我想赋予单个引脚的颜色存储在markedLocation.info.category.color变量中。
是的,您可以使用此属性L.divIcon() 来实现。
表示使用简单
<div>元素而不是图像的标记的轻量级图标。继承自 Icon 但忽略 iconUrl 和阴影选项。
您的模板将如下所示
<div id="app">
<l-map :zoom="zoom" :center="center">
<l-tile-layer :url="url" :attribution="attribution"></l-tile-layer>
<l-marker
v-for="(item, index) in markers"
:key="'marker-' + index"
:lat-lng="item.location"
:icon="getIcon(item)"></l-marker>
</l-map>
</div>
Run Code Online (Sandbox Code Playgroud)
你的getIcon()方法会是这样的
<div id="app">
<l-map :zoom="zoom" :center="center">
<l-tile-layer :url="url" :attribution="attribution"></l-tile-layer>
<l-marker
v-for="(item, index) in markers"
:key="'marker-' + index"
:lat-lng="item.location"
:icon="getIcon(item)"></l-marker>
</l-map>
</div>
Run Code Online (Sandbox Code Playgroud)
您可以在此处使用有效的JS fiddle 进行检查,请参阅下面从 JS fiddle 截取的屏幕截图。
| 归档时间: |
|
| 查看次数: |
2682 次 |
| 最近记录: |