谷歌地图.传递给函数的标记数组

Google Maps. Markers array passing to function

本文关键字:数组 函数 谷歌地图      更新时间:2023-09-26

我正在使用Google Maps API v3。我的代码从 MySql 数据库中获取对象(名称、纬度、lng 和类型(并在地图上标记它们。这对我很好。但是我想根据它们的类型制作不同的标记。所以这是我的标记选项:

var iconBaznycios = new google.maps.MarkerImage('http://labs.google.com/ridefinder/images/mm_20_blue.png');
var iconMuziejai = new google.maps.MarkerImage('http://labs.google.com/ridefinder/images/mm_20_red.png');
var customIcons = [];
customIcons["Baznycios"] = iconBaznycios;
customIcons["Muziejai"] = iconMuziejai;

这是我想要传递标记数组的函数:

function addMarker(lat, lng, info, type) {
  var pt = new google.maps.LatLng(lat, lng);
  bounds.extend(pt);
  var marker = new google.maps.Marker({
             position: pt,
             icon: customIcons[type],
             map: map,
  });

也许与 PHP 脚本中的这一行有关:

echo ("addMarker($lat, $lng,'<b>$name</b><br/> $type');'n");

有什么想法如何让它按照我的方式工作吗?

我认为这个PHP行需要改变:看起来引号放错了位置并且缺少逗号。

echo ("addMarker($lat, $lng,'<b>$name</b><br/>', '$type');'n");

根据我的经验,icon内部new google.maps.Marker只需要URL。它只是更短,MarkerImage也应该可以工作。

var customIcons = [];
customIcons["Baznycios"] = 'http://labs.google.com/ridefinder/images/mm_20_blue.png'
customIcons["Muziejai"] = 'http://labs.google.com/ridefinder/images/mm_20_red.png'