使用python,MySQL,HTML,css,JavaScript,高德api,jQuery,Ajax等编程语言,实现在前端搜索框搜索野生动物名字,返回野生动物分布的省份数据,可视化在前端地图上,具体代码怎么写
时间: 2024-06-08 18:10:02 浏览: 82
基于Python实现的搜索程序源代码
实现此功能需要分为以下几个步骤:
1. 在 MySQL 数据库中创建一张野生动物名字和分布省份的数据表,表结构类似于:
```
CREATE TABLE `animal_distribution` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(64) NOT NULL,
`province` varchar(64) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
```
2. 使用 Python 编写后端 API,接收前端传来的野生动物名字,在数据库中查询该动物的分布省份数据,将数据以 JSON 格式返回给前端。代码如下:
```python
from flask import Flask, jsonify, request
import pymysql
app = Flask(__name__)
db = pymysql.connect(host="localhost", user="root", password="password", database="database_name")
@app.route('/search', methods=['GET'])
def search():
animal_name = request.args.get('name')
cursor = db.cursor()
sql = "SELECT province FROM animal_distribution WHERE name='%s'" % animal_name
cursor.execute(sql)
result = cursor.fetchall()
data = []
for i in result:
data.append(i[0])
return jsonify({'data': data})
if __name__ == '__main__':
app.run()
```
3. 在前端页面中实现搜索框和地图。搜索框使用 HTML 和 CSS 实现,地图使用高德地图 API 和 JavaScript 实现。代码如下:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title>野生动物分布地图</title>
<script src="https://webapi.amap.com/maps?v=1.4.15&key=your_key"></script>
<script src="https://code.jquery.com/jquery-3.5.1.min.js"></script>
<style>
body {
margin: 0;
padding: 0;
}
#map {
height: 100vh;
}
#search-box {
position: absolute;
top: 20px;
left: 20px;
}
#search-input {
width: 200px;
height: 30px;
border-radius: 5px;
border: 1px solid #ccc;
padding: 5px;
font-size: 14px;
}
#search-btn {
width: 50px;
height: 30px;
border-radius: 5px;
background-color: #007bff;
color: #fff;
border: none;
margin-left: 10px;
font-size: 14px;
cursor: pointer;
}
</style>
</head>
<body>
<div id="search-box">
<input type="text" id="search-input" placeholder="请输入野生动物名称">
<button id="search-btn">搜索</button>
</div>
<div id="map"></div>
<script>
var map = new AMap.Map('map', {
center: [104.065735, 30.659462],
zoom: 5
});
$('#search-btn').click(function () {
var animalName = $('#search-input').val();
$.get('/search?name=' + animalName, function (data) {
var provinceData = {};
for (var i = 0; i < data.data.length; i++) {
var province = data.data[i];
if (province in provinceData) {
provinceData[province] += 1;
} else {
provinceData[province] = 1;
}
}
for (var key in provinceData) {
var value = provinceData[key];
AMap.service('AMap.Geocoder', function () {
var geocoder = new AMap.Geocoder();
geocoder.getLocation(key, function (status, result) {
if (status === 'complete' && result.geocodes.length) {
var marker = new AMap.Marker({
position: result.geocodes[0].location,
title: key + ': ' + value
});
marker.setMap(map);
}
});
});
}
});
});
</script>
</body>
</html>
```
4. 最后在后端启动 API,前端打开页面,就可以实现在前端搜索框搜索野生动物名字,返回野生动物分布的省份数据,可视化在前端地图上的功能了。
阅读全文