2014-10-31 78 views
1

我有一个地图,它有自己的数据集 - 所以它从外部API加载附加信息,填写自定义谷歌地图。Google Map API - 在当前地图上的自动完成搜索

我使用的是自动从谷歌选择功能,所以当对某个地址或位置的用户搜索,他们放大当前地图上(而不会丢失所有数据点)

因此,与此功能,输出是正确的:

London 51.5073509 -0.12775829999998223 6 

我的问题 - 查询是,我怎么能得到如下:

console.log(defaultArea + ' ' + defaultLat + ' ' + defaultLng + ' ' + defaultZoom); 

进入当前地图。

我试过 - 仍然没有工作。

google.maps.event.addDomListener(window, 'load', searchFunct); 

当前JQUERY:

var defaultLat = 54 
defaultLng = -4, 
defaultZoom = 6, 
defaultArea = null; 

function searchFunct() { 
    var input = document.getElementById('location'); 
    var options = { 
     types: ['(regions)'], 
     componentRestrictions: { 
      country: 'uk' 
     } 
    }; 

    var autocomplete = new google.maps.places.Autocomplete(input, options); 

    google.maps.event.addListener(autocomplete, 'place_changed', function() { 
     var place = autocomplete.getPlace(); 
     document.getElementById('city2').value = place.name; 
     document.getElementById('cityLat').value = place.geometry.location.lat(); 
     document.getElementById('cityLng').value = place.geometry.location.lng(); 

     var citi = document.getElementById('city2').value; 
     var lati = document.getElementById('cityLat').value; 
     var longi = document.getElementById('cityLng').value; 

     defaultArea = citi; 
     defaultLat = lati; 
     defaultLng = longi; 
     defaultZoom = 6; 

     console.log(defaultArea + ' ' + defaultLat + ' ' + defaultLng + ' ' + defaultZoom); 

    }); 
} 
+0

你的地图代码在哪里? – geocodezip 2014-10-31 22:57:41

回答

1

添加console.log

我所做的一切有下以下声明定义你latitudelongitude变量中的谷歌地图中的变量google.maps.LatLng。其次,声明一个myOptions对象来定义输入的地方。最后,在map_canvas上绘制所有这些图标并在其上添加一个标记。

var latlng = new google.maps.LatLng(defaultLat, defaultLng); 
var myOptions = { 
    zoom: 11, 
    center: latlng, 
    mapTypeId: google.maps.MapTypeId.ROADMAP 
}; 

var map = new google.maps.Map(document.getElementById("map_canvas"), 
    myOptions); 

marker = new google.maps.Marker({ 
    position: latlng, 
    map: map, 
    title: 'Main map' 
});