1.0.1 • Published 2 years ago

longdo-map-v3-vue v1.0.1

Weekly downloads
-
License
MIT
Repository
github
Last release
2 years ago

Longdo Map Logo

longdo-map-v3-vue

Longdo Map (API v3) component for Vue.js

npm npm npm

Table of Contents

Getting Started

Requirement

  • Vue

    The current version of Longdo Map Vue does not support Vue 3.

Installation

You can easily install by using npm

npm i longdo-map-v3-vue

Usage

First, you need to get a Longdo Map API key.

Then, after you have Longdo Map API key and component installed, you need to register it to your Vue project.

There are two ways of registering component:

Register component globally

This is a recommended way of registering component

In your main.js or similar file:

import Vue from 'vue'
import LongdoMap from 'longdo-map-v3-vue'

Vue.use(LongdoMap, {
    load: {
        apiKey: 'YOUR_LONGDO_MAP_API_KEY'
    }
})

Then you can use <longdo-map/> in your component template.

<template>
    <longdo-map/>
</template>

Register locally in your component

In your component file, for example Foo.vue:

<template>
    <longdo-map/>
</template>
import { LongdoMap } from 'longdo-map-v3-vue'
LongdoMap.init({ apiKey: 'YOUR_LONGDO_MAP_API_KEY' })

export default {
  name: 'Foo',
  components: {
      LongdoMap
  }
}

You can import more components if you want, for example:

import { LongdoMap, LongdoMapMarker } from 'longdo-map-v3-vue'

Examples

Add a polygon to Longdo Map:

<template>
    <longdo-map>
        <longdo-map-polygon
            :location="locationList"
            :lineWidth="2"
            :lineColor="'rgba(0, 0, 0, 1)'"
            :fillColor="'rgba(255, 0, 0, 0.4)'"
        />
    </longdo-map>
</template>
export default {
    data() {
        return {
            locationList: [
                { lon: 99, lat: 14 },
                { lon: 100, lat: 13 },
                { lon: 102, lat: 13 },
                { lon: 103, lat: 14 }
            ]
        }
    }
}

Add multiple markers to Longdo Map:

<template>
    <longdo-map :zoom="10" :lastView="false">
        <longdo-map-marker
            v-for="(item, i) in markers"
            :key="i"
            :location="item.location"
            :title="item.title"
            :detail="item.detail"
        />
    </longdo-map>
</template>

Using Longdo Map object:

<template>
    <longdo-map @load="loadMap">
        <longdo-map-marker @add="addMarker" :location="{ lon: 99, lat: 14 }" />
    </longdo-map>
</template>
export default {
    methods: {
        loadMap (map) {
            map.Layers.setBase(longdo.Layers.NORMAL)
        },
        addMarker (marker) {
            console.log(marker.location())
        }
    }
}

Components

Map

  • Props
  • Event: @load="Function(object)"
<longdo-map :zoom="10" :lastView="false" />

Overlay

  • Props
  • Event: @add="Function(object)"
<longdo-map>
    <longdo-map-marker :location="{ lon: 99, lat: 14 }" :title="'Home'" :detail="'My home'" />
</longdo-map>

Geometry

longdo-map-dot, longdo-map-circle, longdo-map-rectangle,

longdo-map-polyline, longdo-map-polycurve, longdo-map-polygon

  • Props
  • Event: @add="Function(object)"
<longdo-map>
    <longdo-map-polygon
        :location="[{ lon: 100.123, lat: 13.579 }, ...]"
        :lineWidth="2"
        :lineColor="'rgba(0, 0, 0, 1)'"
        :fillColor="'rgba(255, 0, 0, 0.4)'"
    />
</longdo-map>

Menu Bar

  • Props
  • Event: @add="Function(object)"
  • Event: @change="Function(currentMenuItem: Object, lastMenuItem: Object)"
<longdo-map>
    <longdo-map-menu-bar :button="[{ label: 'first', value: 1 }, { label: 'second', value: 2 }]" />
</longdo-map>

*** support button type only

Custom Control

  • Props
  • Event: @add="Function(object)"
<longdo-map>
    <longdo-map-custom-control :html="'<button>button</button>'" />
</longdo-map>

Custom UI

  • Props: vertical, horizontal ('top', 'right', 'bottom', 'left', 'center')
<longdo-map>
    <longdo-map-custom-ui :vertical="'bottom'" :horizontal="'center'">
        <div>Longdo Map</div>
    </longdo-map-custom-ui>
</longdo-map>

Documentation

Community

References