我需要通过在单击按钮时将x指定给lat对象来更改map函数中的center值。但是,我似乎无法弄清楚如何从我的alertFunction分配map.center.lat = 43.138428。本质上,我问的是如何在一个对象内部,一个函数内部,从另一个函数引用一个对象。我在Rails里面工作。
<script>
//function to update my center
function alertFunction() {
var x = document.getElementById("myInput").value;
initMap();
**Wrong Code**
**// map.center.lat = 43.138428;**
};
//function to start map
function initMap() {
map = new google.maps.Map(document.getElementById('map'), {
zoom: 10,
center:{lat: 41.138428, lng:-85.140239},
});
答案 0 :(得分:2)
您的initMap
函数应该返回一些内容,或者您可以使用参数来设置.lat
// the latter
function alertFunction() {
var x = document.getElementById("myInput").value;
initMap(43.138428);
// ^ pass latitude value
};
//function to start map
function initMap(latitude) {
// ^ parameter
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 10,
center:{lat: latitude, lng:-85.140239},
// ^ from parameter
});
}
// the former
function alertFunction() {
var x = document.getElementById("myInput").value;
var map = initMap();
// ^ initMap returns the map
map.center.lat = 43.138428;
};
//function to start map
function initMap(latitude) {
return new google.maps.Map(document.getElementById('map'), {
zoom: 10,
center:{lat: latitude, lng:-85.140239},
});
}
答案 1 :(得分:0)
<script>
//function to update my center
function alertFunction() {
var x = document.getElementById("myInput").value;
var map = initMap();
**Wrong Code**
**// map.center.lat = 43.138428;**
};
//function to start map
function initMap() {
return map = new google.maps.Map(document.getElementById('map'), {
zoom: 10,
center:{lat: 41.138428, lng:-85.140239},
});
retrun map或者您必须使用全局变量。
答案 2 :(得分:0)
在他们展示的谷歌地图文档中 - 您需要声明您的地图&#39;函数之外的变量或其他函数无法访问它。
didFinishLaunchingWithOptions
这样你的initMap()就会改变initMap函数之外的变量。