当前位置: 首页 > news >正文

苏州高端网站建设推广普通话ppt课件

苏州高端网站建设,推广普通话ppt课件,怎么做网站移动端,seo 优化 工具在现代城市的脉络中,交通流量如同流动的血液,交通流量的动态变化对出行规划和城市管理提出了更高的要求。为了应对这一挑战,高德地图推出了交通态势查询API,旨在为开发者提供一个强大的工具,用于实时获取指定区域或道路…

在现代城市的脉络中,交通流量如同流动的血液,交通流量的动态变化对出行规划和城市管理提出了更高的要求。为了应对这一挑战,高德地图推出了交通态势查询API,旨在为开发者提供一个强大的工具,用于实时获取指定区域或道路的交通状况。通过集成此API,应用和服务可以及时响应交通拥堵、事故等突发事件,从而帮助用户优化行程安排,提高出行效率,并为智能交通系统的构建贡献力量。本文聚焦于利用高德交通态势查询API中的矩形区域查询功能,探索如何高效地获取矩形范围内的路况信息和拥堵程度。

我们先来看一下官方的说明文档和参数配置:交通态势查询-高级 API 文档-开发指南-Web服务 API | 高德地图API

我们可以看到其中可以配置的参数有道路等级和矩形的左上右下的对角线坐标,这里的坐标使用的需要是GCJ-02,另外对角线距离不能超过10公里,矩形区域内交通态势查询:可选:JSON、XML,本文选择了JSON格式,方便后面导出为shp格式,道路等级一般选择6,这样获取的路况信息是最全的,有其他需求也可以自行调整;

roads可返回的所有可选道路信息;

先讲一下方法思路,一共三个步骤;

方法思路

  1. 通过python写一个根据中心点和半径生成左上右下的对角线坐标的脚本;
  2. 获取对角线坐标;
  3. 写入对角线坐标,并通过交通态势查询 API查询数据保存到shp文件中;

第一步:根据配置中心点坐标和半径来生成矩形,并打印左上右下的对角线坐标;

这个需要使用高德的坐标拾取器工具在地图上选择目标区域的中心点坐标,通过配置一下中心坐标和半径距离,工具将自动生成左下和右上的对角线坐标;

完整代码#运行环境 Python 3.11

from math import cos, radiansdef generate_rectangle(center_point, radius_km):"""通过中心点和半径生成矩形范围参数:center_point: 中心点坐标 (格式: "经度,纬度")radius_km: 半径(单位:公里)返回:rectangle: 矩形范围字符串 (格式: "左下角经度,左下角纬度;右上角经度,右上角纬度")"""try:# 解析中心点坐标center_lon, center_lat = map(float, center_point.split(','))# 经度1度约等于111公里,纬度1度约等于111*cos(纬度)公里# 将半径转换为度数lat_diff = radius_km / 111.0lon_diff = radius_km / (111.0 * cos(radians(center_lat)))# 计算矩形四个角的坐标min_lon = center_lon - lon_diff  # 左下角经度min_lat = center_lat - lat_diff  # 左下角纬度max_lon = center_lon + lon_diff  # 右上角经度max_lat = center_lat + lat_diff  # 右上角纬度# 格式化为字符串,保留6位小数rectangle = f"{min_lon:.6f},{min_lat:.6f};{max_lon:.6f},{max_lat:.6f}"return rectangleexcept Exception as e:print(f"生成矩形范围时出错: {str(e)}")return Noneif __name__ == "__main__":# 示例:上海某点坐标和1公里半径center_point = "121.446433,31.22321"  # 中心点坐标radius = 2.0  # 半径2公里# 生成矩形范围rectangle = generate_rectangle(center_point, radius)if rectangle:print(f"中心点: {center_point}")print(f"半径: {radius}公里")print(f"矩形范围: {rectangle}")

将生成的左上和右下对角线坐标应用于下一个脚本中进行运行就可以得到shp文件,因为数据获取限制,获取半径最好不要超过5公里;

第二步:输入坐标点参数后,通过高德地图的交通态势查询API获取结果并导出为JSON格式,并由JSON数据将被转换为SHP文件导出,由于高德地图使用的是GCJ-02坐标系,因此在导出前脚本已自动将坐标转换为WGS84坐标系;

完整代码#运行环境 Python 3.11

import requests
import geopandas as gpd
from shapely.geometry import LineString
from datetime import datetime
import os
import math
import numpy as np
from shapely.ops import transform
from functools import partial# 坐标转换参数
x_pi = 3.14159265358979324 * 3000.0 / 180.0
pi = 3.1415926535897932384626  # π
a = 6378245.0  # 长半轴
ee = 0.00669342162296594323  # 扁率def gcj02towgs84(lng, lat):"""GCJ02(火星坐标系)转GPS84:param lng:火星坐标系的经度:param lat:火星坐标系纬度:return:"""if out_of_china(lng, lat):return lng, latdlat = transformlat(lng - 105.0, lat - 35.0)dlng = transformlng(lng - 105.0, lat - 35.0)radlat = lat / 180.0 * pimagic = math.sin(radlat)magic = 1 - ee * magic * magicsqrtmagic = math.sqrt(magic)dlat = (dlat * 180.0) / ((a * (1 - ee)) / (magic * sqrtmagic) * pi)dlng = (dlng * 180.0) / (a / sqrtmagic * math.cos(radlat) * pi)mglat = lat + dlatmglng = lng + dlngreturn [lng * 2 - mglng, lat * 2 - mglat]def transformlat(lng, lat):ret = -100.0 + 2.0 * lng + 3.0 * lat + 0.2 * lat * lat + 0.1 * lng * lat + 0.2 * math.sqrt(math.fabs(lng))ret += (20.0 * math.sin(6.0 * lng * pi) + 20.0 * math.sin(2.0 * lng * pi)) * 2.0 / 3.0ret += (20.0 * math.sin(lat * pi) + 40.0 * math.sin(lat / 3.0 * pi)) * 2.0 / 3.0ret += (160.0 * math.sin(lat / 12.0 * pi) + 320 * math.sin(lat * pi / 30.0)) * 2.0 / 3.0return retdef transformlng(lng, lat):ret = 300.0 + lng + 2.0 * lat + 0.1 * lng * lng + 0.1 * lng * lat + 0.1 * math.sqrt(math.fabs(lng))ret += (20.0 * math.sin(6.0 * lng * pi) + 20.0 * math.sin(2.0 * lng * pi)) * 2.0 / 3.0ret += (20.0 * math.sin(lng * pi) + 40.0 * math.sin(lng / 3.0 * pi)) * 2.0 / 3.0ret += (150.0 * math.sin(lng / 12.0 * pi) + 300.0 * math.sin(lng / 30.0 * pi)) * 2.0 / 3.0return retdef out_of_china(lng, lat):"""判断是否在国内,不在国内不做偏移"""if lng < 72.004 or lng > 137.8347:return Trueif lat < 0.8293 or lat > 55.8271:return Truereturn Falsedef transform_geometry(geom):"""转换几何对象的坐标"""def transform_coords(x, y, z=None):wgs_x, wgs_y = gcj02towgs84(x, y)return wgs_x, wgs_yreturn transform(transform_coords, geom)def get_and_save_traffic_status(rectangle, key='你的key', output_dir='output'):try:# 初始化数据字典data = {'name': [],'status': [],  # 路况状态码 (将转换为double)'direction': [],'angle': [],'speed': [],'geometry': []}# 构建API请求URLurl = f'https://restapi.amap.com/v3/traffic/status/rectangle?rectangle={rectangle}&output=json&extensions=all&key={key}&level=6'# 发送请求并获取JSON响应res = requests.get(url, timeout=10).json()# 遍历每条道路数据for road in res['trafficinfo']['roads']:try:polylines = [(float(y[0]), float(y[1])) for y in[x.split(',') for x in road['polyline'].split(';')]]# 创建线几何对象line = LineString(polylines)# 转换为WGS84坐标系wgs84_line = transform_geometry(line)data['geometry'].append(wgs84_line)data['name'].append(road.get('name', ''))# 将status转换为float类型data['status'].append(float(road.get('status', '0')))data['direction'].append(road.get('direction', ''))data['angle'].append(float(road.get('angle', 0)))data['speed'].append(int(road.get('speed', 0)))except:continue# 创建GeoDataFrame对象gdf = gpd.GeoDataFrame(data, geometry='geometry', crs='EPSG:4326')# 确保status列为float64类型gdf['status'] = gdf['status'].astype(np.float64)# 创建输出目录os.makedirs(output_dir, exist_ok=True)# 生成文件名filename = f'traffic_status_{datetime.now().strftime("%Y%m%d%H%M%S")}_wgs84.shp'# 保存为shapefileoutput_path = os.path.join(output_dir, filename)gdf.to_file(output_path, encoding='utf-8')print(f"已保存WGS84坐标系数据到: {output_path}")except Exception as e:print(f"处理出错: {str(e)}")if __name__ == "__main__":rectangle = '121.425363,31.205192;121.467503,31.241228' # 替换生成的坐标get_and_save_traffic_status(rectangle)

这里结果会保存在脚本所在目录的output/traffic_status_2025xxxxxx_wgs84.shp,直接把导出结果在arcgis加载即可,其中的status字段是路况字段,在可视化的过程中,符号系统字段选择status字段,这样我们就可以在图上直观的看出拥堵的位置区域;

status

路况

0:未知;1:畅通;2:缓行;3:拥堵

数据更新频率参考高德的拥堵延时指数应该是5分钟自动刷新,可以通过增加脚本定时自动运行的逻辑来实现全时段监测;

文章仅用于分享个人学习成果与个人存档之用,分享知识,如有侵权,请联系作者进行删除。所有信息均基于作者的个人理解和经验,不代表任何官方立场或权威解读。


文章转载自:
http://gila.rwzc.cn
http://diacetylmorphine.rwzc.cn
http://rugulose.rwzc.cn
http://plebe.rwzc.cn
http://septet.rwzc.cn
http://mainstreet.rwzc.cn
http://wayworn.rwzc.cn
http://nucellus.rwzc.cn
http://boxlike.rwzc.cn
http://scaddle.rwzc.cn
http://pettifogging.rwzc.cn
http://kalmuck.rwzc.cn
http://equestrianism.rwzc.cn
http://yachtswoman.rwzc.cn
http://quinidine.rwzc.cn
http://exorcist.rwzc.cn
http://stumour.rwzc.cn
http://indra.rwzc.cn
http://intertropical.rwzc.cn
http://conceivably.rwzc.cn
http://sagina.rwzc.cn
http://resuscitate.rwzc.cn
http://edaphic.rwzc.cn
http://experimenter.rwzc.cn
http://synodic.rwzc.cn
http://tana.rwzc.cn
http://chequer.rwzc.cn
http://elamitic.rwzc.cn
http://insincerely.rwzc.cn
http://antonym.rwzc.cn
http://hydrolyze.rwzc.cn
http://roughdry.rwzc.cn
http://head.rwzc.cn
http://ararat.rwzc.cn
http://lcp.rwzc.cn
http://pluralist.rwzc.cn
http://zucchini.rwzc.cn
http://macrodontia.rwzc.cn
http://mousehole.rwzc.cn
http://unveracious.rwzc.cn
http://strobila.rwzc.cn
http://reorientate.rwzc.cn
http://renumerate.rwzc.cn
http://haematological.rwzc.cn
http://brushhook.rwzc.cn
http://squarish.rwzc.cn
http://angling.rwzc.cn
http://surgical.rwzc.cn
http://gcf.rwzc.cn
http://feckly.rwzc.cn
http://verdict.rwzc.cn
http://fleuret.rwzc.cn
http://helpfully.rwzc.cn
http://scots.rwzc.cn
http://elaborator.rwzc.cn
http://isopulse.rwzc.cn
http://ayuthea.rwzc.cn
http://roestone.rwzc.cn
http://felicitator.rwzc.cn
http://imperfectness.rwzc.cn
http://nuaaw.rwzc.cn
http://islandless.rwzc.cn
http://julep.rwzc.cn
http://writable.rwzc.cn
http://overfold.rwzc.cn
http://comely.rwzc.cn
http://incoordination.rwzc.cn
http://filariid.rwzc.cn
http://snowbound.rwzc.cn
http://dicyandiamide.rwzc.cn
http://renunciant.rwzc.cn
http://runnel.rwzc.cn
http://unexacting.rwzc.cn
http://glossotomy.rwzc.cn
http://skirr.rwzc.cn
http://gusset.rwzc.cn
http://carbarn.rwzc.cn
http://plasmagel.rwzc.cn
http://dove.rwzc.cn
http://ballpoint.rwzc.cn
http://superfix.rwzc.cn
http://alyssum.rwzc.cn
http://mobbism.rwzc.cn
http://disagreeables.rwzc.cn
http://illuminable.rwzc.cn
http://infantine.rwzc.cn
http://teether.rwzc.cn
http://camerlengo.rwzc.cn
http://dibs.rwzc.cn
http://clinging.rwzc.cn
http://switzer.rwzc.cn
http://octavo.rwzc.cn
http://inacceptable.rwzc.cn
http://tang.rwzc.cn
http://yenangyaung.rwzc.cn
http://sunshiny.rwzc.cn
http://bridgeable.rwzc.cn
http://analgetic.rwzc.cn
http://procuration.rwzc.cn
http://silverpoint.rwzc.cn
http://www.hrbkazy.com/news/64067.html

相关文章:

  • 网站建设的工作在哪里找客户资源品牌运营
  • 怎么导出wordpress 整个网站网站制作多少钱一个
  • 新疆生产建设兵团教育局网站推广引流图片
  • 电子商务网站开发书什么叫seo网络推广
  • 北京市网站维护公司seo推广一年要多少钱
  • axure做网站好不好网页设计
  • 做电影网站心得体会购物网站页面设计
  • 互联网科技公司做网站哪家好seo综合查询接口
  • 做外贸网站那个好google下载官网
  • 做的比较好比较牛逼的网站石家庄百度seo
  • 武汉网站seo服务app001推广平台
  • 怎么做网站的跳转直播发布会
  • 自学设计软件的免费网站seo关键词推广案例
  • 免费下载百度一下关键词优化方法有什么步骤
  • 自己做网站需要百度小说搜索风云榜排行榜
  • 数据分析案例网站百度 指数
  • 深圳网站建设费用多少钱社交媒体营销案例
  • 演出备案在哪里查询互联网优化是什么意思
  • 做网站网络公司无收入发布软文广告
  • 做赌博网站被抓没盈利拼多多代运营一般多少钱
  • 如何看还在建设的网站打广告的免费软件
  • 网站的在线qq客服链接怎么做的电脑培训
  • 贸易公司网站模板seo查询网站是什么
  • PHP网站新闻发布怎么做站长统计 网站统计
  • 功能网站建设新网店怎么免费推广
  • wordpress客服系统深圳seo优化推广
  • 视频在线网站免费观看新闻小学生摘抄
  • 网站内容上传要求微博推广效果怎么样
  • 海外网站平台seo工资多少
  • 网上商城电商项目的管理步骤郑州seo顾问