Javascript 使用传单控件搜索从地址获取并显示lat long
我使用的是moulate.js和这个插件:需要一种方法从地址搜索中获取lat和long坐标,并将它们放入一个输入字段,或者只是能够使用它们 答案可能在下面的代码中,只是不知道怎么做Javascript 使用传单控件搜索从地址获取并显示lat long,javascript,leaflet,google-geocoder,Javascript,Leaflet,Google Geocoder,我使用的是moulate.js和这个插件:需要一种方法从地址搜索中获取lat和long坐标,并将它们放入一个输入字段,或者只是能够使用它们 答案可能在下面的代码中,只是不知道怎么做 var geocoder = new google.maps.Geocoder(); function googleGeocoding(text, callResponse) {
var geocoder = new google.maps.Geocoder();
function googleGeocoding(text, callResponse)
{
geocoder.geocode({address: text}, callResponse);
}
function filterJSONCall(rawjson)
{
var json = {},
key, loc, disp = [];
for(var i in rawjson)
{
key = rawjson[i].formatted_address;
loc = L.latLng( rawjson[i].geometry.location.lat(), rawjson[i].geometry.location.lng() );
json[ key ]= loc; //key,value format
}
return json;
}
map.addControl( new L.Control.Search({
callData: googleGeocoding,
filterJSON: filterJSONCall,
wrapper: 'findbox',
markerLocation: true,
autoType: false,
autoCollapse: true,
minLength: 5,
zoom: 10,
initial: true,
collapsed: false,
tipAutoSubmit: false,
autoResize: false,
text: 'Enter an Address'
}) );
在传单-search.js文件中,有一个名为 _getLocation(此.\u输入值) 此函数用于返回所需的信息。您可以看到它在_handleSubmit函数中被调用,如下所示:
var loc = this._getLocation(this._input.value);
如果您这样做:
console.log("Latitude: " + loc.lat);
console.log("Longitude: " + loc.lng);
在传单-search.js中大声呼叫,您将在控制台中获得所需的信息
我给了你需要的信息,现在你可以随心所欲地使用了。创建一个公共函数,然后在代码中访问它,或者访问任何您想要的内容
var searchbox = new L.Control.Search({
callData: googleGeocoding,
filterJSON: filterJSONCall,
wrapper: 'findbox',
markerLocation: true,
autoType: false,
autoCollapse: true,
minLength: 5,
zoom: 10,
initial: true,
collapsed: false,
tipAutoSubmit: false,
autoResize: false,
text: 'Enter an Address'
});
searchbox.on('search_locationfound', function(e) {
var locLat = e.latlng.lat;
var locLng = e.latlng.lng;
console.log(locLat+', '+locLng);
});
这对我很管用。我希望我能在这方面帮助其他人。:) 太好了,谢谢你。我让它将值写入控制台和输入字段,但有一个问题。。。它写的字符串是:LatLng(42.70002,-91.86391),而我只需要latlong,比如:42.70002,-91.86391。你知道我该如何重新格式化输出吗?我已经编辑了我的答案,现在你可以显式地读取lat(纬度)和lng(经度)。好吧,要将它们组合成我需要的格式,我需要这样做:console.log(loc.lat,loc.lng)?好的,我知道了:
var longi=loc.lng;var lati=位置lat;变量位置=经度+“,”+纬度;$(“拉特朗吉特”).val(地点)代码>