react-mapbox-gl _onClickGeolocate() 调用与 setTimeout 自动请求位置

Posted

技术标签:

【中文标题】react-mapbox-gl _onClickGeolocate() 调用与 setTimeout 自动请求位置【英文标题】:react-mapbox-gl _onClickGeolocate() call with setTimeout to request location automatically 【发布时间】:2017-12-11 15:21:24 【问题描述】:

我正在使用以下代码将GeolocateControl 添加到我的 react-mapbox-gl 映射中。

我需要使用setTimeout() 自动调用方法_onClickGeolocate 方法以在加载页面时自动请求用户位置。

我怎样才能做到这一点?

import  Component  from "react";
import PropTypes from "prop-types";
import  accessToken  from "../../api/tokens/mapbox";
import mapboxgl from "mapbox-gl";

class Locater extends Component 
  static contextTypes =  map: PropTypes.object.isRequired ;
  componentDidMount() 
    const  map  = this.context;

    map.addControl(
      new mapboxgl.GeolocateControl(
        accessToken,
        positionOptions: 
          enableHighAccuracy: true
        ,
        trackUserLocation: true
      )
    );
  

  render() 
    return null;
  


export default Locater;

【问题讨论】:

【参考方案1】:

为此,为geolocate 控件创建一个新变量,并将这个新创建的变量传递给您的map.addControl 方法。

在此之后,将geolocate._onClickGeolocate 方法绑定到setTimeout() 方法中的geolocate 变量。

这将自动为您调用_onClickGeolocate 方法。

import Component  from "react";
import PropTypes from "prop-types";
import  accessToken  from "../../api/tokens/mapbox";
import mapboxgl from "mapbox-gl";

class Locator extends Component 
  static contextTypes =  map: PropTypes.object.isRequired ;


  componentDidMount() 
    const  map  = this.context;

    const  geolocate  = 
      new mapboxgl.GeolocateControl(
        accessToken,
        positionOptions: 
          enableHighAccuracy: true
        ,
        trackUserLocation: true
      )

    map.addControl(
      geolocate
    );
  setTimeout(geolocate._onClickGeolocate.bind(geolocate), 5)
  


  render() 
    return null;
  


export default Locator;

【讨论】:

【参考方案2】:

现在已经很晚了,但以下方法会起作用:

let geolocate = new mapboxgl.GeolocateControl(
      positionOptions: 
        enableHighAccuracy: true,
      ,
      trackUserLocation: true,
    );
    map.addControl(geolocate);

map.on("load", function () 
      geolocate.trigger();
    );

【讨论】:

以上是关于react-mapbox-gl _onClickGeolocate() 调用与 setTimeout 自动请求位置的主要内容,如果未能解决你的问题,请参考以下文章

react-mapbox-gl中的可样式标记/功能?

Mapbox 地图未在 ionic 生产版本中显示

英语高手请进

简易先进先出队列-自用

函数参数

多重背包