修改地图使用方式

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('美食');
});
});
}
}

View File

@ -8,56 +8,59 @@
-->
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>Ng Alain Pro</title>
<base href="/" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta http-equiv="x-ua-compatible" content="ie=edge" />
<link rel="icon" type="image/x-icon" href="favicon.ico" />
<!-- Apple Touch Icon -->
<!-- <link rel="apple-touch-icon" href="custom-icon.png"> -->
<style type="text/css">
.preloader {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
overflow: hidden;
background: #f5f5f5;
z-index: 9999;
transition: opacity 0.65s;
}
.preloader-hidden-add {
opacity: 1;
display: block;
}
.preloader-hidden-add-active {
opacity: 0;
}
.preloader-hidden {
display: none;
}
</style>
</head>
<body theme-name="pro" theme-version="12.0.0">
<app-root></app-root>
<div class="preloader">
<div class="page-loading ant-spin ant-spin-lg ant-spin-spinning">
<span class="ant-spin-dot ant-spin-dot-spin"
><i class="ant-spin-dot-item"></i><i class="ant-spin-dot-item"></i><i class="ant-spin-dot-item"></i
><i class="ant-spin-dot-item"></i
></span>
</div>
<head>
<meta charset="utf-8" />
<title>Ng Alain Pro</title>
<base href="/" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<meta http-equiv="x-ua-compatible" content="ie=edge" />
<link rel="icon" type="image/x-icon" href="favicon.ico" />
<!-- Apple Touch Icon -->
<!-- <link rel="apple-touch-icon" href="custom-icon.png"> -->
<style type="text/css">
.preloader {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
overflow: hidden;
background: #f5f5f5;
z-index: 9999;
transition: opacity 0.65s;
}
.preloader-hidden-add {
opacity: 1;
display: block;
}
.preloader-hidden-add-active {
opacity: 0;
}
.preloader-hidden {
display: none;
}
</style>
</head>
<body theme-name="pro" theme-version="12.0.0">
<app-root></app-root>
<div class="preloader">
<div class="page-loading ant-spin ant-spin-lg ant-spin-spinning">
<span class="ant-spin-dot ant-spin-dot-spin"><i class="ant-spin-dot-item"></i><i class="ant-spin-dot-item"></i><i
class="ant-spin-dot-item"></i><i class="ant-spin-dot-item"></i></span>
</div>
</body>
</div>
</body>
</html>
<script type="text/javascript">
  window._AMapSecurityConfig = {
      securityJsCode:'dde4610c3bd04617b99fb55ba5adbe9d',
  }
</script>
<script type="text/javascript" src='//webapi.amap.com/maps?v=2.0&key=63f9573ca55fef2b92d4ffe0c85dea8f'></script>
<script src="//webapi.amap.com/ui/1.1/main.js?v=1.1.1"></script>
<!-- <script type="text/javascript">
window._AMapSecurityConfig = {
securityJsCode: 'dde4610c3bd04617b99fb55ba5adbe9d',
}
</script>
<script type="text/javascript" src='//webapi.amap.com/maps?v=2.0&key=63f9573ca55fef2b92d4ffe0c85dea8f'></script>
<script src="//webapi.amap.com/ui/1.1/main.js?v=1.1.1"></script> -->

View File

@ -54,7 +54,8 @@ import {
WeiboCircleOutline,
EyeInvisibleOutline,
MoreOutline,
MenuOutline
MenuOutline,
SwapOutline
} from '@ant-design/icons-angular/icons';
export const ICONS_AUTO = [
@ -108,5 +109,6 @@ export const ICONS_AUTO = [
WeiboCircleOutline,
EyeInvisibleOutline,
MoreOutline,
MenuOutline
MenuOutline,
SwapOutline
];