【python011】经纬度点位可视化html生成(有效方案)

本文主要是介绍【python011】经纬度点位可视化html生成(有效方案),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1.熟悉、梳理、总结项目研发实战中的Python开发日常使用中的问题、知识点等,如获取省市等边界区域经纬度进行可视化,从而辅助判断、决策。
2.欢迎点赞、关注、批评、指正,互三走起来,小手动起来!
3.欢迎点赞、关注、批评、指正,互三走起来,小手动起来!

  • 如获取省市等特定区域经纬度进行可视化,从而辅助判断、决策
  • 如获取省市等特定区域经纬度进行可视化,从而辅助判断、决策
  • 如获取省市等特定区域经纬度进行可视化,从而辅助判断、决策

文章目录

    • 1.省市边界经纬度`json`获取并解析
    • 2.读取特定区域经纬度点位`execl`解析并自动生成html文件
    • 3.可视效果

1.省市边界经纬度json获取并解析

  • 经纬度点位初步压缩
    import re
    import os
    import sys
    import json
    import nltk
    import time
    import pickle
    import random
    import base64
    import datetime
    import requests
    import openpyxl
    import readline
    import itertools
    import numpy as np
    import pandas as pd
    from PIL import Image
    from tqdm import tqdm, trange
    from bs4 import BeautifulSoup
    import matplotlib.pyplot as plt
    from collections import Counter
    from pypinyin import lazy_pinyin, Style
    from joblib import Parallel, delayed
    from sklearn.linear_model import LinearRegression
    import warnings
    warnings.filterwarnings('ignore')pd.set_option('display.width', 500)
    pd.set_option('display.max_rows', 200)
    pd.set_option('display.max_columns', 200)
    pd.set_option('display.max_colwidth', 1000)# step 1: 浙江省边界数据
    zjbj_url = "https://up.caup.net/guihuayun/json/330000.json"
    zjbj_datas = requests.get( zjbj_url )
    zjbj_datas_json = json.loads( zjbj_datas.content )
    zjbj_datas_json_list = zjbj_datas_json['geometry']['coordinates'][-1]zjbj_points = zjbj_datas_json_list[0]
    zjbj_merged_points = merge_points( zjbj_points, threshold=5000 )
    print( len(zjbj_merged_points), len( zjbj_points ) )# step 2: 杭州市边界数据
    hzbj_url = "https://up.caup.net/guihuayun/json/330100.json"
    datas = requests.get( hzbj_url )
    datas_json = json.loads( datas.content )
    datas_json_list = datas_json['geometry']['coordinates'][0]points = datas_json_list
    merged_points = merge_points(points, threshold=4000)
    print(len(merged_points), len(points))
    

2.读取特定区域经纬度点位execl解析并自动生成html文件

  • import folium
    import pandas as pd_titles = 'http://webrd02.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=7&x={x}&y={y}&z={z}'
    _gd_tiles='http://webrd02.is.autonavi.com/appmaptile?lang=zh_cn&size=1&scale=1&style=7&x={x}&y={y}&z={z}'
    san_map=folium.Map(location=[30.245853, 120.209947], zoom_start=14, tiles= _gd_tiles, attr='default')data=pd.read_excel(r'.\gsddw_youli.xlsx')
    data2 = data[['youli_dz', 'youli_jd', 'youli_wd']]data2.columns = ['qymc','lng','lat']
    data2 = data2[(data2.lng.notna()) & (data2.lng>118) & (data2.lng<121)]
    # data=pd.read_csv('./stlz.csv',encoding='gbk')
    data2.head(3)for ii in data2.iterrows():qymc, lon, lat = ii[1][0], ii[1][1], ii[1][2]folium.Marker([lat,lon], popup=folium.Popup(qymc, max_width=100), tooltip=qymc, icon=folium.Icon(icon='cloud', color='green')).add_to(san_map)folium.Circle([lat,lon], 500, color='yellow', fill_color='yellow', fillOpacity=0.3).add_to(san_map)for ii in merged_points:lon, lat = ii[0], ii[1]folium.Marker([lat, lon], popup=folium.Popup(qymc, max_width=100), tooltip=qymc, icon=folium.Icon(color='red', icon='info-sign')).add_to(san_map)folium.Circle([lat, lon], 500, color='red', fill_color='red', fillOpacity=0.3).add_to(san_map)for ii in zjbj_merged_points:lon, lat = ii[0], ii[1]folium.Marker([lat, lon], popup=folium.Popup(qymc, max_width=100), tooltip=qymc, icon=folium.Icon(color='blue', icon='info-sign')).add_to(san_map)folium.Circle([lat, lon], 500, color='blue', fill_color='blue', fillOpacity=0.3).add_to(san_map)san_map.save('sy_youli_vis.html')html_lis_vis = open( r'./sy_youli_vis.html', encoding='utf8').readlines()
    html_str_vis = ''.join(html_lis_vis)
    html_str_vis2 = html_str_vis.replace( 'https://cdn.jsdelivr.net/npm/leaflet@1.9.3/dist/leaflet.js','./leaflet.js' ) \.replace( 'https://code.jquery.com/jquery-3.7.1.min.js','./jquery-3.7.1.min.js' )
    #                              .replace( 'https://cdn.jsdelivr.net/npm/bootstrap@5.2.2/dist/js/bootstrap.bundle.min.js','./bootstrap.bundle.min.js' ) \
    #                              .replace( 'https://cdnjs.cloudflare.com/ajax/libs/Leaflet.awesome-markers/2.0.2/leaflet.awesome-markers.js','./leaflet.awesome-markers.js' ) \
    #                              .replace( 'https://cdn.jsdelivr.net/npm/leaflet@1.9.3/dist/leaflet.css','./leaflet.css' ) \
    #                              .replace( 'https://cdn.jsdelivr.net/npm/bootstrap@5.2.2/dist/css/bootstrap.min.css','./bootstrap.min.css' ) \
    #                              .replace( 'https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@6.2.0/css/all.min.css','./all.min.css' ) \
    #                              .replace( 'https://cdnjs.cloudflare.com/ajax/libs/Leaflet.awesome-markers/2.0.2/leaflet.awesome-markers.css','./leaflet.awesome-markers.css' ) \
    #                              .replace( 'https://netdna.bootstrapcdn.com/bootstrap/3.0.0/css/bootstrap.min.css','./bootstrap.min.css' )html_str_vis2_html = r"sy_youli_vis_new.html" 
    f = open( html_str_vis2_html,'w', encoding='utf8')f.write( html_str_vis2 ) 
    f.close()
    

3.可视效果

  • 在这里插入图片描述

这篇关于【python011】经纬度点位可视化html生成(有效方案)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1081195

相关文章

HTML5的input标签的`type`属性值详解和代码示例

《HTML5的input标签的`type`属性值详解和代码示例》HTML5的`input`标签提供了多种`type`属性值,用于创建不同类型的输入控件,满足用户输入的多样化需求,从文本输入、密码输入、... 目录一、引言二、文本类输入类型2.1 text2.2 password2.3 textarea(严格

Java使用Spire.Barcode for Java实现条形码生成与识别

《Java使用Spire.BarcodeforJava实现条形码生成与识别》在现代商业和技术领域,条形码无处不在,本教程将引导您深入了解如何在您的Java项目中利用Spire.Barcodefor... 目录1. Spire.Barcode for Java 简介与环境配置2. 使用 Spire.Barco

SpringBoot返回文件让前端下载的几种方式

《SpringBoot返回文件让前端下载的几种方式》文章介绍了开发中文件下载的两种常见解决方案,并详细描述了通过后端进行下载的原理和步骤,包括一次性读取到内存和分块写入响应输出流两种方法,此外,还提供... 目录01 背景02 一次性读取到内存,通过响应输出流输出到前端02 将文件流通过循环写入到响应输出流

Python + Streamlit项目部署方案超详细教程(非Docker版)

《Python+Streamlit项目部署方案超详细教程(非Docker版)》Streamlit是一款强大的Python框架,专为机器学习及数据可视化打造,:本文主要介绍Python+St... 目录一、针对 Alibaba Cloud linux/Centos 系统的完整部署方案1. 服务器基础配置(阿里

SpringBoot+Vue3整合SSE实现实时消息推送功能

《SpringBoot+Vue3整合SSE实现实时消息推送功能》在日常开发中,我们经常需要实现实时消息推送的功能,这篇文章将基于SpringBoot和Vue3来简单实现一个入门级的例子,下面小编就和大... 目录前言先大概介绍下SSE后端实现(SpringBoot)前端实现(vue3)1. 数据类型定义2.

SpringSecurity中的跨域问题处理方案

《SpringSecurity中的跨域问题处理方案》本文介绍了跨域资源共享(CORS)技术在JavaEE开发中的应用,详细讲解了CORS的工作原理,包括简单请求和非简单请求的处理方式,本文结合实例代码... 目录1.什么是CORS2.简单请求3.非简单请求4.Spring跨域解决方案4.1.@CrossOr

SpringBoot集成iText快速生成PDF教程

《SpringBoot集成iText快速生成PDF教程》本文介绍了如何在SpringBoot项目中集成iText9.4.0生成PDF文档,包括新特性的介绍、环境准备、Service层实现、Contro... 目录SpringBoot集成iText 9.4.0生成PDF一、iText 9新特性与架构变革二、环

使用MyBatis TypeHandler实现数据加密与解密的具体方案

《使用MyBatisTypeHandler实现数据加密与解密的具体方案》在我们日常的开发工作中,经常会遇到一些敏感数据需要存储,比如用户的手机号、身份证号、银行卡号等,为了保障数据安全,我们通常会对... 目录1. 核心概念:什么是 TypeHandler?2. 实战场景3. 代码实现步骤步骤 1:定义 E

Python实现繁体转简体功能的三种方案

《Python实现繁体转简体功能的三种方案》在中文信息处理中,繁体字与简体字的转换是一个常见需求,无论是处理港澳台地区的文本数据,还是开发面向不同中文用户群体的应用,繁简转换都是不可或缺的功能,本文将... 目录前言为什么需要繁简转换?python实现方案方案一:使用opencc库方案二:使用zhconv库

前端Visual Studio Code安装配置教程之下载、汉化、常用组件及基本操作

《前端VisualStudioCode安装配置教程之下载、汉化、常用组件及基本操作》VisualStudioCode是微软推出的一个强大的代码编辑器,功能强大,操作简单便捷,还有着良好的用户界面,... 目录一、Visual Studio Code下载二、汉化三、常用组件1、Auto Rename Tag2