longdo-map-v3-vue
v1.0.1
Published
Longdo Map (API v3) component for Vue.js
Downloads
5
Readme
longdo-map-v3-vue
Longdo Map (API v3) component for Vue.js
Table of Contents
Getting Started
Requirement
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
- longdo-map
- longdo-map-marker
- longdo-map-dot
- longdo-map-circle
- longdo-map-rectangle
- longdo-map-polyline
- longdo-map-polycurve
- longdo-map-polygon
- longdo-map-menu-bar
- longdo-map-custom-control
- longdo-map-custom-ui
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>