我正在研究一个需要经度和纬度并根据搜索查询生成附近位置的程序。一切都按预期工作,但是我对如何使用用户坐标更改起始坐标感到困惑。我最初的计划是让用户以以下形式输入经纬度:
<form id="mapCenterForm">
<label for="latitude">lat</label>
<input type="text" id="lat" name="latitude" placeholder="0.000000">
<label for="longitude">lng</label>
<input type="text" id="lng" name="longitude" placeholder="0.000000">
<br>
<input type="submit">
</form>
然后使用输入的信息来更改脚本中的变量lat和lng:
var map;
var lat= 34.16076;
var lng= -70.20507;
var map=new google.maps.LatLng(lat,lng);
function initMap() {
// Create the map.
var SET = {lat, lng};
map = new google.maps.Map(document.getElementById('map'), {
center: SET,
zoom: 10
});
但是我不知道是否有替代地图加载的纬度和经度的方法。
很抱歉,如果这与发布的其他一些问题相似,我尝试使用Changing latitude and longitude google maps api作为指导,但对我没有太大帮助。
为了进行测试,您可以避免提交,而只需使用按钮而不是调用函数来更改中心
<form id="mapCenterForm">
<label for="latitude">lat</label>
<input type="text" id="lat" name="latitude" placeholder="0.000000">
<label for="longitude">lng</label>
<input type="text" id="lng" name="longitude" placeholder="0.000000">
<br>
<button onclick = "change_center()">
Click Here for move map
</button>
</form>
。
var map;
var lat= 34.16076;
var lng= -70.20507;
var map=new google.maps.LatLng(lat,lng);
function initMap() {
// Create the map.
var SET = {lat, lng};
map = new google.maps.Map(document.getElementById('map'), {
center: SET,
zoom: 10
});
function change_center() {
var newLat = document.getElementById("lat").value;
var newLng = document.getElementById("lng").value;
map.setCenter(new google.maps.LatLng(newLat, newLng));
}