2011-09-01 21 views
19

GoogleマップAPI v3を使用しています。私はデフォルトのgoogle landmark/poiでクリックアクションを無効にしたいたとえば、UCLAにズームすると、学校のアイコンが表示されます(これは問題ありません)。ユーザーがその場所の詳細をクリックして表示しないようにします。どのAPI関数を使用する必要がありますか?Googleマップでクリック可能なランドマークを無効にする

+0

私が見つけただろうと思います空気の例bnbマップ検索。ランドマークを隠すことなくランドマーククリックを無効にしました。彼らはどうしたのですか? – Clark

+0

私はあなたが3.3や3.4のようなapiの以前のバージョンを強制することができると思うし、うまくいくかもしれません。あるいは、私は最新のapiで以下に投稿したソリューションを使うことができます。 – Glenn

+0

私はそれを試してみましょう。ありがとう。 – Clark

答えて

7

この同じ問題が発生しました。 Googleは最近、ベースマップのラベルを「クリック可能」にするためにAPIを変更したようで、クリック可能性を無効にする簡単なAPI呼び出しはまだありません。 http://groups.google.com/group/google-maps-js-api-v3/browse_thread/thread/f1ac9ad4da3606fe

、私はGoogleがこのような単純なマップオプションを追加してくださいしたいと思いますが、それはまだ

var opts = { clickableLabels:false }; 
var map = new maps.google.com.map(div,opts); 

次のソリューションが動作存在しない悲しいかな、それはカスタムスタイルマップタイルを依存しているので、無料マップは、(2,500マップの負荷/日) - See Google Maps FAQに制限されています。

function initialize() { 

    // For more details see 
// http://code.google.com/apis/maps/documentation/javascript/styling.html 
    var noPOILabels = [ 
    { 
     featureType: "poi", 
     elementType: "labels", 
     stylers: [ { visibility: "off" } ] 

    } 
    ]; 

    // Create a new StyledMapType object, passing it the array of styles, 
    // as well as the name to be displayed on the map type control. 
    var noPOIMapType = new google.maps.StyledMapType(noPOILabels, 
    {name: "NO POI"}); 

    // Create a map object, and include the MapTypeId to add 
    // to the map type control. 
    var mapOptions = { 
    zoom: 11, 
    center: new google.maps.LatLng(55.6468, 37.581), 
    mapTypeControlOptions: { 
     mapTypeIds: [google.maps.MapTypeId.ROADMAP, 'no_poi'] 
    } 
    }; 
    var map = new google.maps.Map(document.getElementById('map_canvas'), 
    mapOptions); 

    //Associate the styled map with the MapTypeId and set it to display. 
    map.mapTypes.set('no_poi', noPOIMapType); 
    map.setMapTypeId('no_poi'); 
} 
+1

これを読んだだけでは、マーカーをクリックできないようにするのではなく、マーカーを完全に隠すように見えます。あれは正しいですか? –

+0

それは正しいです。それらを見えるままにする非公式(不安定な)ソリューションについては、先のAPIバージョンを強制するという上記の質問のコメントを参照してください。あなたがもっと良い解決策を見つけたら、それについて聞いてみたいと思います。 – Glenn

+1

ありがとう!これは完全に助けになった。 :) –

0

私はこの質問が古いであることを理解し、多分この答えは、他の人を助ける:

私はこれが合法であるかどうかわからないんだけど、私は、コードを探索終わったし、この作られた:

$("#google-map").on("mousedown",function(){ 
    setTimeout(function(){ 
     disableInfoWindows(); 
    },500); 
}); 

function disableInfoWindows() 
{ 
    $(".gm-iw.gm-sm").parent().parent().remove(); 
    $("[style='position: absolute; left: -2px; top: -336px; width: 59px; height: 492px; -webkit-user-select: none; border: 0px; padding: 0px; margin: 0px;']") 
    .parent() 
    .parent() 
    .remove(); 
} 

すべてのアイコンを保存している間、私のために働いて、インフォウィンドウが表示されませんでした。コードを改善するアイデアを持っている人は誰でも歓迎します。情報ウィンドウは、最初に開こうとしているときにちょっと出てきて、最初のものが完全に消えてしまっています。

1

私は、OPがラベル/アイコンを維持するが、クリックイベントを中止するソリューションを望んでいることを理解します。私はこれが可能であるかどうかはわかりません。してくださいstar this issue

しかし、私たちの一部は、描画マネージャとラベル/アイコンが新しいポイントの追加を妨げている形状を描いています。要件を満たしている場合は、アイコン/ラベルを一時的に削除することができます。

var map = new google.maps.Map(document.getElementById("map"), {}); 
map.poi = function(state){ 

    var styles = [ 
    { 
     "featureType": "transit", 
     "stylers": [ 
     { "visibility": "off" } 
     ] 
    },{ 
     "featureType": "poi", 
     "stylers": [ 
     { "visibility": "off" } 
     ] 
    },{ 
     "featureType": "landscape", 
     "stylers": [ 
     { "visibility": "off" } 
     ] 
    } 
    ]; 

    this.set("styles", (state)? {} : styles); 

} 

と使用方法:私はすべてが必要トランジットポイ、および風景がトグルされることがわかってきました

//turn the labels/icons off 
map.poi(false); 

//turn them back on 
map.poi(true); 
17

Googleは、このためのオプションを公開しました。 clickableIconsgoogle.maps.MapOptionsin the docsを参照してください。

例の初期化コード:

map = new google.maps.Map(document.getElementById('map'), { 
    clickableIcons: false 
}); 
+1

これは本当に答えとしてマークする必要があります。 – keaukraine

1

が clickableIcons mapOptionには、このオプションを追加します:偽

が、これはより多くのオプションである私はあなたが

draggable: true, // this is for disable the Draggable 
 
disableDefaultUI: true, // this for disable Default UI 
 
fullscreenControl: false, // this is for disable Full Screen 
 
scrollwheel: true, // this is for disable Scroll Wheel 
 
disableDoubleClickZoom: false, // this is for disable Double Click Zoom 
 
draggableCursor:'crosshair',// this is for cursor type 
 
draggingCursor:'move', // this is for dragging cursor type 
 
minZoom: 3, // this is for min zoom for map 
 
maxZoom: 18 , // this is for max zoom for map 
 
//note : max, min zoom it's so important for my design. 
 
zoom: 14, // this is to make default zoom 
 
clickableIcons: false, // this is to disable all labels icons except your custom infowindow or Infobox.

関連する問題