Php 具有动态生成的数字的自定义地图标记图标

Php 具有动态生成的数字的自定义地图标记图标,php,javascript,google-maps,Php,Javascript,Google Maps,我希望我的谷歌地图有编号的地图标记,目前我正在使用谷歌图表API方法动态创建编号标记。然而,我不能使用我自己的图标与该方法 有没有办法使用我自己的自定义地图标记图标,然后在上面覆盖/添加一个数字? 或者,是否有一种快速的方法来创建从编号1到1000的1000.PNG标记?就像Photoshop中的批处理一样,我从自己撰写的一篇文章中借用了这段代码,并对其进行了一些调整。您应该下载,在Photoshop中编辑它,并将其放置在与PHP脚本相同的目录中。调整脚本中的数字,直到得到合适的结果 <?

我希望我的谷歌地图有编号的地图标记,目前我正在使用谷歌图表API方法动态创建编号标记。然而,我不能使用我自己的图标与该方法

有没有办法使用我自己的自定义地图标记图标,然后在上面覆盖/添加一个数字?


或者,是否有一种快速的方法来创建从编号
1
1000
的1000.PNG标记?就像Photoshop中的批处理一样,我从自己撰写的一篇文章中借用了这段代码,并对其进行了一些调整。您应该下载,在Photoshop中编辑它,并将其放置在与PHP脚本相同的目录中。调整脚本中的数字,直到得到合适的结果

<?php
define("FONT_SIZE", 6);                            // font size in points
define("FONT_PATH", "c:/windows/fonts/arial.ttf"); // path to a ttf font file
define("FONT_COLOR", 0x00000000);                  // 4 byte color
                                                   // alpha  -- 0x00 thru 0x7F; solid thru transparent
                                                   // red    -- 0x00 thru 0xFF
                                                   // greeen -- 0x00 thru 0xFF
                                                   // blue -- 0x00 thru 0xFF
$text = $_GET["text"];
$gdimage = imagecreatefrompng("marker.png");
imagesavealpha($gdimage, true);
list($x0, $y0, , , $x1, $y1) = imagettfbbox(FONT_SIZE, 0, FONT_PATH, $text);
$imwide = imagesx($gdimage);
$imtall = imagesy($gdimage) - 14;                  // adjusted to exclude the "tail" of the marker
$bbwide = abs($x1 - $x0);
$bbtall = abs($y1 - $y0);
$tlx = ($imwide - $bbwide) >> 1; $tlx -= 1;        // top-left x of the box
$tly = ($imtall - $bbtall) >> 1; $tly -= 1;        // top-left y of the box
$bbx = $tlx - $x0;                                 // top-left x to bottom left x + adjust base point
$bby = $tly + $bbtall - $y0;                       // top-left y to bottom left y + adjust base point
imagettftext($gdimage, FONT_SIZE, 0, $bbx, $bby, FONT_COLOR, FONT_PATH, $text);
header("Content-Type: image/png");
header("Expires: " . gmdate("D, d M Y H:i:s", time() + 60 * 60 * 24 * 180) . " GMT");
imagepng($gdimage);
?>

我的系统上的示例输出:


现在,您可以使用谷歌图表进行此操作。下面是一个示例语法:

(scale|rotation|color|fontsize|bold(b) or normal(_)|text[|line2]
https://chart.googleapis.com/chart?chst=d_map_spin&chld=1.0|0|FF8844|12|_|221B

这里是。

或者,有没有快速创建1000.PNG标记的方法。。。是的,您可以在PHP+GD中实现这一点。事实上,您不需要预先创建标记。您可以根据需要创建它们,如
marker-gen.php?text=123
。这行得通吗?我对PHP+GD没有太多经验。假设我使用PHP+GD创建了带编号的标记,可以使用
icon:http://www.site.com/marker-gen.php?text=123“
?是的,理论上,
之间没有区别”http://www.site.com/marker-123.png“
”http://www.site.com/marker.php?text=123"
提供的PHP提供了正确的标题和图像。我刚刚对代码进行了一些小的改进。@Salman a:谢谢,你摇滚乐:)不幸的是,这已经被弃用,建议使用服务器端代码