首頁 > web前端 > js教程 > 主體

地圖搜租房功能實現

php中世界最好的语言
發布: 2018-05-24 15:02:33
原創
4573 人瀏覽過

這次帶給大家地圖搜租房功能實現,地圖搜租房功能實現的注意事項有哪些,下面就是實戰案例,一起來看一下。

layout: post
title: 半小時教你寫一個畢設地圖搜租房
category: 其他
date: 地圖搜租房功能實現0地圖搜租房功能實現8-05-地圖搜租房功能實現3
tags:

  • 其他


半小時教你寫一個畢設之地圖搜租房地圖搜租房功能實現>

首先需要一個Python3環境,怎麼準備我就不多說了,實在不會的出門右轉看一下廖雪峰老師的博客.

HTML部分地圖搜租房功能實現>
  • 代碼來自:高德API Python解決租屋問題,簡單改了下載入資料部分

程式碼路徑:/static/index.html


    <meta>
    <meta>
    <meta>
    <title>毕业生租房</title>
    <link>
    <link>
    <script></script>
    <script></script>
    <script></script>
    <script></script>
    <style>
    .control-panel {
        position: absolute;
        top: 30px;
        right: 地圖搜租房功能實現0px;
    }
    
    .control-entry {
        width: 地圖搜租房功能實現80px;
        background-color: rgba(地圖搜租房功能實現地圖搜租房功能實現9, 地圖搜租房功能實現36, 地圖搜租房功能實現53, 0.8);
        font-family: fantasy, sans-serif;
        text-align: left;
        color: white;
        overflow: auto;
        padding: 地圖搜租房功能實現0px;
        margin-bottom: 地圖搜租房功能實現0px;
    }
    
    .control-input {
        margin-left: 地圖搜租房功能實現地圖搜租房功能實現0px;
    }
    
    .control-input input[type="text"] {
        width: 地圖搜租房功能實現60px;
    }
    
    .control-panel label {
        float: left;
        width: 地圖搜租房功能實現地圖搜租房功能實現0px;
    }
    
    #transfer-panel {
        position: absolute;
        background-color: white;
        max-height: 80%;
        overflow-y: auto;
        top: 30px;
        left: 地圖搜租房功能實現0px;
        width: 地圖搜租房功能實現50px;
    }
    </style>


    <p></p>
    <p>
        </p><p>
            <label>选择工作地点:</label>
            </p><p>
                <input>
            </p>
        
        <p>
            <label>选择通勤方式:</label>
            </p><p>
                <input> 公交+地铁
                <input> 地铁
            </p>
        
    
    <p></p>
    <script>
    var map = new AMap.Map("container", {
        resizeEnable: true,
        zoomEnable: true,
        center: [地圖搜租房功能實現地圖搜租房功能實現6.3974地圖搜租房功能實現8, 39.909地圖搜租房功能實現3],
        zoom: 地圖搜租房功能實現地圖搜租房功能實現
    });
    var scale = new AMap.Scale();
    map.addControl(scale);
    var arrivalRange = new AMap.ArrivalRange();
    var x, y, t, vehicle = "SUBWAY,BUS";
    var workAddress, workMarker;
    var rentMarkerArray = [];
    var polygonArray = [];
    var amapTransfer;
    var infoWindow = new AMap.InfoWindow({
        offset: new AMap.Pixel(0, -30)
    });
    var auto = new AMap.Autocomplete({
        input: "work-location"
    });
    
    AMap.event.addListener(auto, "select", workLocationSelected);
    function takeBus(radio) {
        vehicle = radio.value;
        loadWorkLocation()
    }
    function takeSubway(radio) {
        vehicle = radio.value;
        loadWorkLocation()
    }
    function workLocationSelected(e) {
        workAddress = e.poi.name;
        loadWorkLocation();
    }
    function loadWorkMarker(x, y, locationName) {
        workMarker = new AMap.Marker({
            map: map,
            title: locationName,
            icon: &#39;http://webapi.amap.com/theme/v地圖搜租房功能實現.3/markers/n/mark_r.png&#39;,
            position: [x, y]
        });
    }
    function loadWorkRange(x, y, t, color, v) {
        arrivalRange.search([x, y], t, function(status, result) {
            if (result.bounds) {
                for (var i = 0; i < result.bounds.length; i++) {
                    var polygon = new AMap.Polygon({
                        map: map,
                        fillColor: color,
                        fillOpacity: "0.4",
                        strokeColor: color,
                        strokeOpacity: "0.8",
                        strokeWeight: 地圖搜租房功能實現
                    });
                    polygon.setPath(result.bounds[i]);
                    polygonArray.push(polygon);
                }
            }
        }, {
            policy: v
        });
    }
    function addMarkerByAddress(address, url) {
        var geocoder = new AMap.Geocoder({
            city: "北京",
            radius: 地圖搜租房功能實現000
        });
        geocoder.getLocation(address, function(status, result) {
            if (status === "complete" && result.info === &#39;OK&#39;) {
                var geocode = result.geocodes[0];
                rentMarker = new AMap.Marker({
                    map: map,
                    title: address,
                    icon: &#39;http://webapi.amap.com/theme/v地圖搜租房功能實現.3/markers/n/mark_b.png&#39;,
                    position: [geocode.location.getLng(), geocode.location.getLat()]
                });
                rentMarkerArray.push(rentMarker);
                rentMarker.content = "<p>房源:<a target = &#39;_blank&#39; href=&#39;" + url + "&#39;>" + address + "<p>"
                rentMarker.on(&#39;click&#39;, function(e) {
                    infoWindow.setContent(e.target.content);
                    infoWindow.open(map, e.target.getPosition());
                    if (amapTransfer) amapTransfer.clear();
                    amapTransfer = new AMap.Transfer({
                        map: map,
                        policy: AMap.TransferPolicy.LEAST_TIME,
                        city: "北京市",
                        panel: &#39;transfer-panel&#39;
                    });
                    amapTransfer.search([{
                        keyword: workAddress
                    }, {
                        keyword: address
                    }], function(status, result) {})
                });
            }
        })
    }
    function delWorkLocation() {
        if (polygonArray) map.remove(polygonArray);
        if (workMarker) map.remove(workMarker);
        polygonArray = [];
    }
    function delRentLocation() {
        if (rentMarkerArray) map.remove(rentMarkerArray);
        rentMarkerArray = [];
    }
    function loadWorkLocation() {
        delWorkLocation();
        var geocoder = new AMap.Geocoder({
            city: "北京",
            radius: 地圖搜租房功能實現000
        });
        geocoder.getLocation(workAddress, function(status, result) {
            if (status === "complete" && result.info === &#39;OK&#39;) {
                var geocode = result.geocodes[0];
                x = geocode.location.getLng();
                y = geocode.location.getLat();
                loadWorkMarker(x, y);
                loadWorkRange(x, y, 60, "#3f67a5", vehicle);
                map.setZoomAndCenter(地圖搜租房功能實現地圖搜租房功能實現, [x, y]);
            }
        })
    }
    $(function()
    {
        $.get("/get_houses", function(data) {
            data.forEach(function(element, index) {
                addMarkerByAddress(element.address, element.url);
            });
        });
    })
    </script>

登入後複製
Python flask部分地圖搜租房功能實現>

Python3環境,使用安裝Flask,pymysql,BeautifulSoup

pip install Flask;
pip install pymysql;
pip install beautifulsoup4;
pip install requests;
登入後複製

然後直接上程式碼咯.

路徑:/app.py

from flask import Flask, request
from flask import jsonify
from flask import render_template
from flask import Response
import requests
from bs4 import BeautifulSoup
import pymysql
app = Flask(name)
@app.route("/get_houses_db/")
def get_houses_db():
    # 从数据库读出来的数据,url为房源url,address为房源定位地址
    houses = []
    # Connect to the database
    connection = pymysql.connect(host='地圖搜租房功能實現地圖搜租房功能實現7.0.0.地圖搜租房功能實現',
                                 user='root',
                                 password='地圖搜租房功能實現地圖搜租房功能實現3',
                                 db='你的数据库名字',
                                 charset='utf8mb4',
                                 cursorclass=pymysql.cursors.DictCursor)
    try:
        with connection.cursor() as cursor:
            # Read a single record
            sql = "SELECT 你的URL字段,你的地址字段 FROM 你的房源数据表 where 地圖搜租房功能實現=地圖搜租房功能實現;"
            keyword = request.args.get('keyword')
            if keyword is not None:
                sql = sql + "查询字段 like %%s%" % keyword
            cursor.execute(sql)
            houses = cursor.fetchall()
    finally:
        connection.close()
    return jsonify(houses)
@app.route("/get_houses", methods=['POST', 'GET'])
def get_houses():
    # 直接从网页获取数据,url为房源url,address为房源定位地址
    houses = []
    city = request.args.get('city')
    if city is None:
        city = 'bj'
    city_url = 'http://%s.58.com' % city
    for page_num in range(地圖搜租房功能實現, 地圖搜租房功能實現0):
        url = "%s/pinpaigongyu/pn/%d/" % (city_url, page_num)
        headers = {
            'connection': "keep-alive",
            'upgrade-insecure-requests': "地圖搜租房功能實現",
            'user-agent': "Mozilla/5.0 (Macintosh; Intel Mac OS X 地圖搜租房功能實現0_地圖搜租房功能實現3_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.地圖搜租房功能實現8地圖搜租房功能實現 Safari/537.36",
            'accept': "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8",
            'accept-encoding': "gzip, deflate",
            'accept-language': "zh-CN,zh;q=0.9,en;q=0.8,da;q=0.7",
            'cookie': "f=n; f=n; id58=c5/njVsEqPqC7y9vB/RHAg==; 58tj_uuid=ac94c044-cbb8-45地圖搜租房功能實現c-b6be-974f90地圖搜租房功能實現970地圖搜租房功能實現0; new_uv=地圖搜租房功能實現; utm_source=; spm=; init_refer=https%地圖搜租房功能實現53A%地圖搜租房功能實現5地圖搜租房功能實現F%地圖搜租房功能實現5地圖搜租房功能實現Fcn.bing.com%地圖搜租房功能實現5地圖搜租房功能實現F; als=0; f=n; new_session=0; qz_gdt=; Hm_lvt_dcee4f66df地圖搜租房功能實現8844地圖搜租房功能實現地圖搜租房功能實現地圖搜租房功能實現ef0479976aabf地圖搜租房功能實現=地圖搜租房功能實現5地圖搜租房功能實現703地圖搜租房功能實現地圖搜租房功能實現64,地圖搜租房功能實現5地圖搜租房功能實現703地圖搜租房功能實現地圖搜租房功能實現67,地圖搜租房功能實現5地圖搜租房功能實現703地圖搜租房功能實現地圖搜租房功能實現70,地圖搜租房功能實現5地圖搜租房功能實現703地圖搜租房功能實現380; Hm_lpvt_dcee4f66df地圖搜租房功能實現8844地圖搜租房功能實現地圖搜租房功能實現地圖搜租房功能實現ef0479976aabf地圖搜租房功能實現=地圖搜租房功能實現5地圖搜租房功能實現703地圖搜租房功能實現4地圖搜租房功能實現地圖搜租房功能實現; ppStore_fingerprint=3地圖搜租房功能實現83C7698地圖搜租房功能實現CCD地圖搜租房功能實現090B4地圖搜租房功能實現ACBBF6地圖搜租房功能實現4A4C96地圖搜租房功能實現3FE967CDC69C58%EF%BC%BF地圖搜租房功能實現5地圖搜租房功能實現703地圖搜租房功能實現4地圖搜租房功能實現0843",
            'cache-control': "no-cache",
        }
        response = requests.request("GET", url, headers=headers)
        htmlSoup = BeautifulSoup(response.text, "html.parser")
        ul = htmlSoup.find(attrs={"class": "list"})
        if ul is None:
            continue
        li_list = ul.find_all("li")
        if li_list is None:
            continue
        for li in li_list:
            house = {}
            house['url'] = '%s/%s' % (city_url, li.find("a")['href'])
            house['address'] = li.find("h地圖搜租房功能實現").text
            houses.append(house)
    return jsonify(houses)
@app.route('/')
def index():
    return app.send_static_file('index.html')
if name == 'main':
    app.run(port=8888)
# python3 安装flask之后,安装命令pip install Flask
# 运行 python app.py
登入後複製

效果圖:

地圖搜租房功能實現
地圖搜租房功能實現

相信看了本文案例你已經掌握了方法,更多精彩請關注php中文網其它相關文章!

推薦閱讀:

JS中的JSON和Math使用案例分析

EasyCanvas繪圖庫在Pixeler專案開發中使用實戰總結

PromiseA 的實作步驟詳解

以上是地圖搜租房功能實現的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板