Ajax请求使用谷歌地图API
问题描述:
我想创建一个实时搜索框,以便我的用户可以搜索我的网站上的位置。 我一直在使用JqueryUI自动完成功能和GoogleMap API作为建议列表。Ajax请求使用谷歌地图API
下面的代码:
...
<script type="text/javascript" src="js/jquery-1.5.2.min.js"></script>
<script type="text/javascript" src="js/jquery-ui-1.8.12.custom.min.js"></script>
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
</head>
<body>
<div id="content">
<h1>Google Maps Autocomplete Search Sample</h1>
<div align="left">
<form method="post" action="#">
<input type="text" value="" id="searchbox" name="searchbox" style=" width:800px;height:30px; font-size:15px;">
<input type="submit" />
<div class="ui-widget" style="margin-top:2em; font-family:Arial">
Result:
<div id="log" style="height: 200px; width: 300px; overflow: auto;" class="ui-widget-content"></div>
</div>
</form>
</div>
<div align="left" id="map" style="width:800px; height: 600px; margin-top: 10px; ">
</div>
</div>
<?php
include_once('inc/foot.php');
?>
<script type="text/javascript">
$(document).ready(function(){
var mapOptions = {
zoom: 10,
mapTypeId: google.maps.MapTypeId.ROADMAP,
center: new google.maps.LatLng(41.06000,28.98700)
};
var map = new google.maps.Map(document.getElementById("map"),mapOptions);
var geocoder = new google.maps.Geocoder();
$(function() {
function log(message) {
$("<div/>").text(message).prependTo("#log");
$("#log").attr("scrollTop", 0);
}
$("#searchbox").autocomplete({
source: function(request, response) {
if (geocoder == null){
geocoder = new google.maps.Geocoder();
}
geocoder.geocode({'address': request.term }, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
var searchLoc = results[0].geometry.location;
var lat = results[0].geometry.location.lat();
var lng = results[0].geometry.location.lng();
var latlng = new google.maps.LatLng(lat, lng);
var bounds = results[0].geometry.bounds;
geocoder.geocode({'latLng': latlng}, function(results1, status1) {
if (status1 == google.maps.GeocoderStatus.OK) {
if (results1[1]) {
response($.map(results1, function(loc) {
return {
label : loc.formatted_address,
value : loc.formatted_address+loc.geometry.location,
bounds : loc.geometry.bounds
}
}));
}
}
});
}
});
},
select: function(event,ui){
var pos = ui.item.position;
var lct = ui.item.locType;
var bounds = ui.item.bounds;
log(ui.item ?
ui.item.value :
"undefined_by_google" + this.value);
if (bounds){
map.fitBounds(bounds);
}
}
});
});
});
</script>
我想找到一种方法来加载DIV(#log)只与坐标,而搜索输入(#searchbox)不断显示文本值。
我希望这是很清楚的,否则就问我... 感谢您的帮助
编辑
问题解决了,这是安静简单,只需要:
$(” #log“)。html(”latitude:“+ lat +”longitude:“+ lng);
感谢在看看它埃德加
答
你只需要添加一行代码,然后做出一个变化:
这将保存在一个字符串的最后一个位置:
lastLoc='('+lat+','+lng+')';
这将打印到日志:
log(ui.item ? lastLoc : "undefined_by_google" + this.value);
见小提琴看这些线路如下: working example
您当前的代码是否正常运行?少了什么东西? – 2011-05-07 03:21:29
是的代码运行完美,我只是希望孤立的坐标(搜索返回)在一个单独的div,我想这是一个简单的请求,但我的知识是非常有限的,当谈到JavaScript ... – Victor 2011-05-07 03:27:33