Calculs GPS en Java [fermé]


Je cherche une API java, une API gratuite, qui fournit des fonctionnalités de base pour calculer les distances entre les coordonnées GPS. J'ai besoin de la distance de base entre deux points, des points d'intérêt dans un rayon autour d'un point.
J'ai fait un peu de recherche et trouvé d'une part quelques options.

D'une part, il y a Apache SIS (http://incubator.apache.org/sis/index.html) mais cela est encore en développement et pourrait en changer certains. Sur les autres il y a GéoTools (http://docs.geotools.org/), mais c'est assez complexe pour mes besoins.

Existe - t-il d'autres API faciles à utiliser et plus simples?

Une autre option serait de simplement implémenter tout cela moi-même, j'ai vu quelques exemples de propres implémentations, mais toutes ont des commentaires du genre: "cela ne fonctionne pas vraiment, cela fournit une distance qui est de 100 mètres". Quelle serait la fiabilité d'une telle mise en œuvre?

Author: Deelazee, 2013-04-10

6 answers

En utilisant GeoTools et Maven, cela ne devrait pas être trop difficile. Maven va prendre soin des dépendances. Et heureusement, vous n'aurez pas besoin de toute la suite Geotools pour faire les calculs "sans tête".

J'espère que c'est ce que vous cherchez.

Le pom:

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>org.bar</groupId>
  <artifactId>geo</artifactId>
  <version>1.0-SNAPSHOT</version>

  <repositories>
    <repository>
      <id>maven2-repository.dev.java.net</id>
      <name>Java.net repository</name>
      <url>http://download.java.net/maven/2</url>
    </repository>
    <repository>
      <id>osgeo</id>
      <name>Open Source Geospatial Foundation Repository</name>
      <url>http://download.osgeo.org/webdav/geotools/</url>
    </repository>
    <repository>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
      <id>opengeo</id>
      <name>OpenGeo Maven Repository</name>
      <url>http://repo.opengeo.org</url>
    </repository>
  </repositories>

  <dependencies>
    <dependency>
      <groupId>org.geotools</groupId>
      <artifactId>gt-referencing</artifactId>
      <version>9.0</version>
    </dependency>
  </dependencies>
</project>

Le code:

package org.bar;

import org.geotools.referencing.GeodeticCalculator;
import java.awt.geom.Point2D;

/**
 * How far is NY from London ?
 */
public class DistanceTest {

  public final static void main(final String[] args) {
    final GeodeticCalculator calc = new GeodeticCalculator();

    final Point2D london = new Point2D.Double(-0.127512, 51.507222);
    final Point2D ny = new Point2D.Double(-73.94, 40.67 );
    calc.setStartingGeographicPoint(london);
    calc.setDestinationGeographicPoint(ny);

    System.out.println("Distance London-NY: " + calc.getOrthodromicDistance()/1000 + " kms");
  }

}
 5
Author: Jan Goyvaerts, 2013-04-10 15:06:54

Avez-vous essayé http://www.dinopolis.org/gpsylon / . Je fournit des fonctionnalités comme:

  • Mesurer la distance.
  • Marqueur de localisation
 1
Author: user2266262, 2013-04-10 13:52:00

Jetez un oeil à Geocalc

//Kew
Coordinate lat = new DegreeCoordinate(51.4843774);
Coordinate lng = new DegreeCoordinate(-0.2912044);
Point kew = new Point(lat, lng);

//Richmond, London
lat = new DegreeCoordinate(51.4613418);
lng = new DegreeCoordinate(-0.3035466);
Point richmond = new Point(lat, lng);

double distance = EarthCalc.getVincentyDistance(richmond, kew); //in meters
double bearing = EarthCalc.getVincentyBearing(kew, richmond); //in decimal degrees
 1
Author: Romain Gallet, 2015-08-20 19:46:43

OpenStreetMaps (http://www.openstreetmap.us / ) ont des API assez utiles, gratuites et simples à utiliser.

 0
Author: johns4ta, 2013-04-10 14:01:18

Voici une collection d'API orientées localisation que vous trouverez probablement utile:

Https://www.temboo.com/library/keyword/location/

Sur la base de votre question, le meilleur ajustement est l'API Google Distance Matrix. La documentation de l'API est ici: https://developers.google.com/maps/documentation/distancematrix/

 0
Author: Cormac Driver, 2013-04-10 15:06:49

Je privilégie La géodésie.

Il est composé de seulement 7 classes. Il est donc totalement facile à utiliser.

 -1
Author: Thomas Klier, 2015-10-14 13:43:21