作为新手使用 Google JavaScript API ..我不得不问它!
我尝试找到一些有关它的信息,但我没有...我知道我们可以通过long / lat和许多种类型创建地图但是,我需要通过以下位置创建地图:< / p>
我想说明一点:巴塞罗那,Passeig de gracia,32
使用这个位置作为中心创建地图是否可行?因为我没有邮政编码...或者我真的需要它来咨询API?
非常感谢!
答案 0 :(得分:1)
使用地址参数调用此网址 https://maps.googleapis.com/maps/api/geocode/json?address=Barcelona,+Passeig+de+gracia,+32&key=YOUR_GOOGLE_API_KEY获得了json
{
"results" : [
{
"address_components" : [
{
"long_name" : "32",
"short_name" : "32",
"types" : [ "street_number" ]
},
{
"long_name" : "Passeig de Gràcia",
"short_name" : "Passeig de Gràcia",
"types" : [ "route" ]
},
{
"long_name" : "Barcelona",
"short_name" : "Barcelona",
"types" : [ "locality", "political" ]
},
{
"long_name" : "Barcelona",
"short_name" : "Barcelona",
"types" : [ "administrative_area_level_2", "political" ]
},
{
"long_name" : "Catalunya",
"short_name" : "CT",
"types" : [ "administrative_area_level_1", "political" ]
},
{
"long_name" : "España",
"short_name" : "ES",
"types" : [ "country", "political" ]
},
{
"long_name" : "08007",
"short_name" : "08007",
"types" : [ "postal_code" ]
}
],
"formatted_address" : "Passeig de Gràcia, 32, 08007 Barcelona, Barcelona, España",
"geometry" : {
"location" : {
"lat" : 41.3907821,
"lng" : 2.1672485
},
"location_type" : "ROOFTOP",
"viewport" : {
"northeast" : {
"lat" : 41.39213108029149,
"lng" : 2.168597480291502
},
"southwest" : {
"lat" : 41.38943311970849,
"lng" : 2.165899519708498
}
}
},
"place_id" : "ChIJlyIRgPKipBIRd60v8v6Vc_Y",
"types" : [ "street_address" ]
}
] “状态”:“确定” }
调用此函数并使用新值设置lat和lng,您可以创建以此位置为中心的地图组件。
function initMap() {
// Create a map object and specify the DOM element for display.
var map = new google.maps.Map(document.getElementById('map'), {
center: {lat: -34.397, lng: 150.644},
scrollwheel: false,
zoom: 8
});
}
在html文件中
<div id="map"></div>
答案 1 :(得分:1)
2个解决方案:
1:创建一个临时(不可见)地图,搜索“Barcelona,Passeig de gracia,32”并使用返回的lat / lng创建并初始化新地图。
import scraperwiki
import requests
from bs4 import BeautifulSoup
import csv
import MySQLdb
import re
#mysql portion
mydb = MySQLdb.connect(host='localhost',
user= '******',
passwd='******',
db='testdb')
cur = mydb.cursor()
def store (area, last_count, count, change_from_prior_count, date_of_prior_count, change_from_last_year, date_of_last_year_count):
cur.execute('INSERT IGNORE INTO RIGCOUNT (area, last_count, count, change_from_prior_count, date_of_prior_count, change_from_last_year, date_of_last_year_count) VALUES (\"%s\",$
cur.connection.commit()
base_url = 'http://phx.corporate-ir.net/phoenix.zhtml?c=79687&p=irol-rigcountsoverview'
html = requests.get(base_url)
soup = BeautifulSoup(html.content, "html.parser")
table = soup.findAll('table')
rows = table[1].findAll("tr")
if len(soup.findAll('tr')) > 0:
rows = rows[1:]
white_space_pattern = re.compile(r"\s+")
for row in rows:
cells = row.findAll('td')
cells = [white_space_pattern.sub(' ', cell.get_text()) for cell in cells]
area = cells[0]
last_count = cells[1]
count = cells[2]
change_from_prior_count = cells[3]
date_of_prior_count = cells[4]
change_from_last_year = cells[5]
date_of_last_year_count = cells[6]
store(area, last_count, count, change_from_prior_count, date_of_prior_count, change_from_last_year, date_of_last_year_count)
data = {
'area': area,
'last_count': last_count,
'count': count,
'change_from_prior_count': change_from_prior_count,
'date_of_prior_count': date_of_prior_count,
'change_from_last_year': change_from_last_year,
'date_of_last_year_count': date_of_last_year_count,
}
print data
print '\n'
mydb.close()
2:创建一个没有初始位置的地图,搜索“Barcelona,Passeig de gracia,32”并在地图上显示。
<div id="tmpMap" style="display: none; width: 0; height: 0;"></div>
<div id="realMap"></div>
<script>
var map = new google.maps.Map(document.getElementById('tmpMap'), {
center: {lat: 0, lng: 0},
zoom: 15
});
var geocoder = new google.maps.Geocoder();
geocoder.geocode({address: 'Barcelona, Passeig de gracia, 32'}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
latlng = results[0].geometry.location;
var map = new google.maps.Map(document.getElementById('realMap'), {
center: results[0].geometry.location,
zoom: 15
});
} else {
alert('Geocode was not successful for the following reason: ' + status);
}
});
</script>