毕设:python模拟遗传算法解决最短路径问题(利用百度地图API)

本文档记录了毕业设计中使用Python编程语言实现的遗传算法,该算法旨在解决最短路径问题,并结合百度地图API进行实际应用。通过对遗传算法的模拟,实现了从起点到终点的高效寻路策略。
摘要由CSDN通过智能技术生成
import requests

import json

import time

import xlwt

import numpy as np

import random

import matplotlib.pyplot as plt

#创建或者覆写excel

book=xlwt.Workbook(encoding="utf-8"#创建对象

sheet=book.add_sheet('距离',cell_overwrite_ok=True)    #创建工作表

sheet1=book.add_sheet('经纬度',cell_overwrite_ok=True)

AK="此处填入百度地图开放平台获取的key"



#经纬度获取(字符型)

def get(address):

    url = r"http://api.map.baidu.com/place/v2/search?query={}&region=上海&output=json&ak={}".format(address,AK)

    res = requests.get(url)

    json_data = json.loads(res.text)

    if json_data["status"] == 0:

        lat = json_data["results"][0]["location"]["lat"# 纬度

        lng = json_data["results"][0]["location"]["lng"# 经度

    else:

        print(json_data["message"])

        return "0,0", json_data["status"]

    return str(lat) + "," + str(lng), json_data["status"]#jingw#jingweiu

#返回地点的经纬度(数值)
def jingwei(address):

    url = r"http://api.map.baidu.com/place/v2/search?query={}&region=上海&output=json&ak={}".format(address, AK)

    res = requests.get(url)

    json_data = json.loads(res.text)

    if json_data["status"] == 0:

        lat = json_data["results"][0]["location"]["lat"# 纬度

        lng = json_data["results"][0]["location"]["lng"# 经度

    else:

        print(json_data["message"])

        return "0,0", json_data["status"]

    return lng,lat  #jingweiu

#距离计算

def distance(start,end):

    url = "https://api.map.baidu.com/directionlite/v1/driving?origin={}&destination={}&ak={}".format(start,end,AK)

    res=requests.get(url)

    json_data=json.loads(res.text)

    if json_data["status"] == 0:

        return json_data["result"]["routes"][0]["distance"]

    else:

        print(json_data["message"])

        return -1

#合并函数 直接输入地点算距离

def clcDistance(startName,endName):

    start, status1 = get(startName)

    end, status2 = get(endName)

    if status1 == 0 and status2 == 
  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值