C# 从geo autocomplete api获取返回位置的完整地址
如果你不熟悉google的geo autocomplete插件,让我解释一下我的插件是如何工作的,我有一个文本框,当你在文本框内键入一个位置时,auto complete插件会给你一个类似名称的位置下拉列表。选择所需地点后,将为您生成地图 我想要的是将返回位置的完整地址输入到文本框中。 在我进行的一些在线研究中,我拍摄了:C# 从geo autocomplete api获取返回位置的完整地址,c#,javascript,asp.net,html,google-maps-api-3,C#,Javascript,Asp.net,Html,Google Maps Api 3,如果你不熟悉google的geo autocomplete插件,让我解释一下我的插件是如何工作的,我有一个文本框,当你在文本框内键入一个位置时,auto complete插件会给你一个类似名称的位置下拉列表。选择所需地点后,将为您生成地图 我想要的是将返回位置的完整地址输入到文本框中。 在我进行的一些在线研究中,我拍摄了: getPlace() 函数和我想要的属性: formatted_address 但我的问题是,这是我第一次使用谷歌的“地理自动完成”插件,所以我不知道如何正确使用这些功能
getPlace()
函数和我想要的属性:
formatted_address
但我的问题是,这是我第一次使用谷歌的“地理自动完成”插件,所以我不知道如何正确使用这些功能。如果您曾经实现过类似的功能,请帮助我
这是我的代码:
<!-- Google Maps API -->
<script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false"></script>
<script type="text/javascript" src="http://jqueryjs.googlecode.com/files/jquery-1.3.2.min.js"></script>
<!--
jquery.autocomplete.js requires a minor modification for geo_autocomplete to work
the following script includes the required mod
-->
<script type="text/javascript" src="geo-autocomplete/lib/jquery.autocomplete_geomod.js"></script>
<script type="text/javascript" src="geo-autocomplete/geo_autocomplete.js"></script>
<link rel="stylesheet" type="text/css" href="geo-autocomplete/lib/jquery.autocomplete.css" />
<!-- Google Maps API -->
<script type=text/javascript">
$(document).ready(function () {
$('#dialog-form').hide();
$('#btnCancel').css('cursor', 'pointer');
$('#btnPostAlert').css('cursor', 'pointer');
$('#btnCancel').click(function () {
$('#dialog-form').hide();
alert(place.name)
});
$('#btnPostAlert').click(function () {
$('#dialog-form').show();
});
var latlng = new google.maps.LatLng(-34.397, 150.644);
var myOptions = {
zoom: 8,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);
$("#location").geo_autocomplete(new google.maps.Geocoder, {
mapkey: 'ABQIAAAAbnvDoAoYOSW2iqoXiGTpYBTIx7cuHpcaq3fYV4NM0BaZl8OxDxS9pQpgJkMv0RxjVl6cDGhDNERjaQ',
selectFirst: false,
minChars: 3,
cacheLength: 50,
width: 300,
scroll: true,
scrollHeight: 330,
details: $('#details'),
}).result(function (_event, _data) {
if (_data) map.fitBounds(_data.geometry.viewport);
)};
});
});
</script>
Can you please check it out.
我不确定你所说的“geo autocomplete plugin”是什么意思,但当你指的是时,你必须观察autocomplete
-实例的place\u changed
事件(当用户从下拉列表中选择一个地点时触发)
在回调中,您可以使用this.getPlace()
访问placesResult
,格式化的\u地址(如果可用)是placeResult
的属性,因此您可以使用this.getPlace().格式化的\u地址来检索它
示例代码:
google.maps.event.addListener(autocomplete, 'place_changed', function() {
var address = this.getPlace().formatted_address||'';
alert(address);
});
我更新了我的帖子,我尝试了你所说的,但没有成功,我检查了控制台没有错误,请检查我的代码,告诉我我是否做错了什么。正如我所说,谷歌地图API中没有geo_autocomplete-plugin可用,您应该提供有关所用插件的信息。插件的实际名称是Places Autocomplete,但我下载它时的名称是geo-Autocomplete。在代码中传递给.result()
的第二个参数是placesResult,因此您必须在.result()中使用\u data.formatted\u address
。然而,这个插件最近一次更新是在3年前,与当前的jQuery版本不兼容,我不会使用这个插件。