Javascript 谷歌地图&x2B;JS(添加圆)

Javascript 谷歌地图&x2B;JS(添加圆),javascript,html,google-maps,geometry,Javascript,Html,Google Maps,Geometry,我想用JS在谷歌地图上画一个圆圈 我的代码: 按钮代码: INDEX.HTML <button type="button" class="btn btn-primary btn-sm" id="test1" onclick="DrawCircle()">Wyświetlk mapę 和用于绘制圆的函数: function DrawCircle() { draw_circle = new.google.maps.Circle({

我想用JS在谷歌地图上画一个圆圈

我的代码:

按钮代码:

INDEX.HTML

    <button type="button" class="btn btn-primary btn-sm" id="test1" onclick="DrawCircle()">Wyświetlk mapę
和用于绘制圆的函数:

function DrawCircle()
    {

        draw_circle = new.google.maps.Circle({

            center: {lat: 52.94, lng: 20.1},
            radius: 2000,
            strokeColor: "#000",
            strokeOpacity: 0.6,
            strokeWeight: 2;
            fillColor: "#0099AA",
            fillOpacity: 0.25,
            map: map
        });

    }
我有一个错误: 未捕获的语法错误:意外的标识符 (索引):198未捕获引用错误:未定义映射

什么变化/增加(repiar)? 我在这里和谷歌api文档中都找不到解决这个问题的方法


我将很高兴得到帮助

您正在调用
mapping()
,可能在它被定义之前

JavaScript代码在HTML页面中的位置是什么

在调用
mapping()
之前,确保您发布的JavaScript块位于HTML中

但是,我假设
mapping()
作为一个函数无论如何都不是很有用,因为您已经在使用一个调用
initialize
load
侦听器

因此,我建议将这个
mapping()
一起删除,同时删除代码周围的
函数mapping(){…}
,无论代码放在哪里,它都应该自动工作。只需确保仅在初始化代码运行后调用
DrawCircle
。例如,您可以将其放入
initialize
函数本身

(顺便说一下,我不确定这行
draw\u circle=…
是否符合您的要求。我假设您至少需要一个
var
来防止意外创建全局变量。)

另外,我建议适当地缩进代码,不清楚不同的函数作用域在哪里

编辑:我注意到另一个问题:
new.google.maps.circle
是无效代码(
new
是关键字)。我猜你想要
新的google.maps.circle
而不带第一个点?如果此语法错误会导致整个外部JavaScript文件无法加载(特别是因为您在注释中解释过,已将其包含在
区域中),它还将解释为什么找不到
映射


您应该修复此错误,还应该确保在加载页面时打开开发人员控制台(在浏览器中按F12键),并查看控制台选项卡,因为您会看到那里报告的语法错误(可能带有指向错误发生在文件中确切位置的链接)。

如果我删除脚本映射(),映射将不显示(javascript代码在另一个文件中)1)您是否也按照我的建议,删除了主代码周围的
函数映射(){…}
包装器?2) 是的,但其他文件包括在哪里?我有index.html,其中只有div和function.js的头url。在函数JS中,我有这个脚本。好的,我认为问题是另一个。我在你的代码中发现了一个额外的语法错误,一开始我没有发现。这将解释为什么它不工作-因为你的整个JS文件没有加载由于语法错误!请阅读我在答案中添加的编辑。您的代码中有两个拼写错误:1
new.google.maps.Circle({
(应该是new和google之间的空格)2.
strokeWeight:2;
(应该是逗号)。
function mapping(){

    var citymap = 
    {
          warsaw: 
          {
            center: {lat: 52.14, lng: 21.1},  
            population: 1740000
          }
    }


    function initialize() {
      var mapProp = {
        center:new google.maps.LatLng(52.13 ,19.02),
        zoom:6,
        mapTypeId:google.maps.MapTypeId.ROADMAP
      };


    var map = new google.maps.Map(document.getElementById("googleMap"), mapProp);

    for (var city in citymap) 
    {

        var cityCircle = new google.maps.Circle({
          strokeColor: '#FF0000',
          strokeOpacity: 0.8,
          strokeWeight: 2,
          fillColor: '#FF0000',
          fillOpacity: 0.35,
          map: map,
          center: citymap[city].center,
          radius: Math.sqrt(citymap[city].population) * 30
    });
    }

    }

    google.maps.event.addDomListener(window, 'load', initialize);
}
function DrawCircle()
    {

        draw_circle = new.google.maps.Circle({

            center: {lat: 52.94, lng: 20.1},
            radius: 2000,
            strokeColor: "#000",
            strokeOpacity: 0.6,
            strokeWeight: 2;
            fillColor: "#0099AA",
            fillOpacity: 0.25,
            map: map
        });

    }