【问题标题】:Mapbox show location ParisMapbox 显示位置 巴黎
【发布时间】:2019-06-20 16:03:29
【问题描述】:

我从 Map.ts 中的这个函数得到正确的坐标:

populateForm() {
    let pharmaId = this.route.snapshot.params["id"];
    this.pharma.pharmagetbyid(pharmaId ).subscribe(
        pharmadata=> {
          if (pharmadata){
            this.pharmadata= pharmadata;
          }
        }
    );
}

在 html 中,我将这段代码写在 Map.html 中:

 <Mapbox
      accessToken="pk.xxxxxxxxxxxxxxx"
      mapStyle="traffic_day"
      [latitude]="pharmadata.latitude"
      [longitude]="pharmadata.longitude"
      zoomLevel="7"
      delay="450"
      showUserLocation="true"
      hideCompass="false"
      disableZoom="false"
      disableRotation="false"
      disableScroll="false"
      disableTilt="false"
      (mapReady)="onMapReady($event)">
  </Mapbox>

而这个 onMapReady() 在 Map.ts 中有这段代码:

 onMapReady(args): void {
    this.map = args.map;
    console.log(args.map)
    this.map.addMarkers([
          {
            lat: this.pharmadata.longitude,
            lng: this.pharmadata.latitude,
          }
        ]
    );
  }

我的坐标是:

“经度”:4.56,“纬度”:5.65

在地图显示firstly 当我缩放地图时显示Marks

你能建议我如何只显示标记吗?

【问题讨论】:

  • 您将不得不调整地图摄像头以专注于所需位置,该解决方案已在this Github issue 中讨论过

标签: nativescript mapbox mapbox-android


【解决方案1】:

您的纬度/经度在您的 onMapReady 函数中翻转。您的代码应如下所示:

 onMapReady(args): void {
    this.map = args.map;
    console.log(args.map)
    this.map.addMarkers([
          {
            lat: this.pharmadata.latitude, // Flip these
            lng: this.pharmadata.longitude, // two lines
          }
        ]
    );
  }

【讨论】:

  • 可能问题出在 .html 而不是 ts
  • 您是否尝试过翻转函数中的坐标?我的猜测是它落后了,因为 Mapbox 坐标是 lng/lat 而不是 lat/lng
猜你喜欢
  • 1970-01-01
  • 2020-05-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-10-11
  • 1970-01-01
相关资源
最近更新 更多