• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

Java LatLng类代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了Java中com.javadocmd.simplelatlng.LatLng的典型用法代码示例。如果您正苦于以下问题:Java LatLng类的具体用法?Java LatLng怎么用?Java LatLng使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。



LatLng类属于com.javadocmd.simplelatlng包,在下文中一共展示了LatLng类的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的Java代码示例。

示例1: getAddress

import com.javadocmd.simplelatlng.LatLng; //导入依赖的package包/类
@RetryOnFailure(attempts = 5, delay = 1, unit = TimeUnit.MINUTES)
public Address getAddress(double lat, double lng) throws IOException {
	LatLng query = new LatLng(lat, lng);
	for (LatLng entry : addressCache.keySet()) {
		if (LatLngTool.distance(entry, query, LengthUnit.METER) < 30) {
			return addressCache.get(entry);
		}
	}

	// cannot find the place in the cache. Sleep a while and query the
	// OpenStreetMap.
	LoggerFactory.getLogger(this.getClass()).trace("Query {}", query);
	Address newAddress = nominatimClient.getAddress(lng, lat);
	addressCache.put(query, newAddress);
	return newAddress;
}
 
开发者ID:ohmage,项目名称:lifestreams,代码行数:17,代码来源:CachedOpenStreetMapClient.java


示例2: getEpisode

import com.javadocmd.simplelatlng.LatLng; //导入依赖的package包/类
public ActivityEpisode getEpisode() {
	List<TrackPoint> points = instance.getTrackPoints();
	double distance = 0;
	// compute the distance in mile
	if(points.size() > 0){
		LatLng curLocation = new LatLng(points.get(0).getLat(), points.get(0).getLng());
           DateTime curTime = points.get(0).getTime();
		for (TrackPoint point : points) {
			LatLng nextLocation = new LatLng(point.getLat(), point.getLng());
               DateTime nextTime = point.getTime();
               double displacementInMiles = LatLngTool.distance(curLocation, nextLocation, LengthUnit.MILE);
               double duration = new Duration(curTime, nextTime).getStandardSeconds() / 3600.0;
               double speedInMilesInHours = displacementInMiles / duration;
               // don't count the track points which move too fast to be true...
               if(speedInMilesInHours < 7.0) {
                   distance += displacementInMiles;
               }
               curTime = nextTime;
			curLocation = nextLocation;
		}
	}
	instance.setDistanceInMiles(distance);
	return instance;
}
 
开发者ID:ohmage,项目名称:lifestreams,代码行数:25,代码来源:ActivityEpisodeAccumulator.java


示例3: deserialize

import com.javadocmd.simplelatlng.LatLng; //导入依赖的package包/类
@Override
public GeoLocation deserialize(JsonParser jp,
		DeserializationContext ctxt) throws
              IOException {
	ObjectCodec oc = jp.getCodec();
	JsonNode node = oc.readTree(jp);

	LatLng geo = new LatLng(node.get("latitude").asDouble(), node.get(
			"longitude").asDouble());
	DateTime timestamp = null;
	if (node.get("timestamp") != null) {
		timestamp = new DateTime(node.get("timestamp").asText());
	} else if (node.get("time") != null && node.get("timezone") != null) {
		timestamp = new DateTime(node.get("time").asLong(),
				DateTimeZone.forID(node.get("timezone").asText()));
	}
	double accuracy = node.get("accuracy").asDouble();
	String provider = node.get("provider").asText();
	return (new GeoLocation(timestamp, geo, accuracy, provider));
}
 
开发者ID:ohmage,项目名称:lifestreams,代码行数:21,代码来源:GeoLocation.java


示例4: distanceInMeters

import com.javadocmd.simplelatlng.LatLng; //导入依赖的package包/类
public double distanceInMeters(Measurement m) {
	double distance = 0;
	if (m != null) {
		/*
		 * double lat1 = this.getLat(); double lat2 = m.getLat(); double
		 * lon1 = this.getLng(); double lon2 = m.getLng(); double dLat =
		 * Math.toRadians(lat2 - lat1); double dLon = Math.toRadians(lon2 -
		 * lon1); double a = Math.sin(dLat / 2) * Math.sin(dLat / 2) +
		 * Math.cos(Math.toRadians(lat1)) Math.cos(Math.toRadians(lat2)) *
		 * Math.sin(dLon / 2) Math.sin(dLon / 2); double c = 2 *
		 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a)); distance =
		 * EARTH_RADIUS * c;
		 */
		double lat1 = this.getLat();
		double lat2 = m.getLat();
		double lon1 = this.getLng();
		double lon2 = m.getLng();
		LatLng point1 = new LatLng(lat1, lon1);
		LatLng point2 = new LatLng(lat2, lon2);
		distance = LatLngTool.distance(point1, point2, LengthUnit.METER);
	}
	return distance;
}
 
开发者ID:joluet,项目名称:PreODE,代码行数:24,代码来源:Measurement.java


示例5: getSessionInRange

import com.javadocmd.simplelatlng.LatLng; //导入依赖的package包/类
/**
 * Returns a Session from the document store if a session within the range, in meters, exists. Range is determined
 * by calculating the distance between two geopoints, the geopoint of the incoming device, and the geopoint of an
 * existing Session
 *
 * @param   sessions    a list of unlocked/available sessions to check against
 * @param   range       the maximum range from a session for the device to be considered for inclusion
 * @param   j           the JoinMessage object sent by the device that includes its geolocation
 *
 * @return              a session within the desired range, if found
 */
public Session getSessionInRange(List<Session> sessions, float range, JoinMessage j){
    // iterate over the list of sessions and try to find one within proximity of the
    // inbound device. If one is found, create the device to it, and update its Geolocation with the device's
    // geolocation. This way when the next device comes in it will only need to be within proximity
    // to the last device to join the session to be allowed into session
    float[] deviceGeo= j.getGeo();
    LatLng dGeo = new LatLng(new Double(deviceGeo[0]), new Double(deviceGeo[1]));

    for(Session session: sessions){
        float[] sGeo = session.getGeoLocation();
        if(sGeo != null){
            LatLng sessionGeo =new LatLng(new Double(sGeo[0]), new Double(sGeo[1]));
            double distanceFromInboundDevice = LatLngTool.distance(dGeo,sessionGeo, LengthUnit.METER);

            if(distanceFromInboundDevice <= range){
                return session;
            }
        }
    }
    return null;
}
 
开发者ID:wieden-kennedy,项目名称:composite-framework,代码行数:33,代码来源:SessionRepository.java


示例6: isSimple

import com.javadocmd.simplelatlng.LatLng; //导入依赖的package包/类
public static boolean isSimple(LatLng[] points) {
    int total = points.length;
    for (int i = 0; i < total; ++i) {
        LatLng Pa1 = points[i];
        LatLng Pa2 = points[(i + 1) % total];

        for (int j = 1; j < total - 2; ++j) {
            int k = i + j + 1;
            LatLng Pb1 = points[k % total];
            LatLng Pb2 = points[(k + 1) % total];

            // if there are two bounds intersected,
            // it is not a simple polygon
            if (LatLngTool.isIntersected(Pa1, Pa2, Pb1, Pb2)) {
                return false;
            }
        }
    }

    return true;
}
 
开发者ID:wangbai,项目名称:simplelatlng,代码行数:22,代码来源:PolygonWindow.java


示例7: RectangularWindow

import com.javadocmd.simplelatlng.LatLng; //导入依赖的package包/类
/**
 * Creates a pseudo-rectangular window. Note: this constructor must not be
 * used with polar coordinates, where the notions of east and west are
 * invalid.
 * 
 * @param northeast
 *            the northeastern corner of this window.
 * @param southwest
 *            the southwestern corner of this window.
 * @throws IllegalArgumentException
 *             if either northeast or southwest are polar coordinates, also
 *             if the northeast point is south of the southwest point.
 */
public RectangularWindow(LatLng northeast, LatLng southwest) {
    if (northeast.isPolar() || southwest.isPolar())
        throw new IllegalArgumentException(
                "Window constructor is not valid for polar coordinates.");
    if (northeast.getLatitudeInternal() < southwest.getLatitudeInternal())
        throw new IllegalArgumentException(
                "Provided northeast point is not north of provided southwest point.");

    double deltaLat = northeast.getLatitude() - southwest.getLatitude();
    double deltaLng = northeast.getLongitude() - southwest.getLongitude();
    if (northeast.getLongitude() < southwest.getLongitude())
        deltaLng += 360;

    double centerLat = southwest.getLatitude() + deltaLat / 2;
    double centerLng = southwest.getLongitude() + deltaLng / 2;

    this.setWindow(new LatLng(centerLat, centerLng), deltaLat, deltaLng);
}
 
开发者ID:wangbai,项目名称:simplelatlng,代码行数:32,代码来源:RectangularWindow.java


示例8: setWindow

import com.javadocmd.simplelatlng.LatLng; //导入依赖的package包/类
/**
 * Sets the bounds of this window.
 * 
 * @param center
 *            the center point.
 * @param deltaLat
 *            the span of the window in latitude in degrees.
 * @param deltaLng
 *            the span of the window in longitude in degrees.
 */
public void setWindow(LatLng center, double deltaLat, double deltaLng) {
    if (center == null)
        throw new IllegalArgumentException("Invalid center point.");
    if (Double.isNaN(deltaLat) || Double.isInfinite(deltaLat))
        throw new IllegalArgumentException("Invalid latitude delta.");
    if (Double.isNaN(deltaLng) || Double.isInfinite(deltaLng))
        throw new IllegalArgumentException("Invalid longitude delta.");

    double dlat = min(abs(deltaLat), 180.0);
    this.setLatWindow(center.getLatitude(), dlat);

    double dlng = min(abs(deltaLng), 360.0);
    this.setLngWindow(center.getLongitude(), dlng);

    this.center = center;
}
 
开发者ID:wangbai,项目名称:simplelatlng,代码行数:27,代码来源:RectangularWindow.java


示例9: contains

import com.javadocmd.simplelatlng.LatLng; //导入依赖的package包/类
@Override
public boolean contains(LatLng point) {

    if (point.getLatitudeInternal() > maxLatitude
            || point.getLatitudeInternal() < minLatitude) {
        return false;
    }

    long longitude = point.getLongitudeInternal();
    if (crosses180thMeridian) {
        if (longitude < 0 && longitude > rightLongitude) {
            return false;
        }
        if (longitude >= 0 && longitude < leftLongitude) {
            return false;
        }
    } else if (longitude > rightLongitude || longitude < leftLongitude) {
        return false;
    }
    return true;
}
 
开发者ID:wangbai,项目名称:simplelatlng,代码行数:22,代码来源:RectangularWindow.java


示例10: getGeolocation

import com.javadocmd.simplelatlng.LatLng; //导入依赖的package包/类
/**
 * Returns a {@link LatLng} object with the geolocation of the vector with the given internal id or null
 * if the internal id does not exist. Accesses the BDB store!
 * 
 * @param iid
 *            The internal id of the vector
 * @return The geolocation mapped to the given internal id or null if the internal id does not exist
 */
public LatLng getGeolocation(int iid) {
	if (iid < 0 || iid > loadCounter) {
		System.out.println("Internal id " + iid + " is out of range!");
		return null;
	}
	DatabaseEntry key = new DatabaseEntry();
	IntegerBinding.intToEntry(iid, key);
	DatabaseEntry data = new DatabaseEntry();
	if ((iidToGeolocationDB.get(null, key, data, null) == OperationStatus.SUCCESS)) {
		TupleInput input = TupleBinding.entryToInput(data);
		double latitude = input.readDouble();
		double longitude = input.readDouble();
		LatLng geolocation = new LatLng(latitude, longitude);
		return geolocation;
	} else {
		System.out.println("Internal id " + iid + " is in range but gelocation was not found.");
		return null;
	}
}
 
开发者ID:MKLab-ITI,项目名称:multimedia-indexing,代码行数:28,代码来源:AbstractSearchStructure.java


示例11: getLatLngFromTweet

import com.javadocmd.simplelatlng.LatLng; //导入依赖的package包/类
@SuppressWarnings("unchecked")
public static LatLng getLatLngFromTweet(Map<String, Object> tweet) {
	Map<String, Object> coordinates = (Map<String, Object>) tweet.get(Constants.COORDINATES);
	if (coordinates == null)
		return null;
	ArrayList<Object> coordinateList = (ArrayList<Object>) coordinates.get(Constants.COORDINATES);

	double longitude = 0;
	if (coordinateList.get(0) instanceof Double)
		longitude = (Double)coordinateList.get(0);
	else if (coordinateList.get(0) instanceof Integer)
		longitude = (double)(Integer)coordinateList.get(0);
	else
		return null;
	
	double latitude = 0;
	if (coordinateList.get(1) instanceof Double)
		latitude = (Double)coordinateList.get(1);
	else if (coordinateList.get(1) instanceof Integer)
		latitude = (double)(Integer)coordinateList.get(1);
	else
		return null;
	
	LatLng latLng = new LatLng(latitude, longitude);
	return latLng;
}
 
开发者ID:mdredze,项目名称:carmen,代码行数:27,代码来源:Utils.java


示例12: addLocation

import com.javadocmd.simplelatlng.LatLng; //导入依赖的package包/类
public void addLocation(Location location) {
	if (location.getLatLng() == null)
		return;
	
	LatLng latLong = location.getLatLng();
	List<String> keys = this.getKeys(latLong);
	
	for (String key : keys) {
		if (!this.locationMap.containsKey(key)) {
			this.locationMap.put(key, new LinkedList<Location>());
		}
		
		List<Location> locations = this.locationMap.get(key);
		locations.add(location);
	}
}
 
开发者ID:mdredze,项目名称:carmen,代码行数:17,代码来源:GeocodeLocationResolver.java


示例13: getKeys

import com.javadocmd.simplelatlng.LatLng; //导入依赖的package包/类
private List<String> getKeys(LatLng latLong) {
	double latitude = latLong.getLatitude() * 100;
	double longitude = latLong.getLongitude() * 100;
	double shiftSize = this.cellSize  / (double)2;
	
	List<String> keys = new LinkedList<String>();
	
	keys.add(Integer.toString((int) (latitude/this.cellSize)) + "&&" + Integer.toString((int) (longitude/this.cellSize)));
	
	keys.add(Integer.toString((int) (latitude+shiftSize/this.cellSize)) + "&&" + Integer.toString((int) (longitude/this.cellSize)));
	keys.add(Integer.toString((int) (latitude-shiftSize/this.cellSize)) + "&&" + Integer.toString((int) (longitude/this.cellSize)));
	keys.add(Integer.toString((int) (latitude/this.cellSize)) + "&&" + Integer.toString((int) (longitude+shiftSize/this.cellSize)));
	keys.add(Integer.toString((int) (latitude/this.cellSize)) + "&&" + Integer.toString((int) (longitude-shiftSize/this.cellSize)));
	keys.add(Integer.toString((int) (latitude+shiftSize/this.cellSize)) + "&&" + Integer.toString((int) (longitude+shiftSize/this.cellSize)));
	keys.add(Integer.toString((int) (latitude+shiftSize/this.cellSize)) + "&&" + Integer.toString((int) (longitude-shiftSize/this.cellSize)));
	keys.add(Integer.toString((int) (latitude-shiftSize/this.cellSize)) + "&&" + Integer.toString((int) (longitude+shiftSize/this.cellSize)));
	keys.add(Integer.toString((int) (latitude-shiftSize/this.cellSize)) + "&&" + Integer.toString((int) (longitude-shiftSize/this.cellSize)));
			
	return keys;
}
 
开发者ID:mdredze,项目名称:carmen,代码行数:21,代码来源:GeocodeLocationResolver.java


示例14: calculateDistance

import com.javadocmd.simplelatlng.LatLng; //导入依赖的package包/类
public double calculateDistance(GeoCoordinate location1,
		GeoCoordinate location2, SpatialDistanceUnit unit) {
	
	LatLng point1 = new LatLng(location1.getLatitude(), location1.getLongitude());
	LatLng point2 = new LatLng(location2.getLatitude(), location2.getLongitude());
	
	double finalDistance = 0;
	
	if (unit == SpatialDistanceUnit.Meter){
		finalDistance = LatLngTool.distance(point1, point2, LengthUnit.METER);
	}
	else if (unit == SpatialDistanceUnit.Kilometer){
		finalDistance = LatLngTool.distance(point1, point2, LengthUnit.KILOMETER);
	}
	else if (unit == SpatialDistanceUnit.Mile){
		finalDistance = LatLngTool.distance(point1, point2, LengthUnit.MILE);
	}
	else if (unit == SpatialDistanceUnit.NauticalMile){
		finalDistance = LatLngTool.distance(point1, point2, LengthUnit.NAUTICAL_MILE);
	}
	else if (unit == SpatialDistanceUnit.Foot){
		finalDistance = LatLngTool.distance(point1, point2, LengthUnit.METER);
		finalDistance = finalDistance * 3.28084;
	}
	else if (unit == SpatialDistanceUnit.Yard){
		finalDistance = LatLngTool.distance(point1, point2, LengthUnit.METER);
		finalDistance = finalDistance * 1.0936133333333;
	}
	
	return finalDistance;
}
 
开发者ID:hamdikavak,项目名称:human-mobility-modeling-utilities,代码行数:32,代码来源:SpatialOperationHandler.java


示例15: geoDistance

import com.javadocmd.simplelatlng.LatLng; //导入依赖的package包/类
private static double geoDistance(double[] geo1, double[] geo2) throws Exception {
	if (geo1[0] == 0 || geo2[0] == 0) { // images with no gps have 0s in the xml file
		return -1000; // unknown distance
	}

	LatLng im1 = new LatLng(geo1[0], geo1[1]);
	LatLng im2 = new LatLng(geo2[0], geo2[1]);

	double distance = LatLngTool.distance(im1, im2, LengthUnit.KILOMETER);
	if (distance < 0) {
		throw new Exception("Negative distance!");
	}
	return distance;
}
 
开发者ID:socialsensor,项目名称:diverse-image-search,代码行数:15,代码来源:Distances.java


示例16: distanceFromLocation

import com.javadocmd.simplelatlng.LatLng; //导入依赖的package包/类
/**
 * Calculates and returns the distance (in meters) of this image from the given location.
 * 
 * @return The distance in meters, or -1000 if the location of this image is unknown.
 * @throws Exception
 */
public double distanceFromLocation(double locLat, double locLong) throws Exception {
	if (this.latitude == 0 || this.longitude == 0) { // images with no gps have 0s in the xml file
		// System.out.println("No coordinates for image " + this.getId());
		return -1000; // unknown image location!
	}
	LatLng loc = new LatLng(locLat, locLong);
	LatLng img = new LatLng(latitude, longitude);

	double distance = LatLngTool.distance(loc, img, LengthUnit.METER);
	if (distance < 0) {
		throw new Exception("Negative distance!");
	}
	return distance;
}
 
开发者ID:socialsensor,项目名称:diverse-image-search,代码行数:21,代码来源:MEDI2014Image.java


示例17: emitTrackPoint

import com.javadocmd.simplelatlng.LatLng; //导入依赖的package包/类
private void emitTrackPoint(TrackPoint point) {
	LatLng coordinates = new LatLng(point.getLat(), point.getLon());
	GeoLocation location = new GeoLocation(point.getTime(),	coordinates, -1, "Moves");
	this.createRecord()
			.setData(new DummyMovesTrackPointData(this))
			.setLocation(location)
			.setTimestamp(point.getTime())
			.emit();
}
 
开发者ID:ohmage,项目名称:lifestreams,代码行数:10,代码来源:TrackPointExtractor.java


示例18: outputPlaceSegment

import com.javadocmd.simplelatlng.LatLng; //导入依赖的package包/类
/**
 * Create and output a place segment with the given data points
 * 
 * @param placePoints
 */
private void outputPlaceSegment(LinkedList<StreamRecord> placePoints) {
	// compute the median lat/lng of all points in the place
	DescriptiveStatistics lat = new DescriptiveStatistics();
	DescriptiveStatistics lng = new DescriptiveStatistics();
	for (StreamRecord rec : placePoints) {
		lat.addValue(rec.getLocation().getCoordinates().getLatitude());
		lng.addValue(rec.getLocation().getCoordinates().getLongitude());
	}
	double mLat = lat.getPercentile(50.0);
	double mLng = lng.getPercentile(50.0);

	// query OpenStreetMap for context info
	Address address;
	try {
		address = OSMClient.getAddress(mLat, mLng);
	} catch (Exception e) {
		throw new RuntimeException(e);
	}
	if (address.getAddressElements() == null) {
		getLogger().error("Cannot find place info with coordinates {},{}", mLat, mLng);
	}

	LatLng location = new LatLng(mLat, mLng);
	Interval wholeInterval = new Interval(placePoints.getFirst().getTimestamp(), 
										  placePoints.getLast().getTimestamp());
	// divide the whole interval by the day boundaries and emit one segment for each sub-interval
	for(Interval interval: DivideInterval.byDay(wholeInterval)){
		PlaceSegment output = new PlaceSegment(interval.getStart(), 
											   interval.getEnd(), 
											   location, address);
		GeoLocation geolocation = new GeoLocation(interval.getEnd(), location, -1, "PlaceDetection");
		this.createRecord().setData(new MobilitySegment(output))
						   .setTimestamp(interval.getEnd())
						   .setLocation(geolocation)
						   .emit();
	}

}
 
开发者ID:ohmage,项目名称:lifestreams,代码行数:44,代码来源:PlaceDetection.java


示例19: outputMoveSegment

import com.javadocmd.simplelatlng.LatLng; //导入依赖的package包/类
/**
 * Create and output a Move segment with the given data points
 * 
 * @param placePoints
 */
private void outputMoveSegment(LinkedList<StreamRecord> movePoints) {
	DateTime start = movePoints.getFirst().getTimestamp();
	DateTime end = movePoints.getLast().getTimestamp();
	LatLng origin = movePoints.getFirst().getLocation().getCoordinates();
	LatLng destination = movePoints.getLast().getLocation().getCoordinates();
	Interval wholeInterval = new Interval(start, end);
	// divide the whole interval by the day boundaries and emit one segment for each sub-interval
	for(Interval interval: DivideInterval.byDay(wholeInterval)){
		MoveSegment output = new MoveSegment(start, end, origin, destination, movePoints);
		this.createRecord().setData(new MobilitySegment(output))
						   .setTimestamp(interval.getEnd())
						   .emit();
	}
}
 
开发者ID:ohmage,项目名称:lifestreams,代码行数:20,代码来源:PlaceDetection.java


示例20: getDiameter

import com.javadocmd.simplelatlng.LatLng; //导入依赖的package包/类
public static double getDiameter(List<StreamRecord> points, LengthUnit unit){
	double maxDist = 0;
	for(int i=0; i<points.size(); i++){
		for(int j=i+1; j<points.size(); j++){
			LatLng l1 = points.get(i).getLocation().getCoordinates();
			LatLng l2 = points.get(j).getLocation().getCoordinates();
			double dist = LatLngTool.distance(l1, l2, unit);
			maxDist = dist > maxDist ? dist : maxDist;
		}	
	}
	return maxDist;
}
 
开发者ID:ohmage,项目名称:lifestreams,代码行数:13,代码来源:ConvexHull.java



注:本文中的com.javadocmd.simplelatlng.LatLng类示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
Java FileSystemAlreadyExistsException类代码示例发布时间:2022-05-21
下一篇:
Java PooledConnectionFactory类代码示例发布时间:2022-05-21
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap