@acpaas-ui-widgets/ngx-location-picker-leaflet 中文文档教程

发布于 5年前 浏览 14 项目主页 更新于 3年前

Location Picker with Leaflet Smart Widget UI (Angular)

这是用于智能小部件的 Angular 6+ UI,它实现了一个选择器字段,以结合 Leaflet 选择一个位置(街道、地址或兴趣点)。 它与 相应的后端服务 匹配,在远程模式下运行时需要该服务。 提供了在安特卫普选择位置的默认实现。

screenshot

有一个演示应用程序,请参阅下面的运行说明。

How to use

Installing

> npm install @acpaas-ui-widgets/ngx-location-picker-leaflet

Using

BFF 服务应该正在运行(请参阅下面的演示应用程序说明以了解如何启动一个)。

在您的模块中导入组件:

import { LocationPickerLeafletModule } from '@acpaas-ui-widgets/ngx-location-picker-leaflet';

@NgModule({
  imports: [
    ...,
    LocationPickerLeafletModule
  ],
  ...
})

在 index.html 中,包括核心品牌样式表:

<link rel="stylesheet" href="https://cdn.antwerpen.be/core_branding_scss/4.1.1/main.min.css">

对于仍在使用 Angular 5 的项目,我们是 维护一个 v1 分支,如果需要,该分支仍会收到错误修复。

> npm install @acpaas-ui-widgets/ngx-location-picker-leaflet"<2.0.0"

In your template:

<aui-location-picker-leaflet class="widget"
    [coordinatesTrigger]="triggerNoSubject"
    [coordinatesTriggerSubject]="trigger"
    [locationApiHost]="http://localhost:9999/api/locations"
    (locationChange)="addressResolvedCallback($event)"
></aui-location-picker-leaflet>

(替换 BFF 服务的 url)

在组件代码中:

class YourComponent {

    addressResolvedCallback = (location) => {
        console.log(location);
    };

    ...
}

支持列表中的每个值都必须有一个唯一的 id。

Supported attributes

  • locationPickerUrl: (string) required URL of the back-end service feeding this widget
  • coordinatesTriggerSubject: (BehaviorSubject({ lat: number, lng: number })) can be used to trigger an external location change
  • coordinatesTrigger: (Object({ lat: number, lng: number })) when set will retrieve location by coordinates
  • locationPickerEndpoint: (string) when /api/location is not default endpoint
  • coordinatesEndpoint: (string) when /api/coordinates is not default endpoint
  • useExternalOffset: (boolean) wether or not to use the default location as offset

Events

  • locationChange: locationItem model that is triggered when the current value is changed (or cleared)
  • mapLocationChange: a [number,number] object with the marker position that is triggered each time the map moves

Protocol

后端服务实现以下协议:

  • GET /path/to/endpoint?search=…&types=…
  • search: the text that the user typed on which to match
  • types: a comma-separated list of types to return, default value = "street,number,poi"
  • result: JSON-encoded array of LocationPickerV1Value objects

Run the demo app

> npm install
> npm start

浏览到 localhost:4200

要使用此小部件,您还需要运行 支持服务

Contributing

我们欢迎您的错误报告和拉取请求。

请参阅我们的贡献指南

License

该项目根据 MIT 许可发布。

Location Picker with Leaflet Smart Widget UI (Angular)

This is the Angular 6+ UI for a Smart Widget implementing a picker field to choose a location (street, address or point of interest) in combination with Leaflet. It is matched by a corresponding back-end service which is needed when running it in remote mode. A default implementation for selecting locations in Antwerp is provided.

screenshot

There is a demo app, see below for instructions on running it.

How to use

Installing

> npm install @acpaas-ui-widgets/ngx-location-picker-leaflet

Using

A BFF service should be running (see demo app instructions below for how to start one).

Import the component in your module:

import { LocationPickerLeafletModule } from '@acpaas-ui-widgets/ngx-location-picker-leaflet';

@NgModule({
  imports: [
    ...,
    LocationPickerLeafletModule
  ],
  ...
})

In the index.html, include the core branding stylesheet:

<link rel="stylesheet" href="https://cdn.antwerpen.be/core_branding_scss/4.1.1/main.min.css">

For projects that are still using Angular 5, we are maintaining a v1 branch, which will still receive bug fixes if needed.

> npm install @acpaas-ui-widgets/ngx-location-picker-leaflet"<2.0.0"

In your template:

<aui-location-picker-leaflet class="widget"
    [coordinatesTrigger]="triggerNoSubject"
    [coordinatesTriggerSubject]="trigger"
    [locationApiHost]="http://localhost:9999/api/locations"
    (locationChange)="addressResolvedCallback($event)"
></aui-location-picker-leaflet>

(replace the url of the BFF service)

In the component code:

class YourComponent {

    addressResolvedCallback = (location) => {
        console.log(location);
    };

    ...
}

Every value in the backing list must have a unique id.

Supported attributes

  • locationPickerUrl: (string) required URL of the back-end service feeding this widget
  • coordinatesTriggerSubject: (BehaviorSubject({ lat: number, lng: number })) can be used to trigger an external location change
  • coordinatesTrigger: (Object({ lat: number, lng: number })) when set will retrieve location by coordinates
  • locationPickerEndpoint: (string) when /api/location is not default endpoint
  • coordinatesEndpoint: (string) when /api/coordinates is not default endpoint
  • useExternalOffset: (boolean) wether or not to use the default location as offset

Events

  • locationChange: locationItem model that is triggered when the current value is changed (or cleared)
  • mapLocationChange: a [number,number] object with the marker position that is triggered each time the map moves

Protocol

The back-end service implements the following protocol:

  • GET /path/to/endpoint?search=…&types=…
  • search: the text that the user typed on which to match
  • types: a comma-separated list of types to return, default value = "street,number,poi"
  • result: JSON-encoded array of LocationPickerV1Value objects

Run the demo app

> npm install
> npm start

Browse to localhost:4200

To use this widget, you will also need to run the backing service.

Contributing

We welcome your bug reports and pull requests.

Please see our contribution guide.

License

This project is published under the MIT license.

    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文