Gmaps搜索和kmz加载JavaScript

时间:2015-04-08 09:43:41

标签: javascript google-maps geolocation kmz

我有一个网站,我加载并使用kmz文件。我的问题是GEO的位置不起作用,我的意思是它正在工作,但由于Javascript加载了kmz文件并将重点放在KMZ地图而不是你的GEOlocation上,因此它没有显示街道。

无论如何,这是代码,所以你可以看出错误:

 <script type="text/javascript">
    var map, infoWindow;
    $(document).ready(function(){
      infoWindow = new google.maps.InfoWindow({});
      map = new GMaps({
        el: '#map',
        zoom: 20,
        lat: 46.044414,
        lng: 14.508105,
      });
      map.loadFromKML({
        url: 'http://blabla.com/blabla.kmz',
        url: 'http://blabla.com/blabla2.kmz',
        suppressInfoWindows: true,
        events: {
          click: function(point){
            infoWindow.setContent(point.featureData.infoWindowHtml);
            infoWindow.setPosition(point.latLng);
            infoWindow.open(map.map);
          }
        }
      });
    });
  </script>
<script type="text/javascript">
GMaps.geolocate({
  success: function(position) {
    map.setCenter(position.coords.latitude, position.coords.longitude);
  },
  error: function(error) {
    alert('Geolocation failed: '+error.message);
  },
  not_supported: function() {
    alert("Your browser does not support geolocation");
  },
  always: function() {
    alert("Success!");
  }
});
</script>

哦,我差点忘了,我正在使用Gmaps.js

1 个答案:

答案 0 :(得分:0)

来自GMaps documentation

  

此外,loadFromKML接受google.maps.KmlLayerOptions中定义的任何选项。

使用{preserveViewport: true}选项。

  

preserveViewport 布尔值默认情况下,输入地图居中并缩放到图层内容的边界框。如果此选项设置为true,则视口保持不变,除非从未设置地图的中心和缩放。

map.loadFromKML({
    url: 'http://blabla.com/blabla.kmz',
    url: 'http://blabla.com/blabla2.kmz',
    preserveViewport: true,
    suppressInfoWindows: true,
    events: {
      click: function(point){
        infoWindow.setContent(point.featureData.infoWindowHtml);
        infoWindow.setPosition(point.latLng);
        infoWindow.open(map.map);
      }
    }