我正在尝试使用google-maps-react绘制曲线。为了做到这一点,我搜索并找到了这个问题"How to curve a Polyline in react-google-maps?“。在这个问题中,答案指的是一个沙箱项目,在这个项目中完成了这样的实现。
我试着调整这段代码使之适合我,但我在获取地图的“投影”时遇到了问题,这是计算“点”所必需的,使用
const p1 = mapProjection.fromLatLngToPoint(pos1),在搜索了地图组件的属性和状态后,我发现" getProjection“方法就在其中: props -> google ->地图->地图->原型-> getProjection。
我尝试使用以下命令访问它:
mapProjection = {this.props.google.maps.Map.getProjection()}这会导致错误"TypeError: this.props.google.maps.Map.getProjection不是一个函数“。
使用
mapProjection = {this.props.google.maps.Map.prototype.getProjection()}
产生未定义的结果
我真的被卡住了,我不知道如何解决这个问题。你们谁能给我指个方向?非常感谢。
发布于 2018-10-28 03:21:49
行this.props.google.maps.Map.getProjection()试图访问映射实例上的方法,该方法在映射类本身上是静态可用的。由于只能在地图类的对象上调用getProjection,因此必须在使用new maps.Map(myDomNode, myMapConfig);实例化的地图上调用getProjection()
如果您阅读本教程,您将注意到在How to Write a Google Maps React Component组件的loadMap函数中创建了一个新的地图实例,并使用this.map = new maps.Map(node, mapConfig);将其附加到该组件。
此时,地图组件上的任何方法都可以使用this.map (地图实例),您可以使用var projection = this.map.getProjection();获取投影
https://stackoverflow.com/questions/49616237
复制相似问题