按位置创建googleMap

时间:2016-04-20 19:23:36

标签: javascript google-maps

作为新手使用 Google JavaScript API ..我不得不问它!

我尝试找到一些有关它的信息,但我没有...我知道我们可以通过long / lat和许多种类型创建地图但是,我需要通过以下位置创建地图:< / p>

我想说明一点:巴塞罗那,Passeig de gracia,32

使用这个位置作为中心创建地图是否可行?因为我没有邮政编码...或者我真的需要它来咨询API?

非常感谢!

2 个答案:

答案 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>