sparkR-根据GPS坐标判断行政区域(二)

# sparkR-根据GPS坐标判断行政区域(二)
上篇主要使用高德API接口调用,判断其行政区域,本次采用R里的sp包对点进行区域判定,这样做的主要目的是在先建立好模型后,直接调用模型,能否减少时间的开销。
边界坐标需要上高德API下载,其中城市POI
城市编码

1.sp简介
library(RCurl)
library(sp) 
library(stringr)
library(leaflet)
##抓取北京市边界
url_head1 <- "http://restapi.amap.com/v3/config/district?keywords="
url_tail1 <- "&subdistrict=0&extensions=all&output=xml&key=自己的key"
city <- "110000"
url1 <-  paste0(url_head1, city, url_tail1)
str1 <- getURL(url1)
rule <- gregexpr("<polyline>(.*?)</polyline>", str1)
value <- as.data.frame(unlist(regmatches(str1, rule)))
value <- gsub(".*<polyline>(.*?)</polyline>.*", '\\1', value$`unlist(regmatches(str1, rule))`)
value
#转换为data.frane
value_data <- data.frame(lonlat = unlist(strsplit(value,";")),stringsAsFactors = F)
value_data <- data.frame(str_split_fixed(value_data$lonlat, ",", 2),stringsAsFactors = F)
names(value_data) <- c("lon","lat")
value_data$lon <- as.double(value_data$lon)
value_data$lat <- as.double(value_data$lat)
#转换为Sp格式
r1 = cbind(value_data$lon,value_data$lat)
sr1=Polygons(list(Polygon(r1)),"r1")
sr=SpatialPolygons(list(sr1))
#测试数据
test = data.frame(lon=c(115.5660583464,116.0255749621,116.3999056987,116.4603790196,116.7411326333,117.3849387344,115.1680472056),
               lat=c(40.1109818799,39.8600058894,39.9031383143,39.5424745878,39.5418774826,40.6195326408,39.6489488846)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值