修改地图使用方式
This commit is contained in:
@ -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>
|
||||
|
||||
@ -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('美食');
|
||||
});
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
103
src/index.html
103
src/index.html
@ -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> -->
|
||||
@ -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
|
||||
];
|
||||
|
||||
Reference in New Issue
Block a user