2

jquery -ui-mapを使用して、パーソナライズされたアイコンを使用しようとしました。私はこのようにうまく動作します:

$("#gmap_" + parent).gmap('addMarker', { 
    "id": "marker-"+m.id,
    'position': new google.maps.LatLng(m.lat, m.lon), 
    'bounds':true,
    'icon': '/images/'+m.icon
})

私のアイコンは単なるURLです。しかし、すべてのアイコンをスプライトに入れたいので、他のオプションを設定する必要があります:

$("#gmap_" + parent).gmap('addMarker', { 
    "id": "marker-"+m.id,
    'position': new google.maps.LatLng(m.lat, m.lon), 
    'bounds':true,
    'icon': new google.maps.MarkerImage( {
        'url' : "http://crm.brunet.pro/images/markers.png",
        'origin': new google.maps.Point(m.pos, 0),
        'size' : new google.maps.Size(20, 34)
    })
})

このエラーが発生します:

GET http://mysite.com/[object%20Object] 400 (Bad Request)

したがって、アイコンオプションは文字列のみを受け入れるようです。しかし、 APIを見ると、MarkerImage オブジェクトを受け入れる必要があることがわかります。

私は何を間違えましたか?

ありがとう

4

1 に答える 1

4

MarkerImage は、 のように最大 5 つの引数で作成されMarkerImage(myUrl, size1, point1, point2)ますが、1 つのオブジェクト引数として記述しています。

このような場合、API ドキュメントは混乱を招く可能性があると思います。これらの例をチェックしてください:

https://developers.google.com/maps/documentation/javascript/overlays#ComplexIcons

  var image = new google.maps.MarkerImage('images/beachflag.png',
  // This marker is 20 pixels wide by 32 pixels tall.
  new google.maps.Size(20, 32),
  // The origin for this image is 0,0.
  new google.maps.Point(0,0),
  // The anchor for this image is the base of the flagpole at 0,32.
  new google.maps.Point(0, 32));

http://blog.mridey.com/2010/03/using-markerimage-in-maps-javascript.html (スプライト シートからの読み込みについて説明します)

size, origin, anchor言及されていませんが、API ドキュメントに記載されている順序を尊重する必要があります。

于 2012-06-04T15:48:58.207 に答える