当前位置: 首页 > 知识库问答 >
问题:

使用GeoJSON绘制点

公西国发
2023-03-14

我正在尝试使用GeoJSON在地图上绘制点。我阅读了文件,其中说明:

可以通过调用数据对象的loadGeoJSON()方法来加载和显示GeoJSON文件

https://developers.google.com/maps/documentation/javascript/datalayer)

但是,同一页上的示例代码显示:

map.data.loadGeoJson(…)

因此,我使用代码示例,即:.loadGeoJson()而不是.loadGeoJson()。。。

我有一个使用www.geojsonlint.com验证的GeoJson数据文件,即:

{
"type": "FeatureCollection",
"features": [
    {
        "type": "Feature",
        "geometry": {
            "type": "Point",
            "coordinates": [
                -80.87088507656375,
                35.21515162500578
            ]
        },
        "properties": {
            "name": "ABBOTT NEIGHBORHOOD PARK",
            "address": "1300  SPRUCE ST"
        }
    }
]
}

加载上述文件的代码块,其中“url_to_geojson_file”是指向上述数据的url(通过将url剪切并粘贴到浏览器中进行验证;因此该文件存在并可下载)。

   try {
       map.data.loadGeoJson( "url_to_geojson_file" );
   }
   catch( ex ) {
       alert("Error loading GeoJson:" + ex.toString());
   }

尽管贴图渲染,但贴图上不会显示任何内容。try/catch块未捕获任何错误。我甚至将中心点设置为与GeoJson文件中相同的坐标。我还尝试使用带有各种选项的.SetStyle(),但没有效果。

是否有人有一个显示GeoJson数据文件中一个或多个点的工作示例?

我找到了多边形和线的例子,但我没有遇到一个简单的例子来演示点的使用。

共有1个答案

邵逸明
2023-03-14

我在网上找到了一个适合你需要的例子。我希望你会有用。

<!DOCTYPE html>
<html>
  <head>
    <title>Simple json test</title>
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no">
    <meta charset="utf-8">
    <style>
      html, body, #map-canvas {
        height: 100%;
        margin: 0px;
        padding: 0px
      }
    </style>
   <script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false"></script>

  </head>
  <body>
    <div id="map-canvas"></div>
  <script>
  var map;
  function initialize() {

    //Initialise the map
    var myLatLng = new google.maps.LatLng(53.231472,-0.539783);
    map = new google.maps.Map(document.getElementById('map-canvas'), {
      zoom: 13,
      center: myLatLng,
      scrollwheel: false,
      panControl: false,
      zoomControl: false,
      scaleControl: true,
      disableDefaultUI: true
    });

    //Initialise base folder for icons
    var iconBase = '/static/images/icons/';

    //Load the JSON to show places
    map.data.loadGeoJson('http://localhost/geo.json');

  }

  google.maps.event.addDomListener(window, 'load', initialize);
  </script>
  </body>
</html>

将下面的json放在您的http://localhost/geo.json 用于本地测试的文件

{
  "type": "FeatureCollection",
  "features": [
    {
      "type": "Feature",
      "geometry": {
        "type": "Point",
        "icon": "/static/images/icons/map-marker-do.png",
        "coordinates": [
          -0.53743,
          53.23437
        ]
      },
      "properties": {
        "name": "Cathedral",
        "description": "One of European's finest Gothic buildings, once the tallest building in the world that dominates Lincoln's skyline.",
        "icon": "/static/images/icons/map-marker-do.png"
      }
    }
  ]
}
 类似资料:
  • 我需要在Mapbox Android SDK地图上绘制一个带孔的GeoJSON多边形。 正如GeoJSON规范所说, 对于类型“多边形”,“坐标”成员必须是线性环坐标数组的数组。对于有多个环的多边形,第一个必须是外环,其他必须是内环或孔。 在手册Mapbox JS和Mapbox GL JS中,加载GeoJSONs由库本身处理。从这把小提琴中可以看出,lib考虑了内环,因此正确地绘制了孔。 当我查看

  • arcTo()介绍 arcTo()方法接收5个参数,分别是两个切点的坐标和圆弧半径。这个方法是依据切线画弧线,即由两个切线确定一条弧线。 具体如下。 arcTo(x1,y1,x2,y2,radius) 这个函数以给定的半径绘制一条弧线,圆弧的起点与当前路径的位置到(x1, y1)点的直线相切,圆弧的终点与(x1, y1)点到(x2, y2)的直线相切。因此其通常配合moveTo()或lineTo(

  • 问题内容: 我正在尝试使用Java的Graphics2D在屏幕上绘制图像。这是我正在使用的代码。我想看到图像在屏幕上稳定移动。目前,我可以看到图像,但是除非调整窗口大小,否则图像不会移动,在这种情况下,图像确实会移动。我已经勾勒出以下课程。 传递给Tester的Component对象是以下类: 我确保此类仅添加了一个精灵。Sprite类大致如下: 但是,我在屏幕上仅看到固定的Bowser图像。除非

  • 我正试着用Jupyter笔记本画热图。我的表由10个列和许多行组成。第一行是列名。我正在使用plotly lib。 dfs是数据帧。 而不是图形,我得到了很多这样的线条: '\n跟踪=判(\n x=x,y=y,z=z,\n类型="散射3d",\n模式=\'标记\',\n标记=判(大小=5,颜色=\'黑色\',线=判(宽度=0)))\n数据=[跟踪]\n\n\n etc 有什么问题?

  • 我正试图用PDFbox绘制饼图,但各片之间有白线,有人能帮我吗?是否有此选项? 附上我正在使用的绘制圆弧的代码: 结果的附加图像: 谢啦

  • 如何连接多点与流动曲线,使用PyQt5?例如,我试图使用quitTo()对8个点执行此操作,使用交替点作为控制点,但弧不接触控制点(见下面的代码和图表)。我也尝试使用cubicTo(),但这也导致了一个奇怪的曲线。use是否有任何其他函数调用,我应该使用,或自定义的方式来做到这一点?