CZML中的动态面——如何将一个面区域由小变大(县到省的过程)(5)坐标点对应

通过CZML文件实现动态面的展示,从县逐步扩大到省级区域。过程中遇到的问题是坐标点对应,尝试kNN算法但不适用,改为随机删除部分点达到效果。通过ArcGIS进行矢量化面处理,调整起始点确保匹配。最后通过Python读取Excel和JSON数据,结合算法完成动态过渡效果。
摘要由CSDN通过智能技术生成

确定数据相互对应的坐标点,仔细考虑一下过程,我去,这不就是kNN分类过程么,只不过需要一点点修改。

kNN:

def classify0(inX,dataSet,labels,k):
	dataSetSize = dataSet.shape[0]
	diffMat = tile(inX,(dataSetSize,1)) - dataSet
	sqDiffMat = diffMat**2
	sqDistances = sqDiffMat.sum(axis=1)
	distances = sqDistances**0.5
	sortedDistIndicies = distances.argsort()
	classCount={}
	for i in range(k):
		voteIlabel = labels[sortedDistIndicies[i]]
		classCount[voteIlabel] = classCount.get(voteIlabel,0) + 1
	sortedClassCount = sorted(classCount.iteritems(),key = operator.itemgetter(1),reverse = True)
	return sortedClassCount[0][0] 

修改过后:

def order2p(p1,p2):
    p1 = numpy.array(p1)
    p2 = numpy.array(p2)
    p = []
    for x in p1:
        dataSetSize = p2.shape[0]
        diffMat = numpy.tile(x,(dataSetSize,1)) - p2
        sqDi
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值