feat: support custom HTML/SVG element markers in MapLibre (#10)
All checks were successful
CI / Build and Test (push) Successful in 34s
All checks were successful
CI / Build and Test (push) Successful in 34s
This commit was merged in pull request #10.
This commit is contained in:
@@ -179,10 +179,25 @@ func initScript(m *Map) string {
|
||||
// markerBodyJS generates JS to add a marker, assuming `map` is in scope.
|
||||
func markerBodyJS(mapID, markerID string, mk Marker) string {
|
||||
var b strings.Builder
|
||||
|
||||
if mk.Element != "" {
|
||||
b.WriteString(fmt.Sprintf(
|
||||
`var _mkEl=document.createElement('div');_mkEl.innerHTML=%s;`,
|
||||
jsonStr(mk.Element)))
|
||||
}
|
||||
|
||||
opts := "{"
|
||||
if mk.Color != "" {
|
||||
if mk.Element != "" {
|
||||
opts += `element:_mkEl.firstElementChild||_mkEl,`
|
||||
} else if mk.Color != "" {
|
||||
opts += fmt.Sprintf(`color:%s,`, jsonStr(mk.Color))
|
||||
}
|
||||
if mk.Anchor != "" {
|
||||
opts += fmt.Sprintf(`anchor:%s,`, jsonStr(mk.Anchor))
|
||||
}
|
||||
if mk.Rotation != 0 {
|
||||
opts += fmt.Sprintf(`rotation:%s,`, formatFloat(mk.Rotation))
|
||||
}
|
||||
if mk.Draggable {
|
||||
opts += `draggable:true,`
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user