谷歌地图setCenter()

时间:2010-05-05 12:47:24

标签: javascript google-maps

我正在使用谷歌地图。在我的代码中,我使用了setCenter()函数。我的问题是标记总是位于地图区域的左上角(不在中心)。请告诉我如何解决它?

我的代码是

lat = 46.437857;
lon = -113.466797;

marker = new GMarker(new GLatLng(lat, lon));


var topRight = new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(20, 40));
map.addControl(new GLargeMapControl3D(), topRight);
map.setCenter(new GLatLng(lat, lon), 5);

map.addOverlay(marker);

5 个答案:

答案 0 :(得分:20)

@ phoenix24回答实际上帮助了我(他自己的asnwer没有解决我的问题顺便说一下)。 setCenter的正确参数是

map.setCenter({lat:LAT_VALUE, lng:LONG_VALUE});

Google Documentation

顺便说一下,如果您的变量是lat和lng,则以下代码将起作用

map.setCenter({lat:lat, lng:lng});

这实际上解决了我非常错综复杂的问题,所以我想我会在这里发布。

答案 1 :(得分:13)

 function resize() {
        var map_obj = document.getElementById("map_canvas");

      /*  map_obj.style.width = "500px";
        map_obj.style.height = "225px";*/
        if (map) {
            map.checkResize();
            map.panTo(new GLatLng(lat,lon));
        }
    }

<body onload="initialize()" onunload="GUnload()" onresize="resize()">
<div id="map_canvas" style="width: 100%; height: 100%">
</div>

答案 2 :(得分:4)

我搜索并搜索并最终发现即需要知道地图大小。 设置地图大小以匹配div大小。

map = new GMap2(document.getElementById("map_canvas2"), { size: new GSize(850, 600) });

<div id="map_canvas2" style="width: 850px; height: 600px">
</div>

答案 3 :(得分:0)

在您的代码中,在

map.setCenter(new GLatLng(lat, lon), 5);

对于lat:long位置,setCenter方法只接受一个参数。你为什么要在那里传递两个参数?

我建议您将其更改为,

map.setCenter(new GLatLng(lat, lon));

答案 4 :(得分:0)

对我来说上面的解决方案没有用,然后我试了

const StackIndex = StackNavigator({
    Screen1: {
        screen: Screen1
    },
    Screen2: {
        screen: Screen2
    },
    Screen3: {
        screen: Screen3
    }
})


class TabIndex extends Component {
    render(){
        return(
            <View>
                <TouchableWithoutFeedback onPress={()=>this.props.navigation.navigate('Screen2')}>
                    <Text>{'Navigate to Screen 2.'}<Text>
                </TouchableWithoutFeedback>
                <StackIndex />
            </View>
        );
    }
}

它按预期工作。