2016-11-26 85 views
0

我一直在尝试4年以上来弄清楚如何使用谷歌地图。我超越欣喜若狂,终于能够用正确的地址生成地图。谷歌地图 - 如何设置缩放级别

这是我的javascript。

我现在正在努力如何设置缩放级别。我已经在下面显示的每个地方尝试了它 - 但它们都不起作用。在每种情况下(不管我设定为缩放级别的数量如何),我都会获得特定建筑物的真实近距离地图。

任何人都可以看到我做错了什么,或者我需要做什么才能让我的地图识别我的缩放级别请求?我没有在控制台中显示任何js错误。

function initMap() { 
    var map = new google.maps.Map(document.getElementById('map'), { 
    zoom: 5 
    }); 
    var bounds = new google.maps.LatLngBounds(); 
    // var opts = { 
    // zoom: 10, 
    // max_zoom: 16 
    // } 

    var n = addresses.length; 
    for (var i = 0; i < n; i++) { 
    var lat = addresses[i].latitude; 
    var lng = addresses[i].longitude; 
    if (lat == null || lng ==null){ 
     console.log(addresses[i].name + " doesn't have coordinates"); 
    }else { 
     var address = new google.maps.Marker({ 
     position: {lat: parseFloat(lat), lng: parseFloat(lng)}, 
     title: addresses[i].name, 
     map: map //, 
//  zoom: 8 
     }); 
     bounds.extend(address.position); 
    } 
    } 
    map.fitBounds(bounds); 
} 

请注意回答为什么这个问题与许多其他人问到的问题不同。我特别在如何以及在哪里使用这个JS提供的功能而苦苦挣扎。我无法理解任何我已经设法生成的JS - 以上版本是4年以上努力学习的结果。我不能在其他职位上采用通用的想法,并且像其他人一样能够轻松地应用它们。当我尝试学习破译如何与这些语言交流时,请耐心等待。这不是我已经很容易掌握的东西。

此外,特别是针对您标记的答案中的问题 - 也许代码在提问时的时间点很好,但从Google图书馆看,正确的表达式应该是“zoom:4 “没有设置缩放(某事)。我尝试了两种方法,无法让他们中的任何一个在我的代码中工作。

XOMENA的建议

以Xomena的建议,我想在我的地图功能来定义缩放和中心(虽然我不发售者如果我在正确的地方做到了这一点)。

这是行不通的。控制台显示我的js文件中的错误,说:

Uncaught SyntaxError: Unexpected identifier 

现在,我的js文件有:

function initMap() { 
    var map = new google.maps.Map(document.getElementById('map'), { 
    setZoom: 5 
    setCenter = addresses.first 
    }); 
    var bounds = new google.maps.LatLngBounds(); 
    // var opts = { 
    // zoom: 10, 
    // max_zoom: 16 
    // } 

    var n = addresses.length; 
    for (var i = 0; i < n; i++) { 
    var lat = addresses[i].latitude; 
    var lng = addresses[i].longitude; 
    if (lat == null || lng ==null){ 
     console.log(addresses[i].name + " doesn't have coordinates"); 
    }else { 
     var address = new google.maps.Marker({ 
     position: {lat: parseFloat(lat), lng: parseFloat(lng)}, 
     title: addresses[i].name, 
     map: map //, 
     // zoom: 8 
     }); 
     // bounds.extend(address.position); 
    } 
    } 
    // map.fitBounds(bounds); 
} 

我无法找到如何设置此工作的例子。我试着在这个js文件的每个文本块中放置缩放和设置中心线,但我找不到可行的公式。

下一次尝试

我试图移动我的应用程序的JavaScript包括标记出了头标签,并以我application.html.erb身体标记下。

现在,我有一个错误,指出:

js?key=AIzaSyAleQgfNH3HRQVUCYnyAzp46xmXW7WrWrc&callback=initMap:95 Uncaught Eb {message: "initMap is not a function", name: "InvalidValueError", stack: "Error↵ at new Eb (https://maps.googleapis.com/m…3HRQVUCYnyAzp46xmXW7WrWrc&callback=initMap:130:73"}message: "initMap is not a function"name: "InvalidValueError"stack: "Error↵ at new Eb (https://maps.googleapis.com/maps/api/js?key=AIzaSyAleQgfNH3HRQVUCYnyAzp46xmXW7WrWrc&callback=initMap:41:365)↵ at Object._.Fb (https://maps.googleapis.com/maps/api/js?key=AIzaSyAleQgfNH3HRQVUCYnyAzp46xmXW7WrWrc&callback=initMap:41:475)↵ at Lg (https://maps.googleapis.com/maps/api/js?key=AIzaSyAleQgfNH3HRQVUCYnyAzp46xmXW7WrWrc&callback=initMap:95:420)↵ at https://maps.googleapis.com/maps/api/js?key=AIzaSyAleQgfNH3HRQVUCYnyAzp46xmXW7WrWrc&callback=initMap:130:58↵ at Object.google.maps.Load (https://maps.googleapis.com/maps/api/js?key=AIzaSyAleQgfNH3HRQVUCYnyAzp46xmXW7WrWrc&callback=initMap:21:5)↵ at https://maps.googleapis.com/maps/api/js?key=AIzaSyAleQgfNH3HRQVUCYnyAzp46xmXW7WrWrc&callback=initMap:129:20↵ at https://maps.googleapis.com/maps/api/js?key=AIzaSyAleQgfNH3HRQVUCYnyAzp46xmXW7WrWrc&callback=initMap:130:73"__proto__: ErrorLg @ js?key=AIzaSyAleQgfNH3HRQVUCYnyAzp46xmXW7WrWrc&callback=initMap:95(anonymous function) @ js?key=AIzaSyAleQgfNH3HRQVUCYnyAzp46xmXW7WrWrc&callback=initMap:130google.maps.Load @ js?key=AIzaSyAleQgfNH3HRQVUCYnyAzp46xmXW7WrWrc&callback=initMap:21(anonymous function) @ js?key=AIzaSyAleQgfNH3HRQVUCYnyAzp46xmXW7WrWrc&callback=initMap:129(anonymous function) @ js?key=AIzaSyAleQgfNH3HRQVUCYnyAzp46xmXW7WrWrc&callback=initMap:130 
kwift.CHROME.min.js:1271 Uncaught SyntaxError: Identifier 'findGoodContent' has already been declared 

我已经看了帖子形成采用了棱角分明(我不使用),它建议增加另一个js文件的视图,其中地图是别人显示。

任何人都可以帮助解决这个角度不使用的轨道?

回答

0

map.fitBounds()方法自动调整缩放级别以显示您添加到LatLngBounds中的所有位置。如果您想自己设置缩放级别,请不要使用map.fitBounds(),而应使用map.setZoom()方法。

https://developers.google.com/maps/documentation/javascript/reference#Map

+0

喜 - 我想评论的fitBounds线路输出和变焦增加。这将停止渲染地图。而不是得到正确的地址 - 我得到了一张海洋地图。无论我添加到缩放线的数量如何,它都是相同的缩放级别 - 所以我不认为这是解决方案。你认为我应该使用哪种缩放表情?我的任何尝试都不擅长缩放吗? – Mel

+0

这是因为您在[地图选项](https://developers.google.com/maps/documentation/javascript/reference#MapOptions)中缺少中心参数。中心应定义为地图选项或通过map.setCenter()方法。 https://developers.google.com/maps/documentation/javascript/reference – xomena

+0

我试图加入你的建议。我无法弄清楚如何让它起作用。我已经复制了我上面的最佳尝试。请你帮我弄清楚。谢谢 – Mel

相关问题