2015-12-02 81 views
-1

我试图使用存储在Google表格中的邮编将图钉添加到Google地图。到目前为止,我已经能够使用JSON来访问的邮政编码电子表格:如何使用jQuery和JSON添加图钉到谷歌地图

$.getJSON('http://cors.io/?u=https://spreadsheets.google.com/feeds/list/1pksFEATRRWfOU27kylZ1WLBJIC-pMVxKk9YlCcDG0Kk/od6/public/values?alt=json', function(data) { 
    $.each(data.feed.entry, function(i, v) { 
     var data = $('<div class="listing">').append('<h4 id="bandb">' + v.gsx$postcode.$t + '</h4>'); 
     $('body').append(data); 
    }); 
}); 

我也能使用邮政编码,以销添加到谷歌地图。

实施例:http://codepen.io/aljohnstone/pen/eJOyrP

我无法结合两个。我希望Codepen中的postcodes变量从我的Google表格中获取邮编。

回答

1

使用Google Maps Javascript API v3工作示例:

$(document).ready(function() { 
 
    var geocoder = new google.maps.Geocoder(); 
 
    var map = new google.maps.Map(document.getElementById("map_canvas"), { 
 
    center: { 
 
     lat: 54, 
 
     lng: -3 
 
    }, 
 
    zoom: 5 
 
    }); 
 
    var i; 
 
    var postcodes = []; 
 
    $.getJSON('http://cors.io/?u=https://spreadsheets.google.com/feeds/list/1pksFEATRRWfOU27kylZ1WLBJIC-pMVxKk9YlCcDG0Kk/od6/public/values?alt=json', function(data) { 
 
    $.each(data.feed.entry, function(i, v) { 
 
     postcodes.push(v.gsx$postcode.$t); 
 
    }); 
 
    }).done(function() { 
 
    map.setCenter(new google.maps.LatLng(54.00, -3.00)); 
 
    map.setZoom(5); 
 
    var bounds = new google.maps.LatLngBounds(); 
 
    for (i = 0; i < postcodes.length; i++) { 
 
     geocoder.geocode({ 
 
     'address': "" + postcodes[i] 
 
     }, (function(i) { 
 
     return function(results, status) { 
 
      if (status === google.maps.GeocoderStatus.OK) { 
 
      var marker = new google.maps.Marker({ 
 
       position: results[0].geometry.location, 
 
       map: map, 
 
       title: postcodes[i] 
 
      }); 
 
      bounds.extend(marker.getPosition()); 
 
      map.fitBounds(bounds); 
 
      } else { 
 
      alert('Geocode was not successful for the following reason: ' + status); 
 
      } 
 
     } 
 
     })(i)); 
 
    } 
 
    }); 
 
});
html, 
 
body, 
 
#map_canvas { 
 
    height: 100%; 
 
    width: 100%; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<script src="https://maps.googleapis.com/maps/api/js" type="text/javascript"></script> 
 
<div id="map_canvas"></div>

+0

这真的很有帮助,非常感谢。 – Alistair

0

试试这个

<script src="http://maps.google.com/maps?file=api&amp;v=2&amp;sensor=false" type="text/javascript"></script> 
<div id="map_canvas" style="width: 600px; height: 350px"></div> 

<script type="text/javascript"> 
$(document).ready(function() 
{ 
var geocoder = new GClientGeocoder(); 
     var map = new GMap2(document.getElementById("map_canvas")); 
     var i; 
     var postcodes = []; 
     $.getJSON('http://cors.io/?u=https://spreadsheets.google.com/feeds/list/1pksFEATRRWfOU27kylZ1WLBJIC-pMVxKk9YlCcDG0Kk/od6/public/values?alt=json', function(data) { 
     $.each(data.feed.entry, function(i, v) 
     { 
      postcodes.push(v.gsx$postcode.$t); 
     }); 
     }).done(function() 
     { 
      map.setCenter(new GLatLng(54.00, -3.00), 5); 
      for (i = 0; i < postcodes.length; i++) { 
      geocoder.getLatLng(postcodes[i] + ', UK', function(point) { 
       if (point) { 
       map.addOverlay(new GMarker(point)); 
       } 
      }); 
      } 
     }); 
}); 
</script> 

工作实例http://codepen.io/snm/pen/eJOVMY?editors=101

+0

此代码示例使用已废弃并关闭谷歌地图Javascript API v2](http://stackoverflow.com/tags/google-maps-api-2/info),其中**不应该用于新代码。** – geocodezip

+0

我刚用脚本重新创建输出@ user3780099已在他的codepen中使用。 – Snm