Esempio n. 1
0
 def get_tile_from_coord(self, coord, layer, mapServ, styleID):
     href = self.get_url_from_coord(coord, layer, mapServ, styleID)
     if href:
         try:
             print 'downloading:', href
             oa = openanything.fetch(href)
             if oa['status']==200:
                 return oa['data']
             else:
                 raise RuntimeError, ("HTTP Reponse is: " + str(oa['status']),)
         except:
             raise
Esempio n. 2
0
def search_location(location):
    print 'downloading the following location:', location
    try:
        oa = openanything.fetch( 'http://maps.google.com/maps?q=' +
            urllib.quote_plus(location) )
    except Exception:
        return 'error=Can not connect to http://maps.google.com', None
    if oa['status']!=200:
        return 'error=Can not connect to http://maps.google.com', None

    m = 0
    html = oa['data']
    if html.find('We could not understand the location') < 0:
        # List of patterns to look for the location name
        paList = ['laddr:"([^"]+)"',
                  'daddr:"([^"]+)"']
        for srtPattern in paList:
            p = re.compile(srtPattern)
            m = p.search(html)
            if m: break

    if m:
        location = m.group(1)
    else:
        return 'error=Location %s not found' % location, None

    # List of patterns to look for the latitude & longitude
    paList = ['center:{lat:([0-9.-]+),lng:([0-9.-]+)}.*zoom:([0-9.-]+)',
              'markers:.*lat:([0-9.-]+),lng:([0-9.-]+).*laddr:',
              'dtlsUrl:.*x26sll=([0-9.-]+),([0-9.-]+).*x26sspn']

    for srtPattern in paList:
        p = re.compile(srtPattern)
        m = p.search(html)
        if m: break

    if m:
        zoom = 10
        if m.group(0).find('zoom:') != -1:
            zoom = set_zoom(MAP_MAX_ZOOM_LEVEL - int(m.group(3)))
        else:
            p = re.compile('center:.*zoom:([0-9.-]+).*mapType:')
            m = p.search(html)
            if m:
                zoom = set_zoom(MAP_MAX_ZOOM_LEVEL - int(m.group(1)))
        location = unicode(location, errors='ignore')
        return location, (float(m.group(1)), float(m.group(2)), zoom)

    else:
        return 'error=Unable to get latitude and longitude of %s ' % location
Esempio n. 3
0
def layer_url_template(layer):
    if layer not in known_layers:
        map_server_query = ["", "h", "p"]
        layers_name = ["m", "s", "t"]

        oa = openanything.fetch(
            'http://maps.google.com/maps?t=' + map_server_query[layer])

        if oa['status'] != 200:
            print "Trying to fetch http://maps.google.com/maps but failed"
            return None
        html = oa['data']

        known_layers[layer] = parse_start_page(layers_name[layer], html)
    return known_layers[layer]