700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > python百度地图和租房信息_python爬虫租房信息在地图上显示的方法

python百度地图和租房信息_python爬虫租房信息在地图上显示的方法

时间:2020-07-04 14:46:21

相关推荐

python百度地图和租房信息_python爬虫租房信息在地图上显示的方法

选择工作地点:

选择通勤方式:

公交+地铁

地铁

走路

骑车

导入房源文件:

开始

var map = new AMap.Map("container", {

resizeEnable: true,

zoomEnable: true,

center: [120.1256856402492, 30.27289264553506],

zoom: 12

});

//添加标尺

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({

//通过id指定输入元素

input: "work-location"

});

//添加事件监听,在选择补完的地址后调用workLocationSelected

AMap.event.addListener(auto, "select", workLocationSelected);

function takeBus(radio) {

vehicle = radio.value;

loadWorkLocation()

}

function takeSubway(radio) {

vehicle = radio.value;

loadWorkLocation()

}

function takeWalk(radio){

vehicle = radio.value;

loadWorkLocation()

}

function takeBike(radio) {

vehicle = radio.value;

loadWorkLocation()

}

//获取加载的文件

function changeCsv() {

$("#fileCsv").csv2arr(function (res) {

$.each(res, function (k, p) {

if (res[k][1]) {

//addMarkerByAddress(地址,价格,展示的图片)

addMarkerByAddress(res[k][1], res[k][2],res[k][3])

}

})

});

}

function workLocationSelected(e) {

workAddress = e.poi.name;

loadWorkLocation();

}

function loadWorkMarker(x, y, locationName) {

workMarker = new AMap.Marker({

map: map,

title: locationName,

icon: '/theme/v1.3/markers/n/mark_r.png',

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: 1

});

//得到到达圈的多边形路径

polygon.setPath(result.bounds[i]);

polygonArray.push(polygon);

}

}

}, {

policy: v

});

}

function addMarkerByAddress(address, money,imgUrl) {

var geocoder = new AMap.Geocoder({

city: "杭州",

radius: 1000

});

geocoder.getLocation(address, function (status, result) {

var iconValue = "";

var _money=money;

if (money.indexOf("-") > -1) {

_money = money.split("-")[1];

}

//如果价格高于3000元/月在地图上显示红色,低于的话显示蓝色

if (parseFloat(_money) > 3000) {

iconValue="/theme/v1.3/markers/n/mark_r.png";

}else{

iconValue = "/theme/v1.3/markers/n/mark_b.png";

}

if (status === "complete" && result.info === 'OK') {

var geocode = result.geocodes[0];

rentMarker = new AMap.Marker({

map: map,

title: address,

icon:iconValue,

animation:"AMAP_ANIMATION_DROP",

position: [geocode.location.getLng(), geocode.location.getLat()]

})

;

rentMarkerArray.push(rentMarker);

//鼠标点击标记显示相应的内容

rentMarker.content = "

房源:" + address + "

价格:"+money+"

"

rentMarker.on('click', 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: 'transfer-panel'

});

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: 1000

});

geocoder.getLocation(workAddress, function (status, result) {

if (status === "complete" && result.info === 'OK') {

var geocode = result.geocodes[0];

x = geocode.location.getLng();

y = geocode.location.getLat();

//加载工作地点标记

loadWorkMarker(x, y);

//加载60分钟内工作地点到达圈

loadWorkRange(x, y, 60, "#3f67a5", vehicle);

//地图移动到工作地点的位置

map.setZoomAndCenter(12, [x, y]);

}

})

}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。