Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/277.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Google Maps多边形的javascript中使用PHP变量_Javascript_Php_Google Maps - Fatal编程技术网

在Google Maps多边形的javascript中使用PHP变量

在Google Maps多边形的javascript中使用PHP变量,javascript,php,google-maps,Javascript,Php,Google Maps,我正在谷歌地图上绘制一个多边形,使用从数据库中提取的一组坐标 php从数据库中提取坐标 scripts.js在文档就绪时创建映射,并存储所有映射配置选项 边界坐标字符串示例: [52.6294414232, 1.28337337354], [52.6294108159, 1.28350410559], [52.6293577844, 1.28347057106], [52.6292373999, 1.28391974753], [52.6293340783, 1.28400089488],

我正在谷歌地图上绘制一个多边形,使用从数据库中提取的一组坐标

  • php从数据库中提取坐标
  • scripts.js在文档就绪时创建映射,并存储所有映射配置选项
边界坐标字符串示例:

[52.6294414232, 1.28337337354], [52.6294108159, 1.28350410559], [52.6293577844, 1.28347057106], [52.6292373999, 1.28391974753], [52.6293340783, 1.28400089488], [52.6292540937, 1.28429051171], [52.6292088096, 1.28430189851], [52.6291929061, 1.2842268041], [52.6291753654, 1.28421070907], [52.6291251702, 1.28439909373], [52.6289228389, 1.28423612589], [52.6289538563, 1.28409064607], [52.628795581, 1.28396054235], [52.6288674082, 1.28364075593], [52.628946546, 1.28370580721], [52.6289763352, 1.28360457624], [52.6290289574, 1.2836528604], [52.6290693582, 1.28349330243], [52.6291215713, 1.2835563364], [52.6292403179, 1.28316615953],
我知道坐标字符串是有效的,因为当我将其手动输入地图javascript时,多边形显示正确

我将坐标字符串存储在PHP变量
$boundary
中,然后尝试将其传递到javascript中,并在map.PHP中使用以下内容:

<script>
var boundary = <?php echo $boundary ?>;
</script>
但是没有成功


任何人都可以建议一种将此坐标字符串传递到地图javascript中的方法吗?

在将地图的
路径
-属性指定给
边界之前,必须将数字对转换为
google.maps.LatLng

var boundary = <?php echo $boundary; ?>;

for(var i = 0; i < boundary.length; ++i ){
  boundary[i] = new google.maps.LatLng(boundary[i][0], 
                                       boundary[i][1]);
}
new google.maps.Polygon({path:boundary/*,more properties*/});
var边界=;
对于(变量i=0;i
尝试在标记之间执行PHP语句时会遇到问题。试试这个:

<? print
"<script language=javascript>
   var boundary = $boundary
</script>"
?>


(按您的喜好格式化)

感谢您的回复,但如果是这样,为什么手动输入相同的字符串或在PHP中回显$boundary变量有效,而在javascript中却无效?它们应该是做完全相同事情的三种方法?什么在PHP中有效?MapsAPI是一个javascript库。如果我将脚本标记中的javascript内容转储到php文件中并从那里运行它,它将完美地绘制多边形。问题似乎是将字符串/变量从PHP传递到javascript。我不知道您到底在那里转储了什么,但我确信这没有什么区别。
<? print
"<script language=javascript>
   var boundary = $boundary
</script>"
?>