0

経度と緯度を使用してGoogleマップ上の投稿を見つけるこれらのコードがあります:ヘッダーに入る

<script type="text/javascript">
var infowindow = new google.maps.InfoWindow();
var pinkmarker = new google.maps.MarkerImage('/wp-content/themes/mapdemo/pink_Marker.png', new google.maps.Size(20, 34) );
var shadow = new google.maps.MarkerImage('/wp-content/themes/mapdemo/shadow.png', new google.maps.Size(37, 34) );

    function initialize() {
    map = new google.maps.Map(document.getElementById('map'), { 
        zoom: 6, 
        center: new google.maps.LatLng(37.5407246, -77.4360481), 
        mapTypeId: google.maps.MapTypeId.ROADMAP 
    });

    for (var i = 0; i < locations.length; i++) {  
        var marker = new google.maps.Marker({
            position: locations[i].geometry.location,
            icon: pinkmarker,
            shadow: shadow,
            map: map
        });
        google.maps.event.addListener(marker, 'click', (function(marker, i) {
          return function() {
            infowindow.setContent(locations[i].info);
            infowindow.open(map, marker);
          }
        })(marker, i));
    }

     }
     </script>

体内で

<?php if ( have_posts() ) : ?>
<!-- WordPress has found matching posts -->
<div style="display: none;">
  <?php $i = 1; ?>
  <?php while ( have_posts() ) : the_post(); ?>
  <?php if ( get_post_meta($post->ID, 'latlng', true) !== '' ) : ?>
  <div id="item<?php echo $i; ?>">
    <p><a href="<?php the_permalink(); ?>">
      <?php the_title(); ?>
      </a></p>
    <?php the_content(); ?>
  </div>
  <?php endif; ?>
  <?php $i++;   ?>
  <?php endwhile; ?>
</div>
<script type="text/javascript">
                var locations = [
                    <?php  $i = 1; while ( have_posts() ) : the_post(); ?>
                        <?php if ( get_post_meta($post->ID, 'latlng', true) !== '' ) : ?>
                            {
                                latlng : new google.maps.LatLng<?php echo get_post_meta($post->ID, 'latlng', true); ?>, 
                                info : document.getElementById('item<?php echo $i; ?>')
                        },
                        <?php endif; ?>
                    <?php $i++; endwhile; ?>
                ];
            </script>
<div id="map" style="width: 100%; height: 700px;"></div>
<?php else : ?>
<!-- No matching posts, show an error -->
<h1>Error 404 &mdash; Page not found.</h1>
<?php endif; ?>

経度と緯度から住所に切り替えるのに苦労しています。正しい方向への助けに感謝します。

http://www.billerickson.netのおかげで、最近次のコードを使用しています。

if(is_single()):
global $post;
    $address = get_post_meta($post->ID,'address',true);
     if (!$address) $address = '123 Main St, Austin, TX';
    $google_api_key = get_option('maps_key');
    if($address): ?>
        <script src="http://maps.google.com/maps?file=api&amp;v=2&amp;sensor=false&amp;key=<?php echo $google_api_key; ?>" type="text/javascript"></script>
        <div id="map_canvas" style="width: 100%; height: 100px"></div>
        <script type="text/javascript">
            function showAddress(address) {
                var map = new GMap2(document.getElementById("map_canvas"));
                var geocoder = new GClientGeocoder();
                geocoder.getLatLng(
                    address,
                    function(point) {
                        if (!point) {
                            alert(address + " not found");
                        } else {
                            map.setCenter(point, 13);
                            var marker = new GMarker(point);
                            map.addOverlay(marker);
                        }
                    }
                );
            }
        showAddress("<?php echo $address; ?>");
    </script>
<?php endif;

endif;

対応する著者ページで著者アドレスを取得します。私が必要としているのは、配列を使用してすべての作成者を同じマップに配置することですが、マップを機能させるのにまだ苦労しています。

4

1 に答える 1

0

lat-lng を入力として使用して住所を取得するプロセスは、リバース ジオコーディングと呼ばれます (通常のジオコーディングでは、住所を入力として受け取り、lat-lng を返します)。Google では、ジオコーディングのオプションをいくつか提供しています。

  • Google マップ デベロッパー ガイドジオコーディング サービスのセクションでは、JavaScript クライアント中心のサービスの概要を説明しています。このサービスは、Web ページでの動的なユーザー インタラクションに応答する JavaScript コードで使用することを目的としています。
  • Google Geocoding API デベロッパー ガイドでは、API Web サービスの概要を説明しています。API Web サービスは、事前にわかっている住所に対してサーバー側で使用することを目的としており、動的な地図操作をサポートすることを意図していません。

静的データを扱っているように見えるので、両方を含めました。しかし、あなたが何を達成しようとしているのか正確にはわからないので、Geocoding Service の方が適しているか、将来役立つものになる可能性があります。両方のオプションの利用規約では、Google マップのコンテキストで取得したデータを使用する必要があり、ジオコード データのカタログを作成するためにデータを保存しないでください。また、利用制限等もありますので、よくお読みください。これがあなたが探していたものであり、これが役立つことを願っています-

于 2012-06-08T01:59:59.280 に答える