简体   繁体   English

如何在Google地图上放置图标标记,图标数量是否有配额?

[英]How can I put icon markers on Google maps, and is there a quota on number of icons?

How in Google Maps JavaScript do I say, "I want a marker to be placed at this latitude and longitude, with animation, and with this 30x20 icon [with any needed information for the icon]?" 我该如何在Google Maps JavaScript中说:“我希望将标记,动画和30x20图标(包含该图标的任何必要信息)放置在该经度和纬度上?”

Is there any limit on how many different icons I can have? 我可以拥有多少个不同的图标?

I think you're looking for this: Google Maps API - Overlays 我想您正在寻找的是: Google Maps API-叠加层

Some really good examples there... 那里有一些非常好的例子...

Typically there is an icon for the overlay and also one for the shadow but you may be able to override this behavior... 通常情况下,叠加层有一个图标,阴影也有一个图标,但是您可以覆盖此行为...

Edit: Added more content: 编辑:添加了更多内容:

There is no default shadow. 没有默认阴影。 If you are using custom icons, you need to provide both the icon and the image for the shadow. 如果使用自定义图标,则需要同时提供阴影的图标和图像。 I have used Custom Marker Generator in the past to generate the shadow image. 我过去曾使用“ 自定义标记生成器 ”来生成阴影图像。

Here's some example code from Google. 这是Google的一些示例代码。 Notice both the image and the shadow are specified... 请注意,同时指定了图像和阴影...

function initialize() {
    var myOptions = {
        zoom: 10,
        center: new google.maps.LatLng(-33.9, 151.2),
        mapTypeId: google.maps.MapTypeId.ROADMAP
    }
    var map = new google.maps.Map(document.getElementById("map_canvas"),
                            myOptions);

    setMarkers(map, beaches);
}

/**
 * Data for the markers consisting of a name, a LatLng and a zIndex for
 * the order in which these markers should display on top of each
 * other.
 */
var beaches = [
  ['Bondi Beach', -33.890542, 151.274856, 4],
  ['Coogee Beach', -33.923036, 151.259052, 5],
  ['Cronulla Beach', -34.028249, 151.157507, 3],
  ['Manly Beach', -33.80010128657071, 151.28747820854187, 2],
  ['Maroubra Beach', -33.950198, 151.259302, 1]
];

function setMarkers(map, locations) {
  // Add markers to the map

  // Marker sizes are expressed as a Size of X,Y
  // where the origin of the image (0,0) is located
  // in the top left of the image.

  // Origins, anchor positions and coordinates of the marker
  // increase in the X direction to the right and in
  // the Y direction down.
  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));
  var shadow = new google.maps.MarkerImage('images/beachflag_shadow.png',
      // The shadow image is larger in the horizontal dimension
      // while the position and offset are the same as for the main image.
      new google.maps.Size(37, 32),
      new google.maps.Point(0,0),
      new google.maps.Point(0, 32));
      // Shapes define the clickable region of the icon.
      // The type defines an HTML <area> element 'poly' which
      // traces out a polygon as a series of X,Y points. The final
      // coordinate closes the poly by connecting to the first
      // coordinate.
  var shape = {
      coord: [1, 1, 1, 20, 18, 20, 18 , 1],
      type: 'poly'
  };
  for (var i = 0; i < locations.length; i++) {
    var beach = locations[i];
    var myLatLng = new google.maps.LatLng(beach[1], beach[2]);
    var marker = new google.maps.Marker({
        position: myLatLng,
        map: map,
        shadow: shadow,
        icon: image,
        shape: shape,
        title: beach[0],
        zIndex: beach[3]
    });
  }
}

Example here: Complex Icon Example 此处示例: 复杂图标示例

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM