Heim  >  Artikel  >  Web-Frontend  >  Implementierung einer Kartensuche für Mietobjekte

Implementierung einer Kartensuche für Mietobjekte

php中世界最好的语言
php中世界最好的语言Original
2018-05-24 15:02:334489Durchsuche

Dieses Mal werde ich Ihnen die Implementierung der Kartensuche für Mietwohnungen vorstellen. Was sind die Vorsichtsmaßnahmen für die Implementierung der Kartensuche für Mietwohnungen? ein Blick.

Layout: Beitrag
Titel: Bringen Sie Ihnen bei, wie Sie in einer halben Stunde eine Karte für die Suche nach Mietobjekten schreiben
Kategorie: Andere
Datum: Implementierung einer Kartensuche für Mietobjekte3.05.Implementierung einer Kartensuche für Mietobjekte0Implementierung einer Kartensuche für Mietobjekte8
Tags:

  • Andere


Lernen Sie in einer halben Stunde, wie Sie eine Karte schreiben, um nach Mietobjekten zu sucheneiner Kartensuche für Mietobjekte>

Zuerst Sie benötigen eine Python3-Umgebung. Wenn Sie wirklich nicht wissen, wie Sie ausgehen sollen, schauen Sie sich den Blog von Lehrer Liao Xuefeng an 🎜>

einer Kartensuche für Mietobjekte>Code kommt von: Amap API +Python löst das Mietproblem, ändert einfach den Ladedatenteil
  • Codepfad:/static/index. html

    <meta>
    <meta>
    <meta einer kartensuche f mietobjekte.0>
    <title>毕业生租房</title>
    <link einer kartensuche f mietobjekteimplementierung mietobjekte9.css>
    <link>
    <script einer kartensuche f mietobjekte.9.implementierung mietobjekte.js></script>
    <script></script>
    <script einer kartensuche f mietobjekte.3 mietobjekteimplementierung mietobjekted38implementierung mietobjekte6eimplementierung mietobjekte07fimplementierung mietobjekte9999implementierung mietobjekte666d64implementierung mietobjektefa069implementierung mietobjekte></script>
    <script></script>
    <style>
    .control-panel {
        position: absolute;
        top: 30px;
        right: Implementierung einer Kartensuche für Mietobjekte0px;
    }
    
    .control-entry {
        width: Implementierung einer Kartensuche für Mietobjekte80px;
        background-color: rgba(Implementierung einer Kartensuche für MietobjekteImplementierung einer Kartensuche für Mietobjekte9, Implementierung einer Kartensuche für Mietobjekte36, Implementierung einer Kartensuche für Mietobjekte53, 0.8);
        font-family: fantasy, sans-serif;
        text-align: left;
        color: white;
        overflow: auto;
        padding: Implementierung einer Kartensuche für Mietobjekte0px;
        margin-bottom: Implementierung einer Kartensuche für Mietobjekte0px;
    }
    
    .control-input {
        margin-left: Implementierung einer Kartensuche für MietobjekteImplementierung einer Kartensuche für Mietobjekte0px;
    }
    
    .control-input input[type="text"] {
        width: Implementierung einer Kartensuche für Mietobjekte60px;
    }
    
    .control-panel label {
        float: left;
        width: Implementierung einer Kartensuche für MietobjekteImplementierung einer Kartensuche für Mietobjekte0px;
    }
    
    #transfer-panel {
        position: absolute;
        background-color: white;
        max-height: 80%;
        overflow-y: auto;
        top: 30px;
        left: Implementierung einer Kartensuche für Mietobjekte0px;
        width: Implementierung einer Kartensuche für Mietobjekte50px;
    }
    </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: [Implementierung einer Kartensuche für MietobjekteImplementierung einer Kartensuche für Mietobjekte6.3974Implementierung einer Kartensuche für Mietobjekte8, 39.909Implementierung einer Kartensuche für Mietobjekte3],
        zoom: Implementierung einer Kartensuche für MietobjekteImplementierung einer Kartensuche für Mietobjekte
    });
    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/vImplementierung einer Kartensuche für Mietobjekte.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: Implementierung einer Kartensuche für Mietobjekte
                    });
                    polygon.setPath(result.bounds[i]);
                    polygonArray.push(polygon);
                }
            }
        }, {
            policy: v
        });
    }
    function addMarkerByAddress(address, url) {
        var geocoder = new AMap.Geocoder({
            city: "北京",
            radius: Implementierung einer Kartensuche für Mietobjekte000
        });
        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/vImplementierung einer Kartensuche für Mietobjekte.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: Implementierung einer Kartensuche für Mietobjekte000
        });
        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(Implementierung einer Kartensuche für MietobjekteImplementierung einer Kartensuche für Mietobjekte, [x, y]);
            }
        })
    }
    $(function()
    {
        $.get("/get_houses", function(data) {
            data.forEach(function(element, index) {
                addMarkerByAddress(element.address, element.url);
            });
        });
    })
    </script>

Python-Flaschenteil

In einer Python3-Umgebung Flask, pymysql, BeautifulSoup
pip install Flask;
pip install pymysql;
pip install beautifulsoup4;
pip install requests;
einer Kartensuche für Mietobjekte> installieren und dann den Code direkt hochladen.

Pfad:/ 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='Implementierung einer Kartensuche für MietobjekteImplementierung einer Kartensuche für Mietobjekte7.0.0.Implementierung einer Kartensuche für Mietobjekte',
                                 user='root',
                                 password='Implementierung einer Kartensuche für MietobjekteImplementierung einer Kartensuche für Mietobjekte3',
                                 db='你的数据库名字',
                                 charset='utf8mb4',
                                 cursorclass=pymysql.cursors.DictCursor)
    try:
        with connection.cursor() as cursor:
            # Read a single record
            sql = "SELECT 你的URL字段,你的地址字段 FROM 你的房源数据表 where Implementierung einer Kartensuche für Mietobjekte=Implementierung einer Kartensuche für Mietobjekte;"
            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(Implementierung einer Kartensuche für Mietobjekte, Implementierung einer Kartensuche für Mietobjekte0):
        url = "%s/pinpaigongyu/pn/%d/" % (city_url, page_num)
        headers = {
            'connection': "keep-alive",
            'upgrade-insecure-requests': "Implementierung einer Kartensuche für Mietobjekte",
            'user-agent': "Mozilla/5.0 (Macintosh; Intel Mac OS X Implementierung einer Kartensuche für Mietobjekte0_Implementierung einer Kartensuche für Mietobjekte3_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/66.0.3359.Implementierung einer Kartensuche für Mietobjekte8Implementierung einer Kartensuche für Mietobjekte 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-45Implementierung einer Kartensuche für Mietobjektec-b6be-974f90Implementierung einer Kartensuche für Mietobjekte970Implementierung einer Kartensuche für Mietobjekte0; new_uv=Implementierung einer Kartensuche für Mietobjekte; utm_source=; spm=; init_refer=https%Implementierung einer Kartensuche für Mietobjekte53A%Implementierung einer Kartensuche für Mietobjekte5Implementierung einer Kartensuche für MietobjekteF%Implementierung einer Kartensuche für Mietobjekte5Implementierung einer Kartensuche für MietobjekteFcn.bing.com%Implementierung einer Kartensuche für Mietobjekte5Implementierung einer Kartensuche für MietobjekteF; als=0; f=n; new_session=0; qz_gdt=; Hm_lvt_dcee4f66dfImplementierung einer Kartensuche für Mietobjekte8844Implementierung einer Kartensuche für MietobjekteImplementierung einer Kartensuche für MietobjekteImplementierung einer Kartensuche für Mietobjekteef0479976aabfImplementierung einer Kartensuche für Mietobjekte=Implementierung einer Kartensuche für Mietobjekte5Implementierung einer Kartensuche für Mietobjekte703Implementierung einer Kartensuche für MietobjekteImplementierung einer Kartensuche für Mietobjekte64,Implementierung einer Kartensuche für Mietobjekte5Implementierung einer Kartensuche für Mietobjekte703Implementierung einer Kartensuche für MietobjekteImplementierung einer Kartensuche für Mietobjekte67,Implementierung einer Kartensuche für Mietobjekte5Implementierung einer Kartensuche für Mietobjekte703Implementierung einer Kartensuche für MietobjekteImplementierung einer Kartensuche für Mietobjekte70,Implementierung einer Kartensuche für Mietobjekte5Implementierung einer Kartensuche für Mietobjekte703Implementierung einer Kartensuche für Mietobjekte380; Hm_lpvt_dcee4f66dfImplementierung einer Kartensuche für Mietobjekte8844Implementierung einer Kartensuche für MietobjekteImplementierung einer Kartensuche für MietobjekteImplementierung einer Kartensuche für Mietobjekteef0479976aabfImplementierung einer Kartensuche für Mietobjekte=Implementierung einer Kartensuche für Mietobjekte5Implementierung einer Kartensuche für Mietobjekte703Implementierung einer Kartensuche für Mietobjekte4Implementierung einer Kartensuche für MietobjekteImplementierung einer Kartensuche für Mietobjekte; ppStore_fingerprint=3Implementierung einer Kartensuche für Mietobjekte83C7698Implementierung einer Kartensuche für MietobjekteCCDImplementierung einer Kartensuche für Mietobjekte090B4Implementierung einer Kartensuche für MietobjekteACBBF6Implementierung einer Kartensuche für Mietobjekte4A4C96Implementierung einer Kartensuche für Mietobjekte3FE967CDC69C58%EF%BC%BFImplementierung einer Kartensuche für Mietobjekte5Implementierung einer Kartensuche für Mietobjekte703Implementierung einer Kartensuche für Mietobjekte4Implementierung einer Kartensuche für Mietobjekte0843",
            '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("hImplementierung einer Kartensuche für Mietobjekte").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
Rendering:

Implementierung einer Kartensuche für Mietobjekte
Ich glaube, dass Sie die Methode beherrschen, nachdem Sie den Fall in diesem Artikel gelesen haben Spannende Informationen, bitte beachten Sie andere verwandte Artikel auf der chinesischen PHP-Website! Implementierung einer Kartensuche für Mietobjekte

Empfohlene Lektüre:

JSON- und Mathe-Anwendungsfallanalyse in JS


Die EasyCanvas-Zeichenbibliothek befindet sich im Pixelr in der Entwicklung Projekt Zusammenfassung der praktischen Anwendung


Detaillierte Erläuterung der Implementierungsschritte von PromiseA+

Das obige ist der detaillierte Inhalt vonImplementierung einer Kartensuche für Mietobjekte. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn