Javascript kml文件中多边形的LatLngBounds?

Javascript kml文件中多边形的LatLngBounds?,javascript,google-maps-api-3,gis,kml,polygon,Javascript,Google Maps Api 3,Gis,Kml,Polygon,我是谷歌地图和API的新手,尝试着让地图在点击时平移到一个区域。我没有很好的时间在API参考中找到我需要的东西,也不知道如何去做,所以我没有太多,但这里是我到目前为止所拥有的 我想这样做,点击任何区域都可以平移并放大显示该区域的大部分,我相信这就是我们要做的 大多数功能都来自于点击文本名称,让地图加载显示正确的位置,而不是点击地图本身 function initialize_neighbourhoodmap(neighbourhood_name) { var latlng = new g

我是谷歌地图和API的新手,尝试着让地图在点击时平移到一个区域。我没有很好的时间在API参考中找到我需要的东西,也不知道如何去做,所以我没有太多,但这里是我到目前为止所拥有的

我想这样做,点击任何区域都可以平移并放大显示该区域的大部分,我相信这就是我们要做的

大多数功能都来自于点击文本名称,让地图加载显示正确的位置,而不是点击地图本身

function initialize_neighbourhoodmap(neighbourhood_name) {
    var latlng = new google.maps.LatLng(42.949442,-81.228125);

    var zoom = 11;
    var neighbourhood_center = get_neighbourhood_center();

    var myOptions = {
      zoom: zoom,
      center: latlng,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    };

    map = new google.maps.Map(document.getElementById("neighbourhood_map"),
        myOptions);

    var neighbourhoods = new google.maps.KmlLayer('http://maps.google.com/maps/ms?authuser=0&ie=UTF8&hl=en&oe=UTF8&vps=3&msa=0&output=kml&msid=217366496682144933685.0004bf3be50d3cd7ad1c2', {suppressInfoWindows: true, preserveViewport:true});
    neighbourhoods.setMap(map);

    google.maps.event.addListener(neighbourhoods, 'click', function(KmlFeatureData) {
        var neighbourhood_name = KmlFeatureData.featureData.name;
    load_neighbourhood(neighbourhood_name, neighbourhoods);
    window.location = "#neighbourhood-neighbourhood "+neighbourhood_name;
    });

    if(typeof neighbourhood_name !== 'undefined'){
        load_neighbourhood(neighbourhood_name, neighbourhood_center);
    }
}

function load_neighbourhood (neighbourhood_name, neighbourhoods) {
    var neighbourhoodbounds = nonexistentgetboundsfunction(neighbourhood_name);
    map.panToBounds(neighbourhood_center[neighbourhood_name][0]);
    $('#neighbourhood h2').html('neighbourhood '+neighbourhood_name);
}

你肯定想要其他功能吗?在我看来,UI变得很笨拙。好的,给你:

我遇到了一个奇怪的“bug”,或者一些人可能会称之为“feature”,它与KML多边形相关。单击某个区域时,地图平移到该区域的中心;但是,当单击外部规划区区域时,地图会平移到框的中心,而不是单击的位置(Sean Mickey在FireFox 12中进行了测试,它平移到单击位置)。除了将规划区细分为几十个较小的框之外,我想不出解决这个问题的方法:(现在我已经编写了忽略规划区点击的代码

google.maps.event.addListener(neighbourhoods, 'click', function(KmlFeatureData) {
        var neighbourhood_name = KmlFeatureData.featureData.name;
    load_neighbourhood(neighbourhood_name, neighbourhoods);
    window.location = "#neighbourhood-neighbourhood "+neighbourhood_name;
    // ADDED
    // Consider what to do when this outer area is clicked
    if(KmlFeatureData.featureData.name!="planning_districts_2008") {
      map.panTo(KmlFeatureData.latLng);
    }

    });

    // LEFT OUT
    //if(typeof neighbourhood_name !== 'undefined'){
    //    load_neighbourhood(neighbourhood_name, neighbourhood_center);
    //}

    // ADDED
    google.maps.event.addListener(map, 'click', function(event) {
      map.panTo(event.latLng);
    });

我想我看不出你在描述什么;它似乎像问题中描述的那样工作。@SeanMickey我没有工作的部分是在大轮廓形状的外面单击(例如:右下角的洛克伍德公园)。地图不会以单击的点为中心,而是以轮廓区域的中心为中心。这不是我看到的。我单击的点会平移到中心,无论我是否在kml区域外部。我可以看到光标切换到kml区域上方的指针,并且它仍然是该区域外部的默认值。无论光标是不是kml,kml,我点击的任何一点都被平移到中心。我使用的是FF 12。如果它在所有现代浏览器中都不起作用,我称之为bug:(我有IE、Chrome和Opera,它们都位于标记区域的中间。我有一个黑客,如果这个“不可见”,我什么也不做)区域被点击。只是澄清一下,它看起来在Firefox中工作得很好。它的行为应该和描述的一样,所以我没有看到bug或任何问题。