You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Google Maps API获取的道路区间而非整条道路用于分析?

如何指定A6高速公路的斯图加特-法兰克福区间供ChatGPT分析

你当前通过get_route_segment函数只能提取到道路编号A6,但要让ChatGPT精准分析斯图加特到法兰克福的特定路段,需要给它提供区间定位信息,以下是几种直接有效的输入方式:

1. 最直接的文本描述

直接结合起止点和道路编号输入:

请分析德国A6高速公路中,从斯图加特到法兰克福的路段

这种方式足够让ChatGPT定位到你需要的区间,无需额外数据。

2. 补充途经节点(提升精准度)

如果需要进一步缩小范围,可以加入路线中的关键途经城镇(比如API返回路线里的海尔布隆):

请分析德国A6高速公路中,斯图加特→海尔布隆→法兰克福的路段

3. 结合经纬度范围(进阶精准)

通过优化你的Python函数,提取该A6路段的起止经纬度,把坐标信息提供给ChatGPT,能实现最精准的区间定位。

优化后的代码示例

import re
import googlemaps

def get_route_segment_with_coords(api_key, origin, destination):
    gmaps = googlemaps.Client(key=api_key)
    route_data = gmaps.directions(origin, destination)[0]
    route_segment = []
    segment_summary = route_data["summary"]
    
    # 提取道路编号
    if 'and' in segment_summary:
        route_segment = re.findall(r'\b[A-Z]\d+\b', segment_summary)
    else:
        route_segment.append(segment_summary)
    
    # 提取目标道路(A6)的起止经纬度
    target_road = "A6"
    road_coords = []
    for step in route_data['legs'][0]['steps']:
        # 检查当前步骤是否使用A6
        if target_road in step.get('html_instructions', ''):
            start_loc = step['start_location']
            end_loc = step['end_location']
            road_coords.append({
                'start': (start_loc['lat'], start_loc['lng']),
                'end': (end_loc['lat'], end_loc['lng'])
            })
    
    # 合并连续路段的坐标(取第一个起点和最后一个终点)
    if road_coords:
        overall_start = road_coords[0]['start']
        overall_end = road_coords[-1]['end']
        return route_segment, (overall_start, overall_end)
    else:
        return route_segment, None

使用方式

调用该函数后,你会得到道路编号和该路段的起止经纬度,比如返回:
(['A6'], ((48.7784, 9.1800), (50.1109, 8.6821)))

把这些信息整理后发给ChatGPT:

请分析德国A6高速公路中,从北纬48.7784°东经9.1800°到北纬50.1109°东经8.6821°的路段(对应斯图加特到法兰克福区间)


内容的提问来源于stack exchange,提问作者Ekagra Gupta

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.13 10:25:20