Skip to content

morikuni/go-geoplot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ccb4929 · Mar 30, 2022

History

14 Commits
Jan 19, 2022
Jan 19, 2022
Mar 14, 2021
Jan 19, 2022
Mar 17, 2021
Mar 14, 2021
Mar 30, 2022

Repository files navigation

go-geoplot

Plot geographical data on a map in Go.

Example

package main

import (
	"fmt"
	"image/color"
	"net/http"

	"github.com/morikuni/go-geoplot"
)

func main() {
	tokyoTower := &geoplot.LatLng{
		Latitude:  35.658584,
		Longitude: 139.7454316,
	}
	icon := geoplot.ColorIcon(255, 255, 0)

	m := &geoplot.Map{
		Center: tokyoTower,
		Zoom:   7,
		Area: &geoplot.Area{
			From: tokyoTower.Offset(-0.1, -0.1),
			To:   tokyoTower.Offset(0.2, 0.2),
		},
	}
	m.AddMarker(&geoplot.Marker{
		LatLng:  tokyoTower,
		Popup:   "Hello\nWorld",
		Tooltip: "Hello",
		Icon:    icon,
	})
	m.AddPolyline(&geoplot.Polyline{
		LatLngs: []*geoplot.LatLng{
			tokyoTower.Offset(-0.1, -0.1),
			tokyoTower.Offset(-0.1, 0.1),
			tokyoTower.Offset(0.1, 0.1),
			tokyoTower.Offset(0.1, -0.1),
			tokyoTower.Offset(-0.1, -0.1),
		},
		Popup: "World",
		Color: &color.RGBA{0xff, 0, 0, 0},
	})
	m.AddCircle(&geoplot.Circle{
		LatLng:      tokyoTower,
		RadiusMeter: 1000,
		Tooltip:     "Circle of life",
	})
	err := http.ListenAndServe(":8080", http.HandlerFunc(func(w http.ResponseWriter, r *http.Request) {
		err := geoplot.ServeMap(w, r, m)
		if err != nil {
			fmt.Println(err)
			w.WriteHeader(http.StatusInternalServerError)
		}
	}))
	fmt.Println(err)
}

screenshot

About

Plot geographical data on a map in Go.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages