Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/elixir/2.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 使用freemarker';列表';google maps函数中的指令_Google Maps_Freemarker - Fatal编程技术网

Google maps 使用freemarker';列表';google maps函数中的指令

Google maps 使用freemarker';列表';google maps函数中的指令,google-maps,freemarker,Google Maps,Freemarker,我有一个名为“locationList”的列表: [lat:-6.2986514,液化天然气:53.3324511,汽车注册号:161-D-XXXXXX],[lat:-7.259881,液化天然气:53.041335,汽车注册号:151-D-YYYY],[lat:-7.6273397,液化天然气:53.3052366,汽车注册号:142-D-ZZZZZZ]] 现在,如果我只做这样一个简单的迭代,它就可以工作了。(它输出我的三行坐标。) 输出:${loc.lat}--${loc.lng} 但是

我有一个名为“locationList”的列表:

[lat:-6.2986514,液化天然气:53.3324511,汽车注册号:161-D-XXXXXX],[lat:-7.259881,液化天然气:53.041335,汽车注册号:151-D-YYYY],[lat:-7.6273397,液化天然气:53.3052366,汽车注册号:142-D-ZZZZZZ]]

现在,如果我只做这样一个简单的迭代,它就可以工作了。(它输出我的三行坐标。)


输出:${loc.lat}--${loc.lng}

但是当我尝试在我的谷歌地图功能中使用它时,它不会起作用。这就是我所拥有的:

function geocodeLatLng(geocoder, map, infowindow) {

 <#list locationList as loc>

    var latlng = {lat: ${loc.lat}, lng: ${loc.lng} };

    var marker = new google.maps.Marker({
            position: latlng,
            map: map
          });

  </#list>  
}
功能geocodeLatLng(地理编码器、地图、信息窗口){
var latlng={lat:${loc.lat},lng:${loc.lng};
var marker=new google.maps.marker({
位置:latlng,
地图:地图
});
}
如果我只是手动写出freemarker列表标记中包含的内容的三倍,它就可以正常工作

我已经尝试了我能想到的一切。谁能帮我弄清楚这里发生了什么

编辑-整个脚本包括在下面:

<script>


function initMap() {

    <#assign lat='53.328015' lng='-6.3743767' >

    var map = new google.maps.Map(document.getElementById('map'), {
      zoom: 8,
      center: {lat: ${lat}, lng: ${lng} }
    });
    var geocoder = new google.maps.Geocoder;
    var infowindow = new google.maps.InfoWindow;


    google.maps.event.addDomListener(window, 'load', function() {
      geocodeLatLng(geocoder, map, infowindow);
    });
  }


function geocodeLatLng(geocoder, map, infowindow) {

     <#list locationList as loc>

    var latlng = {lat: ${loc.lat}, lng: ${loc.lng} };

    var marker = new google.maps.Marker({
            position: latlng,
            map: map
          });

    </#list>  
}

</script>

<script src="https://maps.googleapis.com/maps/api/js?key=REMOVED&callback=initMap"
    async defer></script>

函数initMap(){
var map=new google.maps.map(document.getElementById('map'){
缩放:8,
中心:{lat:${lat},液化天然气:${lng}
});
var geocoder=new google.maps.geocoder;
var infowindow=new google.maps.infowindow;
google.maps.event.addDomListener(窗口'load',函数(){
geocodeLatLng(地理编码器、地图、信息窗口);
});
}
功能geocodeLatLng(地理编码器、地图、信息窗口){
var latlng={lat:${loc.lat},lng:${loc.lng};
var marker=new google.maps.marker({
位置:latlng,
地图:地图
});
}

在这种情况下,请始终检查实际输出是什么(您应该能够在web浏览器中执行此操作),以及该输出与手动填充时编写的输出有何不同。另外,检查您得到的JavaScript错误


我的盲目猜测是,这些数字的格式是针对人类受众的,因此不是有效的JavaScript文本。使用
?c
(如
${loc.lat?c}
)为计算机“观众”设置格式。

代码很好。在构建我的列表的过程中,我得到了错误的方向。道歉。我找错了地方。

我习惯了服务器端编程。然而,我使用chrome中的控制台来跟踪输出。它没有报告任何错误。我也试过你的建议?c。这不管用。但我已经尝试使用检查生成的JavaScript(也就是说,所有FreeMarker语句都已在其中解析)。这就是我所说的“检查实际输出是什么”。
<script>


function initMap() {

    <#assign lat='53.328015' lng='-6.3743767' >

    var map = new google.maps.Map(document.getElementById('map'), {
      zoom: 8,
      center: {lat: ${lat}, lng: ${lng} }
    });
    var geocoder = new google.maps.Geocoder;
    var infowindow = new google.maps.InfoWindow;


    google.maps.event.addDomListener(window, 'load', function() {
      geocodeLatLng(geocoder, map, infowindow);
    });
  }


function geocodeLatLng(geocoder, map, infowindow) {

     <#list locationList as loc>

    var latlng = {lat: ${loc.lat}, lng: ${loc.lng} };

    var marker = new google.maps.Marker({
            position: latlng,
            map: map
          });

    </#list>  
}

</script>

<script src="https://maps.googleapis.com/maps/api/js?key=REMOVED&callback=initMap"
    async defer></script>