29

APIに都市名を付けて、都市の緯度と経度を取得したい。ユーザーが都市を入力する方法に関係なく、ほとんどの都市で機能するはずです。

例えば:

都市は「マイアミ、米国」、または都市は「マイアミ、米国」にすることができます

緯度を印刷するにはどうすればよいですか?

4

3 に答える 3

60

ここでjsfiddledのコードを見つけることができます:http://jsfiddle.net/YphZw/または 以下:

$("#btn").click(function(){
            var geocoder =  new google.maps.Geocoder();
    geocoder.geocode( { 'address': 'miami, us'}, function(results, status) {
          if (status == google.maps.GeocoderStatus.OK) {
            alert("location : " + results[0].geometry.location.lat() + " " +results[0].geometry.location.lng()); 
          } else {
            alert("Something got wrong " + status);
          }
        });
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<html>
<head>
    <script type="text/javascript" src="https://maps.googleapis.com/maps/api/js?sensor=false"></script>
</head>
<body>
    <input id="btn" type="button" value="search for miami coordinates" />
</body>
</html>

Javascript APIの例がさらに必要な場合は、次のリンクを試してください:https ://developers.google.com/maps/documentation/javascript/examples/

私が書いたコードは、ジオコーディングの単純なサンプルから着想を得ています。

よろしく。

編集1:

非公式のPHPライブラリを使用してこれを実現できます。この例を確認してください: http ://www.bradwedell.com/phpgooglemapapi/demos/geocoding.php (コードは下部にあります=

于 2012-06-22T01:41:05.257 に答える
13

Googleのジオコーディングサービスを使用できます。例:

http://maps.googleapis.com/maps/api/geocode/xml?address=Miami+FL&sensor=false

これにより、さまざまな形式(JSON、XMLなど)で地理参照データが返されます。いずれにせよ、場所は間違いなく返されたデータブロックにあります。

APIドキュメントは次の場所にあります。

https://developers.google.com/maps/documentation/geocoding/

于 2012-06-22T01:40:11.147 に答える
2

以下のコメントごとに更新: 2018年7月以降は機能しません。


これは不必要に複雑に思えます。これが「近くのイベント」マップの例です。sがかかりCity, State、それらを座標に変換し、latLngマーカーをマップに配置します。

// Nearby Events with Google Maps
window.nearbyEventsMap = () => {
    const centerOfUS = {
        lat: 37.09024,
        lng: -95.712891
    }

    // Create a map object and specify the DOM element for display.
    const map = new google.maps.Map(document.querySelector('#nearby_events_map'), {
        center: centerOfUS,
        scrollwheel: false,
        zoom: 4
    })

    // Create a marker and set its position.
    const geocoder = new google.maps.Geocoder()

    // Filter out duplicate cityStates
    let cityStates = {}
    document.querySelectorAll('.nearby_event_city_state').forEach(event => {
        cityStates[event] = event.innerText
    })

    // `cityState` is in the format of "City, State". It's not picky about state being a word or the abbreviation.
    for (const cityState in cityStates) {
        const location = cityStates[cityState]

        geocoder.geocode({
            address: location
        }, function (results, status) {
            if (status === 'OK') {
                const result = results[0].geometry.location
                const lat = result.lat()
                const lng = result.lng()
                const latLng = {
                    lat,
                    lng
                }

                return new google.maps.Marker({
                    map: map,
                    position: latLng
                })
            }
        })
    }
}
// /Nearby Events with Google Maps

<script>必ずタグを含めてください。

<script src="/dist/js/main.js"></script>

<!-- We're loading this after the main.js script so the callback from main.js will be available to it. -->
<script src="https://maps.googleapis.com/maps/api/js?key=YOUR_API_KEY&callback=nearbyEventsMap"></script>

StackOverflowを他のすべての人に参加させて、構文を強調表示したGitHubマークダウンを取得してください...

于 2017-01-08T03:36:44.283 に答える