7
votes

Puis-je savoir si une coordonnée est à l'intérieur d'une ville?

Disons que j'ai un objet Latlng, y a-t-il un moyen de vérifier si cela représente un lieu possible dans une ville? Comment puis-je obtenir les limites d'une ville? J'utilise Google Map V3.


1 commentaires

Découvrez ce site: Maps.huge.info


3 Réponses :


4
votes

Les limites de la ville et d'autres municipalités sont constamment rétractées. Il existe certains services qui existent pour vous aider à les trouver, mais je ne suis pas certain que Google conserve un enregistrement des limites de la ville dans leurs données pour les cartes Google. ici discussion dans Google Groupes à propos de ça. Un extrait de ce site:

Selon l'endroit où vous êtes dans le monde, les limites de la ville et autres les limites administratives sont constamment changées et même parfois difficile pour les gouvernements locaux de garder leurs données à jour en raison des annexions et d'autres changements. En outre, "ville" pourrait être quelque chose de relatif petit ou de la taille de Shanghai. Aussi, différent les pays peuvent également avoir des définitions parfois contradictoires quoi Unité administrative est la définition réelle - un bon exemple est Chine. Votre meilleure approche est probablement pour obtenir vos données d'un local gouvernement ou un fournisseur de données et construisez le vôtre.


0 commentaires

8
votes

Avez-vous essayé de géocodage inverse?

http: / /code.google.com/aPis/maps/documentation/javascript/services.html#ReverseGeCoding P>

Vous pouvez vérifier l'adresse formatée pour voir si la ville correspond à ce que vous recherchez. Je ne sais pas à quel point cela sera précisément pour votre candidature, mais c'est une option. P>

function codeLatLng() {
    var geocoder = new google.maps.Geocoder(),
        latlng = new google.maps.LatLng(40.730885, -73.997383);
    geocoder.geocode({ 'latLng': latlng }, function (results, status) {
        if (status == google.maps.GeocoderStatus.OK) {
            if (results[1]) {
                console.log(results[1]);
                console.log(results[1].formatted_address);
            }
        } else {
            alert("Geocoder failed due to: " + status);
        }
    });
}


1 commentaires

J'ai fini par faire quelque chose comme ça. Merci!



2
votes

Vous pouvez utiliser le géocodage inverse dans l'API Google Geocoder et vérifier les entrées localité et peut-être sublocalité entrées des résultats renvoyés. http://code.google.com/apis/maps/documentation/geocoding/ #Types

Notez que cela ne fonctionnera probablement pas si bien si vous avez des adresses dans le monde entier et souhaitez savoir "quelle ville est-ce latlng?" D'autre part, cela fonctionnera probablement raisonnablement si vous voulez savoir "est-ce latlng à Chicago?" Il existe des régions du monde où les données sont assez complètes et sensibles, ainsi que des zones où elles sont incomplètes et / ou organisées d'une manière à ne pas attendre. (Apparemment, le Royaume-Uni utilise "comté" et "State" très différemment des États-Unis, par exemple. Même si je me trompe à ce sujet, vous avez l'idée.)


0 commentaires