2016-11-15 64 views
-1

我试图多次更改.onchange函数来更改地图缩放级别和中心点。缩放更改会生效,但地图不会更改位置。map.setCenter和map.Panto不会移动地图

任何帮助,将不胜感激。我已经删除了我的API密钥,但否则地图将自行运行。

<script> 
    function detectBrowser() { 
     var useragent = navigator.userAgent; 
     var mapdiv = document.getElementById("map"); 

     if (useragent.indexOf('iPhone') != -1 || useragent.indexOf('Android') != -1) { 
     mapdiv.style.width = '100%'; 
     mapdiv.style.height = '100%'; 
     } else { 
     mapdiv.style.width = '600px'; 
     mapdiv.style.height = '800px'; 
     } 
    } 
     function initMap() { 
     var central = {lat: 39.8282, lng: -98.5795}; 
     var map = new google.maps.Map(document.getElementById('map'), { 
      zoom: 5, 
      center: central 
     }); 
     var fops = 'http://coleprojects.000webhostapp.com/sqteam.png'; 
     document.getElementById("FieldTeamMember").onchange = function() { 
     map.setZoom(8); 
     alert(this.value) 
     map.setCenter(new google.maps.LatLng(this.value)); 
     }; 
+0

的可能的复制[传递位置坐标谷歌地图作为变量](http://stackoverflow.com/questions/10676828/passing-location-coordinates-to-google-maps-as-variable) – geocodezip

+0

相关任务离子:[设置坐标,如果存在谷歌地图](http://stackoverflow.com/questions/14894076/set-coordinates-if-exist-google-maps) – geocodezip

+0

发布的代码中有语法错误(错过关闭“ }“为initMap)。 – geocodezip

回答

1

在JavaScript控制台一条线索:

InvalidValueError: in property lat: not a number 

你需要传递一个google.maps.LatLng(或google.maps.LatLngLiteral)到map.setCenter方法:

document.getElementById("FieldTeamMember").onchange = function() { 
    map.setZoom(8); 
    var coords=this.value.split(','); 
    var latLng = new google.maps.LatLng(parseFloat(coords[0]), parseFloat(coords[1])); 
    map.setCenter(latLng); 
};