@xuehongbo/map-craft-js
Version:
MapCraftJS 是一个功能强大且灵活的开源 JavaScript 库,旨在简化互动地图的创建和操作。使用 MapCraftJS,开发者可以轻松地将动态地图功能集成到应用程序中,为用户提供根据自定义配置查看、注释和互动的地图体验。(开发中!!!)
63 lines (56 loc) • 1.78 kB
JavaScript
import { loadResources } from '../utils/ResourceLoader.js';
class EGisAdapter {
constructor(security,options, callback) {
loadResources({
cssUrl: '',
jsUrl: `https://map.sgcc.com.cn/maps?v=3.0.0`
}).then(() => {
let that = this;
SGMap.tokenTask
.login(security.key, security.secret)
.then(function () {
that.map = new SGMap.Map({
// 地图绑定的DOM元素ID
container: options.container,
// 地图样式
style: "aegis://styles/aegis/Streets-v2",
// 默认缩放层级
zoom: options.zoom,
// 地图中心点
center: [options.center.lng, options.center.lat],
// 地图默认字体
localIdeographFontFamily: "Microsoft YoHei"
});
callback()
console.log('地图初始化成功')
});
});
}
addMarker(options) {
//画marker点
var el = document.createElement("div");
el.className = "marker";
// 自定义图标
el.style.backgroundImage ='url("https://map.sgcc.com.cn/products/js-sdk/v3/assets/images/markers_new2_4ab0bc5_78.png")';
el.style.width = "25px";
el.style.height = "38px";
// 如果不传el,会默认给一个蓝色水滴图标
const marker = new SGMap.Marker({
element: el,
anchor: "bottom"
}).setLngLat([options.position.lng, options.position.lat]).addTo(this.map);
return marker;
}
drawPolyline(points) {
const path = points.map(point => [point.lng, point.lat]);
const polyline = new EGis.Polyline({
path: path,
color: "#0000FF",
weight: 2,
opacity: 0.5
});
this.map.addLayer(polyline);
return polyline;
}
}
export default EGisAdapter;