微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何添加与 mapbox 集成的 I3SLoader 3dtile 层 (deck.gl)

如何解决如何添加与 mapbox 集成的 I3SLoader 3dtile 层 (deck.gl)

我正在尝试使用 DeckGL 在 mapBox添加 arcgis 3d 图层。但是我有这个错误(Uncaught TypeError: Tile3DLayer is not a constructor) 如果我可以从 arcgis 场景服务器中获取数据,我会尝试添加两张地图,例如 compare(mapBox gl swipe tool) 它们。 也许有不同的方法可以解决这个问题。获取我需要的 arcgis 数据并在同一个网页上调用两个地图。然后使用这些地图之间的比较工具进行演示。

import { Component,OnInit } from '@angular/core';
import { Validators,FormBuilder,FormGroup,FormArray,FormControl } from '@angular/forms';
import { ProductService } from '../../service/product.service';
import { AgentService } from '../../service/agent.service';
import { DesignationService } from '../../service/designation.service';

@Component({
   selector: 'app-buyer-register',templateUrl: './buyer-register.component.html',styleUrls: ['./buyer-register.component.scss'],})
export class BuyerRegisterComponent implements OnInit {
 public formBuyer: FormGroup;
 Product: any = [];
 public selectedProduct: any = [];
 Designation: any = [];
 Agent: any = [];

 constructor(private formBuilder: FormBuilder,private productService: 
  ProductService,private agentService: AgentService,private designationService: DesignationService) { }

  ngOnInit() {
   this.loadProduct();
   this.loadAgent();
   this.loadDesignation();
  }

  loadProduct() {
    this.productService.getProduct().subscribe(data => {
    this.Product = data;
    console.log(this.Product);
  });
 }

 loadAgent() {
    this.agentService.getAgent().subscribe(data => this.Agent = data);
 }

 loadDesignation() {
    this.designationService.getDesignation().subscribe(data => {
      this.Designation = data;
   });
 }  
}

解决方法

我用的是React,核心代码在这里,希望能帮到你。


// import { MapboxLayer } from '@deck.gl/mapbox';
// import {I3SLoader} from '@loaders.gl/i3s';
// import { Tile3DLayer } from '@deck.gl/geo-layers';
// import mapboxgl from 'mapbox-gl';


mapboxgl.accessToken = 'your-token';
const map = new mapboxgl.Map({
    container: 'map',style: 'mapbox://styles/mapbox/streets-v11',center: [-122.51473530281777,37.70463582140094],zoom: 13
});
const layer = new MapboxLayer({
    id:'i3s',type: Tile3DLayer,data: 'https://tiles.arcgis.com/tiles/z2tnIkrLQ2BRzr6P/arcgis/rest/services/SanFrancisco_Bldgs/SceneServer/layers/0',loader: I3SLoader
});
map.on('load',() => {
    map.resize();
    map.addLayer(layer);
});

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。