我正在尝试在我的传单地图上显示来自巴西的形状文件,该形状文件位于 .zip 中,其中包含:.dbf、.prj、.sbn、.sbx、.shp 和 .shx 文件。为此,我正在使用:https : //github.com/calvinmetcalf/leaflet.shapefile
我的本地计算机上有 .zip 文件,所以我只是做了:
HTML
<button ng-click="addShape()"> Brasil Shape File </button>
Run Code Online (Sandbox Code Playgroud)
JS
var mymap = L.map('mapid').setView([-12.85, -50.09], 4);
$scope.addShape = function () {
var shpfile = new L.Shapefile('scripts/ShapeFiles/Brasil.zip');
shpfile.addTo(mymap);
}
Run Code Online (Sandbox Code Playgroud)
现在我想让用户上传 .zip 以将其显示在地图上,就像这里发生的事情一样:http : //leaflet.calvinmetcalf.com/#3/32.69/10.55
但我想不通……我在互联网上找到的只是将 .zip 文件发布到一个 url。我需要在用户将其“上传”到浏览器后立即使用该文件。
在下面的代码中,用户可以上传一些文件并发布它,我尝试在发送之前对包含 .zip 文件的假定对象进行 console.log 记录,但我在对象中找不到它:
HTML
<body ng-controller="FileUploadCtrl">
<div class="row">
<label for="fileToUpload">Select a File to Upload</label><br />
<input type="file" ng-model-instant id="fileToUpload" multiple onchange="angular.element(this).scope().setFiles(this)" />
</div>
<input type="button" ng-click="uploadFile()" value="Upload" />
</body>
Run Code Online (Sandbox Code Playgroud)
JS …