我正在尝试使用google-maps-react绘制曲线。 为了做到这一点,我搜索并发现了这个问题“How to curve a Polyline in react-google-maps?”。在这个问题中,答案是指一个沙盒项目,其中完成了这样的实施。
我尝试调整此代码以适合我,但我在使用
计算“点”时需要对地图进行“投影”时遇到问题const p1 = mapProjection.fromLatLngToPoint(pos1),
在搜索地图组件的道具和状态后,我发现“getProjection”方法在里面:props - >谷歌 - >地图 - >地图 - >原型 - > getProjection。
我尝试使用以下方式访问它:
mapProjection = {this.props.google.maps.Map.getProjection()}
,这会导致错误“TypeError:this.props.google.maps.Map.getProjection不是函数”。
使用
mapProjection = {this.props.google.maps.Map.prototype.getProjection()}
导致未定义
我真的被卡住了,我不知道怎么解决这个问题。你们有人能指出我正确的方向吗?非常感谢你。
答案 0 :(得分:0)
第this.props.google.maps.Map.getProjection()
行正在尝试访问Map实例上的一种方法,该方法可以在Map类本身上静态使用。由于只能在Map类的对象上调用getProjection,因此必须在用getProjection()
实例化的地图上调用new maps.Map(myDomNode, myMapConfig);
如果您看一下本教程How to Write a Google Maps React Component,您会注意到在Map组件的loadMap函数中创建了一个新的地图实例,并通过this.map = new maps.Map(node, mapConfig);
将其附加到该组件上。
此时,this.map
(地图实例)对Map组件上的任何方法都可用,您可以使用var projection = this.map.getProjection();
来获得投影