Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 谷歌地图搜索中的地点标记问题_Javascript_Html_Google Maps_Geocoding - Fatal编程技术网

Javascript 谷歌地图搜索中的地点标记问题

Javascript 谷歌地图搜索中的地点标记问题,javascript,html,google-maps,geocoding,Javascript,Html,Google Maps,Geocoding,我正在用谷歌地图应用程序开发一个网页,但我遇到了一些问题。目前,该网页有一个功能图(没有任何图层)和一个搜索栏。我是编程新手,所以希望有一个我错过的快速修复方法。 当我搜索一个地址时,地图上有一个位置标记。但是,地图不会放大到placemark。如何使地图放大每个搜索的地址 <script type="text/javascript"> var geocoder; var map; function initialize() { geocoder =

我正在用谷歌地图应用程序开发一个网页,但我遇到了一些问题。目前,该网页有一个功能图(没有任何图层)和一个搜索栏。我是编程新手,所以希望有一个我错过的快速修复方法。 当我搜索一个地址时,地图上有一个位置标记。但是,地图不会放大到placemark。如何使地图放大每个搜索的地址

  <script type="text/javascript">
    var geocoder;
    var map; 
  function initialize() {
    geocoder = new google.maps.Geocoder ();
    var latlng = new google.maps.LatLng (55.1667, -114.4000);
    var myOptions = {
      zoom: 5,
      center: latlng,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    }
     map = new google.maps.Map(document.getElementById("map_canvas"),
        myOptions);
        }
    function codeAddress () {
        var address = document.getElementById ("address").value;
        geocoder.geocode ( { 'address': address}, function(results, status)  {
        if (status == google.maps.GeocoderStatus.OK)  {
            map.setCenter(results [0].geometry.location);
            var marker = new google.maps.Marker({
                map: map, 
                position: results [0].geometry.location
            });
            } 
        else {
            alert("Geocode was not successful for the following reason: " + status);
                }
    }); 
                            }
</script>

var地理编码器;
var映射;
函数初始化(){
geocoder=newgoogle.maps.geocoder();
var latlng=new google.maps.latlng(55.1667,-114.4000);
变量myOptions={
缩放:5,
中心:拉特林,
mapTypeId:google.maps.mapTypeId.ROADMAP
}
map=new google.maps.map(document.getElementById(“map_canvas”),
肌肽);
}
函数代码地址(){
var address=document.getElementById(“地址”).value;
geocoder.geocode({'address':address},函数(结果,状态){
if(status==google.maps.GeocoderStatus.OK){
map.setCenter(结果[0].geometry.location);
var marker=new google.maps.marker({
地图:地图,
位置:结果[0]。几何体。位置
});
} 
否则{
警报(“地理编码因以下原因未成功:“+状态”);
}
}); 
}

谢谢

我将调用两个函数:

(1) 把地图放在标记的中心

您已经拥有LatLng,或者通过调用
map.setCenter(myLatLng)
marker.getPosition()
获取LatLng

(2) 设置地图的缩放

map.setZoom(zoomLevel)
可以固定在12到16之间,也可以根据标记的类型(街道地址或城市概况?)而变化。此信息可以存储在标记变量
marker.zoomLevel

function codeAddress () { 
  var address = document.getElementById ("address").value;
  geocoder.geocode ( {'address': address}, function(results, status) { 
    if (status == google.maps.GeocoderStatus.OK) { 
      map.setCenter(results[0].geometry.location);
      var marker = new google.maps.Marker({ map: map, 
        position: results[0].geometry.location });
      map.setZoom(16);
    } 
    else { 
      alert("Geocode was not successful for the following reason: " + status);
    }
  });
}

这很有帮助,但我需要更多的指导。例如,当我搜索一个地址时,如果我想将映射设置为放大8,那么代码会显式地显示出来吗?这在我的代码中是怎么回事?这是我的地图脚本,很抱歉它没有完全组织好,我试着让它变得更好。下一条评论包含了它的其余部分。var地理编码器;var映射;函数initialize(){geocoder=new google.maps.geocoder();var latlng=new google.maps.latlng(55.1667,-114.4000);var myOptions={zoom:5,center:latlng,mapTypeId:google.maps.mapTypeId.ROADMAP}map=new google.maps.map(document.getElementById(“地图”),myOptions);}函数codeAddress(){var address=document.getElementById(“address”).value;geocoder.geocode({“address”:address},函数(结果,状态){if(status==google.maps.GeocoderStatus.OK){map.setCenter(结果[0].geometry.location);var marker=new google.maps.marker({map:map,position:results[0].geometry.location});}else{alert(“地理编码因以下原因未成功:“+status”);}}有没有更好的方法在这里发布代码以便更容易阅读?编辑您的问题,粘贴代码,突出显示代码,然后单击
{}
图标