2012-03-21 8 views
1

私は難しい質問だと思っていますが、ここにいる誰かが私の髪を引き裂かないようにすることができます!オーバーレイマーカーポイントがGoogleマップのIDで表示されるapi

私は現在、ホストされているtileJsonレイヤーでオーバーレイされたGoogleマップに複数のマーカーをオーバーレイする方法を見つけようとしています。

http://www.dougv.com/2007/07/12/using-ajax-to-update-a-non-map-div-via-google-maps-apis-gdownload-and-gmarker-onclick-event/

チュートリアルはマップのために設計されています。私はまた、ユーザがマップポイントのいずれかをクリックしたときに、私はサイドバーに写真やテキストを読み込むことができるように、このチュートリアルに従うことをしようとしている

それは簡単にAPI 3のために更新することができるように見えますが、私は3を使用しています。

今、カスタムタイルのインポートを簡単にするjavascriptコネクタのために、私はマーカーデータベースに接続することはもちろん、マップウィンドウの外からアクセスすることもできます。

https://mywebspace.wisc.edu/axler/Web%20Deep%20Map/Web%20Map%20Google%20Maps/index2.html ライブマップタイル...上記のリンクにあります。ポイントはまだ働いていませんが、コードのリストにサンプルポイントをいくつか入れています。

提案がありますか?ここに私のコードです。

<html> 
    <head> 
     <title>GOOGLE MAPS TILEMILL</title> 
    <script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?key=AIzaSyD6VG2UbuMLDCQoZ-GOPZl_PU7r1jXzejU&sensor=false"> 
     </script> 
     <script 
     src='wax/dist/wax.g.min.js' 
     type='text/javascript'></script> 
     <link href='wax/theme/controls.css' rel='stylesheet' type='text/css' /> 
     <link href='style.css' rel = 'stylesheet' type ='text/css' /> 
     <link href='controls.css' rel = 'stylesheet' type = 'text/css' /><script> 
    var map; 
    var sidebar; 


    function pageLoad() { 
    sidebar = document.getElementById('sidebar'); 
    addPoint(1, 'Howards Fish House', 46.72.30616121527788, -92.15); 
    addPoint(2, 'Rices Point', 46.78, -92.18); 
    addPoint(3, 'Wild Rice Seeding Area', 46.80, -92.22); 
     wax.tilejson('http://a.tiles.mapbox.com/v3/slre.st-louis-river-estuary.jsonp', 
     function(tilejson) { 
     var map = new google.maps.Map(
     document.getElementById('mymap'), { 
     center: new google.maps.LatLng(46.72, -92.15), 
     disableDefaultUI: false, 
     zoom: 12, 
     panControl: false, 
     zoomControl: true, 
     zoomControlOptions: { 
     position: google.maps.ControlPosition.TOP_RIGHT 
     }, 
     scaleControl: true, 
     streetViewControl: false, 
     mapTypeControl: false, 
      mapTypeId: google.maps.MapTypeId.ROADMAP }); 

     // Use this code to set a new layer as a baselayer - 
     // which means that it'll be on the bottom of any other 
     // layers and you won't see Google tiles 
     map.mapTypes.set('mb', new wax.g.connector(tilejson)); 
     map.setMapTypeId('mb'); 

    //I want to place a number of points on top of the MapBox hosted tile layer that is specified by wax.tilejson 



    }); 


    } 
function addPoint(pid, name, lat, lng) { 
       var point = new google.maps.LatLng(lat, lng); 
       var marker = new google.maps.Marker(point); 
       map.setMap(marker); 

       var info = '<strong>' + name + '</strong><br />'; 
       info += 'For more information, click the icon.'; 

       google.maps.event.addListener(marker, 'mouseover', function() { 
        marker.openInfoWindow(info); 
       }); 

       google.maps.event.addListener(marker, 'mouseout', function() { 
        map.closeInfoWindow(); 
       }); 

       google.maps.event.addListener(marker, 'click', function() { 
        details.innerHTML = '<em>Loading information ...</em>'; 
        showDivInfo(pid); 
       }); 
      } 

    </script> 

    </head> 


    <body onload="pageLoad()" onunload="pageUnload()"> 
    <div id='sidebar'> 
     <h2>Explore the St. Louis River Estuary</h2> 
     <p>Click on the map points to learn about the stories and science that define the region!</p> 
     <p><span class='source'>Source: <a href='http://www.stlre.pebbleonline.com'>Main Web Page</a></span></p> 
    </div> 
    <div id='mymap'></div> 


    </body> 


    </html> 
+0

でなければなりません。私たちは投稿されたコードのブロック上でデバッガを実行することはできません。 – barryhunter

+0

現在のコードには、質問に含まれる多くの機能が含まれていないことに注意してください。 – user1270657

+0

多分私は何かが不足しているかもしれませんが、マーカーを追加する現在の最良の試みはどこですか? – barryhunter

答えて

0

このmap.setMap(marker);間違っている。

はオンラインでホストマップへのリンクを提供してください

marker.setMap(map); 

:)

+0

それは良いキャッチ!ポイントはまだロードされません。 addPoint関数を配置するために階層内に特定の場所がありますか? – user1270657

+0

ああ、マップ自体を作成する "var map = new google.maps.Map"の後にする必要があります。マップが作成された後にのみ、マップにポイントを追加することができます! – barryhunter

+0

そして、実際にあなたはそこに「var」を望んでいません。新しいマップオブジェクトではなく、マップオブジェクトをグローバルマップ変数に割り当てる必要があります。 – barryhunter

関連する問題