javascript - 谷歌地图不显示输入的位置

标签 javascript html google-maps

在下面的代码中,谷歌地图始终仅显示巴黎,而不显示输入的位置。

在下面的表单元素中,我正在调用 javascript showAddress(location) 函数。

HTML 正文:

<body onload="loadDefaultMap()" onunload="GUnload()">

<form action="#" method="post" onsubmit="showAddress(this.address.value); return false">
<input type="text" name="address" size="40" value="Paris"/>
<input type="submit"/>
</form>
<div id="map" style="width:500px;height:400px"></div>
</body>

脚本:

<script type="text/javascript">
    function loadDefaultMap(){
        if(GBrowserIsCompatible()){

            var center =  new GLatLng(48.85661, 2.35222); //Paris

            var map = new GMap2(document.getElementById("map"));
            map.addControl(new GSmallMapControl());
            map.addControl(new GMapTypeControl());
            map.setCenter(center,15);

            geoCoder = new GClientGeocoder();   // this will render the map on th bases of address entered

            var marker = new GMarker(center, {draggable: true});  
            map.addOverlay(marker);

            GEvent.addListener(marker, "dragend", function() {
                var point = marker.getPoint();
                map.panTo(point);
            });

            GEvent.addListener(map, "moveend", function() {
                map.clearOverlays();
                var center = map.getCenter();
                var marker = new GMarker(center, {draggable: true});
                map.addOverlay(marker);

                GEvent.addListener(marker, "dragend", function() {
                    var point =marker.getPoint();
                    map.panTo(point);
                });
            });
        }
    }


    function showAddress(address){
        var map = new GMap2(document.getElementById("map"));
        map.addControl(new GSmallMapControl());
        map.addControl(new GMapTypeControl());

        if(geoCoder){
            geoCoder.getLatLng(address, function(point){
                if(!point){
                    alert('Location Not Available');
                }else{
                    map.clearOverlays();
                    map.setCenter(point,15);
                    var marker = new GMarker(address, {draggable: true});  
                    map.addOverlay(marker);
                }
            })


        }
    }

    </script>

提前致谢:)

最佳答案

map.setCenter() 采用 GLatLng 对象,而不是。尝试从您的创建一个新的GLatLng对象。如果点包含纬度和经度字段,您可以执行以下操作:

map.setCenter(new GLatLng(point.latitude, point.longitude), 15);

关于javascript - 谷歌地图不显示输入的位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10823779/

相关文章:

javascript - <输入类型 ="hidden"功能问题

javascript - html5 将 <div> 拖放到相应位置

html - 动态 CSS 背景 URL

php - 在选项标签中显示空格

ios - 我想在 iOS Swift 中摇动谷歌地图标记

javascript - dc.js:更改 x 轴增量

javascript - 如何在javascript中获取对象的属性名称

android - 顺利更新谷歌地图上的标记位置

javascript - 谷歌地图 : unwanted resizing of the map

javascript - 参数值 `onClick` 已更改