百度地图搜索poi、point、address

本文介绍了一个使用BMap地图API实现地图定位和搜索的JavaScript函数。通过清除地图上的所有覆盖物并设置智能搜索功能,该函数能够根据指定地址进行地图定位,并获取并打印出搜索结果中的地址信息。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

function setPlace(dd){
        var add="福建省福州市"+$("#sendDistrict").val();
        map.clearOverlays();    //清除地图上所有覆盖物
        function myFun(){
            console.log(local.getResults().getPoi(0).address)
            point2=local.getResults().getPoi(0).point;
        }
        var local = new BMap.LocalSearch(map, { //智能搜索
          onSearchComplete: myFun
        });
        local.search(add+dd);
    }

### 使用Python实现百度地图POI数据的网络爬虫 为了使用Python编写一个能够抓取百度地图POIPoint of Interest)数据的网络爬虫,主要依赖于`requests`库发送HTTP请求以及解析返回的数据。下面是一个简单的例子展示如何完成这一目标。 #### 准备工作 首先需要注册成为百度LBS云平台开发者并创建应用以获得API Key[^1]。接着安装必要的Python包: ```bash pip install requests pandas psycopg2-binary ``` 其中`psycopg2-binary`用于连接PostgreSQL数据库存储获取的信息;而`pandas`可以帮助更好地处理结构化表格型数据。 #### 编写代码调用API 构建函数来封装向百度地图Web服务发起查询的过程。此部分涉及设置URL参数如位置范围、检索关键字等,并通过GET方法传递给服务器端口。 ```python import json from urllib.parse import urlencode, quote_plus def fetch_poi(api_key, location, radius=1000, query=""): base_url = "http://api.map.baidu.com/place/v2/search?" params = { 'query': query, 'location': str(location), 'radius': str(radius), # 半径,默认为1公里 'output': 'json', 'ak': api_key } url = f"{base_url}{urlencode(params)}" response = requests.get(url).text return json.loads(response) ``` 上述代码片段定义了一个名为`fetch_poi()` 的辅助函数,它接受多个输入参数以便灵活调整每次请求的具体条件[^2]。 #### 数据存入PostgreSQL 当成功接收到响应后,则需进一步提取有用字段并将它们整理成适合长期保存的形式——比如CSV文件或是关系型数据库表记录。这里选择了后者作为持久化的手段之一。 ```python import psycopg2 conn_info = { "host": "localhost", "database": "your_database_name", "user": "username", "password": "password" } connection = None try: connection = psycopg2.connect(**conn_info) cursor = connection.cursor() create_table_query = ''' CREATE TABLE IF NOT EXISTS pois ( id SERIAL PRIMARY KEY, name VARCHAR(255), address TEXT, latitude NUMERIC, longitude NUMERIC); ''' cursor.execute(create_table_query) except (Exception, psycopg2.DatabaseError) as error : print ("Error while connecting to PostgreSQL", error) finally: if(connection): cursor.close() connection.commit() connection.close() # 插入新条目... for item in poi_data['results']: insert_query = """ INSERT INTO pois(name,address, latitude, longitude) VALUES (%s,%s,%s,%s);""" try: connection = psycopg2.connect(**conn_info) cursor = connection.cursor() record_to_insert = (item["name"], item["address"], float(item["location"]["lat"]), float(item["location"]["lng"])) cursor.execute(insert_query,record_to_insert ) except Exception as e: print(f"Failed inserting {e}") finally: if(connection): cursor.close() connection.commit() connection.close() ``` 这段脚本展示了怎样建立与本地实例之间的通信链路,并执行SQL语句操作指定模式下的特定对象。对于每一个来自在线资源的新实体都将被追加至预先声明好的集合内。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值