修改地图使用方式

This commit is contained in:
Taric Xin
2021-12-06 20:28:01 +08:00
parent 2be2d330a9
commit 1d79ed291c
6 changed files with 117 additions and 131 deletions

View File

@ -3,4 +3,4 @@
<input nz-input id="pickerInput" [(ngModel)]="addressInput" placeholder="请输入地址" />
</div>
</div>
<div id="container" style="width: 800px; height: 500px"></div>
<div class="map-container" id="container" tabindex="0" style="width: 800px; height: 500px"></div>

View File

@ -1,70 +1,65 @@
import { Component, Input, OnInit, Output, EventEmitter } from '@angular/core';
import { Component, Input, OnInit, Output, EventEmitter, OnDestroy } from '@angular/core';
import { _HttpClient } from '@delon/theme';
import * as $ from 'jquery';
declare var AMapUI: any;
declare var AMap: any;
import { load } from '@amap/amap-jsapi-loader';
import { BaseService } from 'src/app/shared/services';
import { throwError } from 'rxjs';
import AMapLoader from '@amap/amap-jsapi-loader';
@Component({
selector: 'app-gaode-map',
templateUrl: './gaode-map.component.html'
})
export class GaodeMapComponent implements OnInit {
export class GaodeMapComponent implements OnInit, OnDestroy {
addressInput: any;
constructor() {}
aMap: any;
constructor(private service: BaseService) {}
ngOnInit(): void {
this.PoiPicker();
this.mapInit();
// this.PoiPicker();
}
// poi选点
PoiPicker() {
AMapUI.setDomLibrary($);
let map = new AMap.Map('container', {
zoom: 10
});
AMapUI.loadUI(['misc/PoiPicker'], function (PoiPicker: any) {
let poiPicker = new PoiPicker({
// city:'北京',
input: 'pickerInput'
ngOnDestroy(): void {
if (this.aMap) {
this.aMap.destroy();
}
}
mapInit() {
AMapLoader.load({
// 首次调用 load
key: '63f9573ca55fef2b92d4ffe0c85dea8f', // 申请好的Web端开发者Key首次调用 load 时必填
version: '2.0', // 指定要加载的 JSAPI 的版本,缺省时默认为 1.4.15
plugins: [
// 需要使用的的插件列表,如比例尺'AMap.Scale'等
'AMap.Scale',
'AMap.ToolBar',
'AMap.MapType',
'AMap.Driving',
'AMap.Geolocation'
],
AMapUI: {
// 是否加载 AMapUI缺省不加载
version: '1.1', // AMapUI 缺省 1.1
plugins: [] // 需要加载的 AMapUI ui插件
},
Loca: {
// 是否加载 Loca 缺省不加载
version: '2.0' // Loca 版本,缺省 1.3.2
}
})
.then(AMap => {
console.log(AMap);
this.aMap = new AMap.Map('container', {
viewMode: '2D', // 默认使用 2D 模式,如果希望使用带有俯仰角的 3D 模式,请设置 viewMode: '3D',
zoom: 16
});
this.aMap.on('complete', () => {
this.service.msgSrv.info('地图加载完成 !');
});
})
.catch(e => {
throwError(e);
});
//初始化poiPicker
(window as any).poiPicker = poiPicker;
var marker = new AMap.Marker();
var infoWindow = new AMap.InfoWindow({
offset: new AMap.Pixel(0, -20)
});
console.log('0000')
console.log(PoiPicker)
//选取了某个POI
poiPicker.on('poiPicked', function (poiResult: any) {
console.log(1111);
console.log(poiResult)
// console.log(this.addressInput)
// this.addressInput = poiResult.item?.name
var source = poiResult.source,
poi = poiResult.item,
info = {
source: source,
id: poi.id,
name: poi.name,
location: poi.location.toString(),
address: poi.address
};
marker.setMap(map);
infoWindow.setMap(map);
marker.setPosition(poi.location);
infoWindow.setPosition(poi.location);
infoWindow.setContent(`POI信息: <pre>${JSON.stringify(info, null, 2)}</pre>`);
infoWindow.open(map, marker.getPosition());
map.setCenter(marker.getPosition());
});
poiPicker.onCityReady(() => {
// poiPicker.suggest('美食');
});
});
}
}