📄 wiglemapper.java
字号:
/* * Created on Aug 11, 2004 * */package org.placelab.mapper;import java.io.IOException;import java.util.Enumeration;import java.util.Vector;import org.placelab.collections.UnsupportedOperationException;import org.placelab.core.Coordinate;import org.placelab.core.TwoDCoordinate;/** * A Mapper that does lookups on wigle.net for beacons. * Since it queries wigle.net for each (new) lookup, it is * is very slow, and further makes it such that the location * computation is no longer completely client side. Still, * it is useful for comparisons of accuracy and coverage between * wigle and other sources of beacon data. * @see WigleDownloader * */public class WigleMapper extends AbstractMapper { private WigleDownloader downloader; public WigleMapper() throws IOException { super(true); downloader = new WigleDownloader(); downloader.authenticate(); } protected Vector findBeaconsImpl(String id) { Enumeration iter = downloader.query("netid=" + id.toUpperCase()); if (!iter.hasMoreElements()) return null; StringBuffer buffer = new StringBuffer(); while (iter.hasMoreElements()) { buffer.append(iter.nextElement().toString()); if (iter.hasMoreElements()) buffer.append("\n"); } Vector rv = getBeaconsFromStorageString(buffer.toString()); return rv; } protected boolean putBeaconsImpl(String id, Vector beacons) { throw new UnsupportedOperationException("WigleMapper does not support put operations"); } public boolean open() { return true; } public boolean close() { return true; } public boolean deleteAll() { throw new UnsupportedOperationException("WigleMapper is not mutable"); } public boolean isOpened() { return true; } public void startBulkPuts() {} public void endBulkPuts() {} public Enumeration query(Coordinate c1, Coordinate c2) { return new WigleMapperIterator(downloader.query((TwoDCoordinate)c1, (TwoDCoordinate)c2)); } private class WigleMapperIterator implements Enumeration { private Enumeration iter; public WigleMapperIterator(Enumeration iterator) { iter = iterator; } public boolean hasMoreElements() { return iter.hasMoreElements(); } public Object nextElement() { return createBeacon(iter.nextElement().toString()); } }}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -