高德地图JS_api小总结
一个练手项目的总结,其中感觉最有趣的就是高德地图的文档了(简直不要太友好了~)
最基础的调用
...
<body>
<!--创建容器 -->
<div id="container"></div>
<!--引入高德地图JSAPI -->
<script type="text/javascript" src="http://webapi.amap.com/maps?v=1.4.4&key=您申请的key值"></script>
<!--引入UI组件库(1.0版本) -->
<script src="http://webapi.amap.com/ui/1.0/main.js"></script>
<!-- 基础调用 -->
<script>
var map = new AMap.Map('container',{
resizeEnable: true,
zoom: 10,
center: [116.480983, 40.0958]
});
</script>
</body>
...
Vue 调用
心酸过程
推荐一下 由 饿了么 出品的 vue-amap 高德地图组件,整体来说还是比较不错的,但是遇到几处 bug 超出了本人的知识范围,只好放弃。
最后 看到了 在Vue中完美的使用高德地图 这篇文章
调用过程(蛮好玩的)
这里引用了一个方法 remoteLoad() 蛮好用的脚本加载方法;
async created() {
if (window.AMap && window.AMapUI) {
this.initMap()
} else {
await remoteLoad('http://webapi.amap.com/maps?v=1.4.5&key={key}')
await remoteLoad('http://webapi.amap.com/ui/1.0/main.js')
this.initMap()
}
},
methods: {
initMap(){
// 初始化 AMap
this.map = new AMap.Map('layMap', {
resizeEnable: true,
center: [116.30946, 39.937629],
zoom: 3
});
/*
使用插件就根据 高德 Api 创建
例如: DistrictSearch
*/
AMap.service('AMap.DistrictSearch', () => {
//实例化DistrictSearch
this.district = new AMap.DistrictSearch({
extensions: 'all',
subdistrict: 1,
showbiz: true
})
})
}
}
插件的两种调用办法
直接初始化
无论是纯页面,还是 vue 异步加载均可以直接在链接后面加上plugin
参数并赋予值;
这种办法适用于在一个组件内多次调用了垓插件,又不想多次初始化的情况;
http://webapi.amap.com/maps?v=1.4.4&key=您申请的key值&plugin=AMap.DistrictSearch
根据需要调用
部分插件在使用之前,需要使用 AMap.service
方法加载插件,然后在回调函数中可以进行服务的设定和查询:
AMap.service('AMap.DistrictSearch', function() {
//实例化DistrictSearch
this.district = new AMap.DistrictSearch({
extensions: 'all',
subdistrict: 1,
showbiz: true
})
})
小结
练手项目 - demo
可能会顿卡,刷新应该就好了
感谢阅读